Skip to content
Coritan Docs

Read what Coritan offers without signing in

The public endpoints for plans, what you can order now, the figures our terms state and domain prices. They need no token and answer the same for everyone.

View as Markdown

A script or an agent can ask Coritan what it sells and on what terms before anyone signs in. These endpoints send no account data and need no token, so a shared cache can keep their answers.

Endpoint Answers
GET /plans The account plans, their prices and limits (Account plans).
GET /availability What you can order right now, and where.
GET /terms-facts The figures our terms and pricing pages state.
GET /domains/prices What a year of each domain extension costs (How domain registration works).
GET /features The dashboard areas that show, and the gates below.

Each answer carries Cache-Control: public, max-age=60, stale-while-revalidate=300, except GET /features, which reads your session when you send one and is not cached. An organization's own storefront host answers 404 to the first four, because an organization sets its own prices and terms.

GET /availability answers from the same checks an order makes. Coritan reuses an answer for 30 seconds.

Shell
curl https://api.coritan.com/api/v1/availability

This answer is shortened:

JSON
{
  "products": {
    "rx-2": {"orderable": true, "reason": null},
    "rx-2-performance": {"orderable": false, "reason": "Sold out for this plan"},
    "deploy-usage": {"orderable": true, "reason": null}
  },
  "locations": [
    {"code": "fra", "name": "Frankfurt", "orderable": true, "tiers": ["budget"]}
  ],
  "storage_regions": [{"code": "fra", "name": "Frankfurt", "approved": true}],
  "mail": {"cluster_active": true, "enabled": true},
  "relay": {"cluster_active": true, "enabled": true},
  "performance": {"stock": false},
  "images": [{"name": "Ubuntu 24.04", "os_family": "ubuntu"}],
  "ips": {"stock": true, "ipv4": true, "ipv6": false}
}
products
One entry for each product that GET /products lists for a visitor, by its slug. orderable says whether Coritan would accept an order today and reason says why not, in one sentence. A plan product is not orderable until account plans are open. A server plan needs room in at least one location. deploy-usage stands for App Deployment.
locations
Each place Coritan can sell a server. tiers lists the hardware tiers with a plan in stock there, such as budget or performance.
storage_regions
The places with Object Storage. approved is false while Coritan is still setting a region up, and you cannot order storage in it.
mail and relay
enabled says whether Coritan sells Mail Hosting or SMTP Relay at all, and cluster_active whether its mail platform can set up a new one.
images
The operating systems a Cloud Compute order can start from now, one entry for each image that is ready on a host.
performance and ips
Whether any Performance plan, and any floating IP address, is in stock. ips also says which family: ipv4 and ipv6.

A check Coritan cannot read answers as closed, so orderable is false and reason says so.

When an order is refused for stock

Section titled When an order is refused for stock

An order for Mail Hosting, SMTP Relay, Object Storage or a floating IP that Coritan cannot set up answers 422 before it charges anything. POST /checkout/quote refuses the same body with the same words:

JSON
{
  "detail": {
    "code": "out_of_stock",
    "message": "Object Storage is not available in that region right now. Choose another region.",
    "errors": ["Object Storage is not available in that region right now. Choose another region."]
  }
}

Creating the mail, sending or storage service that your plan includes answers the same 422 when nothing can set it up. Read GET /availability to choose a region or product that can be ordered.

GET /terms-facts reads each value from the setting or record that decides it:

Shell
curl https://api.coritan.com/api/v1/terms-facts
JSON
{
  "hourly_unlock_deposit": {"amount": "10.00", "currency": "USD"},
  "payment_methods": ["card", "crypto", "paypal"],
  "currencies": ["USD", "EUR"],
  "support": {"first_response_targets": {"free": 2880, "plan-pro": 1440, "plan-business": 60, "plan-enterprise": 30}},
  "tax_statement": "We do not add tax to invoices.",
  "domain_renewal_window_days": 14,
  "retention": {"tracking_events_days": 90, "tracking_sessions_days": 180}
}
hourly_unlock_deposit
The one deposit a prepaid account makes before it starts anything billed by the hour or by use (Hourly billing).
payment_methods and currencies
The kinds of payment Coritan takes now, and the currencies you can pay in (Payment methods, Currencies and regions).
support.first_response_targets
The time in minutes in which Coritan aims to reply first, for each plan.
tax_statement
One sentence on whether invoices carry tax.
domain_renewal_window_days
How many days before a domain expires that auto-renew renews it (Renew a domain).
retention
How many days Coritan keeps visit records. Coritan leaves it out when it cannot say.

GET /features adds gates, which say whether what a page may promise is in place right now:

Gate true when
mail_enabled Coritan sells Mail Hosting and SMTP Relay.
mail_cluster_active The mail platform can set up a new Mail Hosting service.
relay_cluster_active The mail platform can set up a new SMTP Relay.
storage_regions A list: the codes of the places with Object Storage open.
ips_stock A floating IP address is in stock.
referrals Accounts get a referral link (Referrals).
github_app App Deployment can connect to GitHub.
snapshots Snapshot Storage is switched on.
leads Coritan emails each new sales enquiry.

A gate that Coritan cannot read is false.

API operations on this page

MethodPathWhat it does
GET/api/v1/plansThe account plans, their prices and what each allows
GET/api/v1/availabilityWhat can be ordered right now
GET/api/v1/terms-factsThe figures our terms and pricing pages state
GET/api/v1/domains/pricesWhat a year of each domain extension costs
GET/api/v1/featuresThe dashboard areas this storefront shows, and whether account plans apply