Skip to content

Catalog beta ​

The catalog lists every product family you may order, with its orderable products (public, available, no coupon needed), their prices and - for a team - the choices for the order attributes.

MethodPathQuery
GET/catalog?team= (optional) and the filters

?team= must be one of your teams (owner or member), otherwise 404. Product families and single plans that are still being rolled out (e.g. GPU containers) are only listed for the users and teams in the rollout.

Request ​

bash
curl "https://console.anikeen.com/api/v1/catalog?team=01JA…" \
  -H "Authorization: Bearer $ANIKEEN_TOKEN" -H "Accept: application/json"
php
$catalog = AnikeenConsole::withToken($token)->catalog($teamId);
$plans = $catalog->products('server');

Response ​

json
{
  "data": [{
    "family": "server",
    "name": "Server",
    "products": [{
      "id": "01JC…", "name": "VPS S", "description": "…", "unit": "hour",
      "list_price": 0.02, "discount_percent": null, "price": 0.02, "gross_price": 0.0238,
      "monthly_cap": 14.4, "gross_monthly_cap": 17.14,
      "monthly_price": 14.4, "gross_monthly_price": 17.14,
      "features": {…},
      "details": {"vcores": 2, "memory_mb": 2048, "disk_gb": 40, "traffic_tb": 20}
    }],
    "options": null
  }],
  "team": null,
  "vat_rate": 19.0
}

Prices ​

FieldMeaning
unitthe billing unit: hour, day, month, …
list_pricethe list price per unit, net
discount_percentthe discount of a reseller team, else null
priceyour price per unit, net
gross_priceprice with vat_rate
monthly_cap, gross_monthly_caphourly and daily prices stop at this amount per month
monthly_price, gross_monthly_pricewhat a month costs at most at the price shown (see below)

monthly_price is net and rounded to cents:

Billing unitmonthly_price
hourly, dailythe monthly_cap
monthlythe price
yearlya twelfth of the price
weeklyprice / 7 × 31
one-time, per piecethe price itself

The price filters compare this number.

With and without a team ​

Without ?team=With ?team={team}
Priceslist pricethe team's price (a reseller team: its reseller price and discount_percent)
vat_rate19 %the VAT rate of the team owner's billing address when it can be read, else 19 %
optionsnullper family: the choices for the order attributes - locations, images, templates, networks, the team's SSH keys, servers, contacts, …
teamnullid, name, reseller, coupons_allowed, may_order, managed_by_app

team.may_order is true when you are the owner, or the owner allows members to order - never for a team managed by another app.

details (per product) and options (per family) are described per family on Order attributes.

Scopes ​

A token with console-* scopes only (an app's, or a fine-grained personal access token) lists just the families those scopes cover; :read is enough. See Scopes.

Filters ​

Optional query parameters narrow the products of every family:

  • Products that do not match are left out, then families without products. (A family that has no products at all stays listed unless a product filter is set.)
  • options stay as they are; the response keeps its shape.
  • A product without the compared value (no GPU, no vcores, …) never matches a filter on it.
  • Bad values answer 422 with field errors.
ParameterValuesKeeps products
familyalias or comma list (container, server,container)of these families (unknown aliases: 422; families your token does not cover stay hidden)
gputrue / false (also 1 / 0)with a GPU (details.gpu) / without one; families without GPUs (servers, domains, …) have none
gpu_vendornvidia, amd, intelwhose details.gpu.vendor is this vendor
gpu_modeltext, max. 100 characterswhose details.gpu.model contains it (case-insensitive)
gpu_modeshared, exclusivewith this GPU mode
gpu_min_vram_gbinteger ≥ 0with details.gpu.vram_gb at least this
gpu_min_countinteger ≥ 0with at least this many GPUs (details.gpu.count)
min_vcoresinteger ≥ 0with details.vcores at least this
min_memory_mbinteger ≥ 0with details.memory_mb at least this
min_disk_gbinteger ≥ 0with details.disk_gb at least this
min_price, max_pricenumber ≥ 0with monthly_price (net, at the team's price) within the range, both ends included
sortprice, -pricesorted by monthly_price ascending / descending within each family (default: as listed, by price)

With ?team= a reseller team's prices are its reseller prices, so max_price compares the discounted monthly_price; without a team, the list price.

The reseller catalog accepts the same filters.

Examples ​

NVIDIA GPU containers with at least 24 GB VRAM, at most 150 € net per month, cheapest first:

http
GET /v1/catalog?team=01JC…&gpu=true&gpu_vendor=nvidia&gpu_min_vram_gb=24&max_price=150&sort=price

Servers with at least 4 vCores and 8 GB memory, most expensive first:

http
GET /v1/catalog?family=server&min_vcores=4&min_memory_mb=8192&sort=-price

With the SDK:

php
$gpuPlans = $console->catalog($team, [
    'gpu' => true,
    'gpu_vendor' => 'nvidia',
    'max_price' => 150,
    'sort' => 'price',
])->products('container');

Anikeen Console documentation