Client API: Features
The dashboard areas this storefront shows, and whether account plans apply to your account.
The dashboard areas this storefront shows, and whether account plans apply to your account. Also what a visitor reads before signing in: the plans with their prices and limits, what can be ordered right now, and the figures the terms state. Needs no auth.
Base URL: https://api.coritan.com/api/v1. Paths below are complete.
To try these requests in the browser, open the interactive Client API reference.
Operations
Section titled Operations| Method | Path | Summary |
|---|---|---|
| GET | /api/v1/availability |
What can be ordered right now |
| GET | /api/v1/features |
The dashboard areas this storefront shows, and whether account plans apply |
| GET | /api/v1/plans |
The account plans, their prices and what each allows |
| GET | /api/v1/terms-facts |
The figures our terms and pricing pages state |
What can be ordered right now
Section titled What can be ordered right nowGET /api/v1/availability
What can be ordered right now. No sign in needed.
products has an entry for each product GET /api/v1/products lists,
by its slug: orderable is whether we would accept an order today, and
reason says why not. It reads the same checks an order does: a plan that
is not open, a server plan with no room, mail with no capacity, a region
with no storage and a floating IP with no stock. deploy-usage stands for
App Deployment. locations lists each place a server can be sold, with
the hardware tiers that have room there now. storage_regions lists the
regions with Object Storage and whether each is open. mail and relay
say whether a mail cluster can take a new service, and whether we sell
the product at all. performance.stock is whether any Performance plan
can be ordered, and ips whether floating IP addresses are in stock,
for each family. Answers are reused for 30 seconds.
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
Fields of a 200 response:
| Field | Type | Description |
|---|---|---|
products |
Products | Each product we list, by its slug. deploy-usage stands for App Deployment. |
locations |
array of LocationState | |
locations[].code |
string | The location's airport code, such as fra |
locations[].name |
string | |
locations[].orderable |
boolean | Whether at least one server plan can be ordered here now |
locations[].tiers |
array of string | The hardware tiers with a plan in stock here, such as budget or performance |
storage_regions |
array of StorageRegionState | |
storage_regions[].code |
string | |
storage_regions[].name |
string | |
storage_regions[].approved |
boolean | Whether Object Storage is open in this region. False while the region is being set up. |
mail |
MailState | |
mail.cluster_active |
boolean | Whether a mail cluster is active and can take a new service |
mail.enabled |
boolean | Whether we sell the product at all right now |
relay |
MailState | |
relay.cluster_active |
boolean | Whether a mail cluster is active and can take a new service |
relay.enabled |
boolean | Whether we sell the product at all right now |
performance |
StockState | Whether any Performance plan can be ordered now |
performance.stock |
boolean | |
ips |
IpState | |
ips.stock |
boolean | Whether any floating IP address is in stock |
ips.ipv4 |
boolean | Whether an IPv4 address is in stock |
ips.ipv6 |
boolean | Whether an IPv6 address is in stock |
The dashboard areas this storefront shows, and whether account plans apply
Section titled The dashboard areas this storefront shows, and whether account plans applyGET /api/v1/features
The dashboard areas this storefront shows, and whether account plans apply. No sign in needed.
The answer is {flags: {name: true or false}, plans_v2, gates}.
flags names each area of the dashboard (vps, mail,
storage and the rest) and whether it shows. plans_v2 is true when
the Free, Pro and Business plans, their limits and their prompts apply:
to your account when the request carries your session, and otherwise to
someone who signs up now. A token that is not valid reads as no session.
gates says whether what a page may promise is there now:
mail_enabled (we sell Mail Hosting and SMTP Relay),
mail_cluster_active and relay_cluster_active (a mail cluster can
take a new service), storage_regions (the codes of regions where
Object Storage is open), ips_stock (a floating IP address is in
stock), referrals (accounts get a referral link), github_app
(App Deployment can connect GitHub), snapshots (Snapshot Storage is on)
and leads (we email each new enquiry). A gate we cannot read is false. GET /api/v1/availability has
the detail for each product.
On an organization's storefront the answer is {"flags": {}, "plans_v2": false}: those storefronts keep their own switches.
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
The account plans, their prices and what each allows
Section titled The account plans, their prices and what each allowsGET /api/v1/plans
The account plans, their prices and what each allows. No sign in needed.
Free, Pro, Business and Enterprise, in that order, with the same limits as
the signed-in GET /api/v1/account/plan. stage is who plans apply to
(off, staff, new or all), and open whether they apply to
someone who signs up now. While open is false, no plan has orderable
true and no plan limit is checked. Prices are numbers in currency. A
plan we sell through our sales team has no price. The answer is the same
for everyone, so shared caches may keep it for a minute.
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
Fields of a 200 response:
| Field | Type | Description |
|---|---|---|
stage |
string | Who plans apply to: off, staff, new or all |
open |
boolean | Whether plans apply to someone who signs up now |
plans |
array of PlanOut | |
plans[].key |
string | free, plan-pro, plan-business or plan-enterprise |
plans[].name |
string | The plan's name: Free, Pro, Business or Enterprise |
plans[].monthly_price |
number or null | The price of one month, 0 for Free. Null for a plan we sell through our sales team. |
plans[].yearly_price |
number or null | The price of one year, 0 for Free. Null when the plan has no yearly price. |
plans[].currency |
string | The currency of both prices, such as USD |
plans[].popular |
boolean | The plan the catalogue highlights |
plans[].orderable |
boolean | Whether someone who signs up now can order the plan. False for Free, for a plan sold through sales, and while plans are not open. |
plans[].limits |
Limits | What the plan allows, by entitlement key: a number (-1 for unlimited), true or false for a feature, or a word for support_level. On Enterprise, the allowances an agreement sets are null. |
plans[].features |
array of string | The keys in limits that the plan switches on |
The figures our terms and pricing pages state
Section titled The figures our terms and pricing pages stateGET /api/v1/terms-facts
The figures our terms and pricing pages state. No sign in needed.
Each is read from the setting or record that decides it, so a page that
quotes it cannot disagree with how the platform behaves.
hourly_unlock_deposit is the one deposit a prepaid account makes before
it starts anything billed by the hour or by use. payment_methods and
currencies list what we take now. support.first_response_targets is the
reply target in minutes for each plan. tax_statement says whether
invoices carry tax. domain_renewal_window_days is how early auto-renew
renews a domain. retention holds how many days visit records are kept,
and is left out when we cannot say.
Responses
Section titled Responses| Status | Meaning |
|---|---|
200 |
Success. |
Fields of a 200 response:
| Field | Type | Description |
|---|---|---|
hourly_unlock_deposit |
MoneyOut | What a prepaid account deposits once before it runs anything billed by the hour or by use |
hourly_unlock_deposit.amount |
string | An amount with two decimals, such as 10.00 |
hourly_unlock_deposit.currency |
string | |
payment_methods |
array of string | The kinds of payment we take now: card, wallet, bank_debit, bank_transfer, bank_redirect, bnpl, voucher, real_time, paypal, crypto or other |
currencies |
array of string | The currencies a customer can pay in |
support |
SupportOut | |
support.first_response_targets |
First Response Targets | Minutes within which we aim to first reply to a support request, by plan key |
tax_statement |
string | One sentence on whether we add tax to invoices |
domain_renewal_window_days |
integer or null | How many days before a domain expires we renew it for an account with auto-renew on |
retention |
object or null | How many days we keep visit records: tracking_events_days and tracking_sessions_days |