Skip to content

Get offering options

Lists what can be ordered from one offering — its locations, its sizes with a price per location, the location and size to preselect, the price of a parked server — and every word the create form shows: the labels, the proposed server name, each choice's summary and button text, and the lines under the button. A client renders these strings as they are and builds none itself. Show the person the price of the location and size they pick, then send that price back as the quote of Create a server.

Free sizing (Aitronos servers). Besides the fixed sizes, vCPU and memory can be picked separately from cpu_choices and memory_choices. The server is then the cheapest one in the location with at least that many vCPUs and at least that much memory; resolutions holds that answer for every offered pair, so look it up rather than computing it, and Resolve a free size answers any other pair. When no server has both, the entry's machine_type_id is null and its note names the largest server there.

For Aitronos servers (aitronos) the locations are regions labelled by country, the sizes are Aitronos size classes, and each hourly is what your organization is charged per started hour, in CHF, excluding VAT, with your organization's individual agreement already applied. For your own account (byo) the locations, sizes and prices are the provider's own, in the provider's currency, read with your connected account and cached for 10 minutes; the provider bills you for them. A price that cannot be read right now is null with price_verified: false, never 0, and such a size cannot be created until it can.

It acts for a person: it requires a bearer token whose user holds the use_forge capability in the acting organization, and Forge cloud compute switched on for the organization.

GEThttps://api.aitronos.com/v1/forge/compute/offerings/{offering_id}/options

Path Parameters

offering_id string required

The offering id from List compute offerings: aitronos, or a bring-your-own provider such as hetzner or digitalocean. 1 to 64 characters.

Query Parameters

organization_id string optional

The organization to act in. Defaults to your current organization. You must be an active member of it, or the request is refused with 403 ORGANIZATION_ACCESS_DENIED.

Headers

X-Organization-Id string optional

The same as organization_id, as a header. When both are sent, the query parameter wins.


Returns

catalog_version string — send it back inside the quote of a create or resume.

title string — the offering's name to show over the form, e.g. Aitronos servers.

description string or null — one line under the title.

free_sizing boolean — true when vCPU and memory can be picked separately (machine_types is not empty). Aitronos servers only.

fields object — every label of the create form: location, size, cpu, memory, name, change, cancel, create, creating (the button while the request runs), alternatives (the heading over other choices after a refusal), and name_max_length (63).

currency string — ISO 4217 code of every price in the response: CHF for Aitronos servers, the provider's own currency for your own account.

price_source string — who sets and bills the prices: aitronos (billed to your organization), or the offering id of the provider that bills you.

locations array — where servers can run, each with id, label, detail (a second line, or null), country (ISO 3166-1 alpha-2), available (at least one size can be ordered there now), order, option_label (the text of the location picker's entry, e.g. Finland · Not available here) and proposed_name (the server name to propose while this location is selected: the location's name and the lowest number none of your organization's servers uses, e.g. germany-2).

sizes array — smallest first, each with id, label, vcpu, memory_gb, disk_gb (or null), arch (x86_64 or arm64), dedicated_cpu, order and prices: one entry per location the size is offered in, with:

  • location_id string — the location the price applies to.
  • hourly string or null — price per started hour as a decimal string in currency, excluding VAT; null when it could not be read.
  • monthly_cap string or null — the most one server of this size is charged in a calendar month.
  • includes_vat boolean — always false.
  • available boolean — the size can be ordered in this location now.
  • price_verified boolean — false when hourly could not be read.
  • summary string — the choice in one line, e.g. 16 vCPU · 64 GB · Germany.
  • option_label string — the text of the size picker's entry, with its price or why it cannot be ordered.
  • message string — why this choice cannot be created right now; present only then.
  • button_label string — the create button for this choice, e.g. Create · 16 vCPU · 64 GB · Germany · CHF 0.83/h, at most CHF 520.30/month.
  • can_create boolean — whether the create button is enabled for this choice.

machine_types array — free sizing: every server that can be picked by vCPU and memory, smallest first, in the same shape as sizes. A machine type of the same vCPU and memory as a size has that size's id (std-16); the others are named after their shape (ded-x86-48c-192g). Empty for a bring-your-own offering.

cpu_choices, memory_choices arrays — free sizing: the values to offer, each {value, label} ({"value": 16, "label": "16 vCPU"}, {"value": 64, "label": "64 GB"}).

resolutions array — free sizing: for every location × cpu_choices value × memory_choices value, {location_id, vcpu, memory_gb, machine_type_id, note}. machine_type_id is the machine_types entry to create (its price is in that entry), or null when no server there has both; note is a sentence to show (why a larger server was chosen, or the largest server there), or null for an exact match.

defaults object — location_id and size_id to preselect (each may be null); name, the server name to propose for that location; and for free sizing vcpu, memory_gb and machine_type_id to preselect (null without free sizing).

parked_storage object — per_gb_month (price per GB of a parked server per month as a decimal string, or null when it is not charged this way or unknown) and note (how parking works for this offering).

notes array of strings — sentences to show next to the prices.

footer_notes array — the lines to show under the create button, in order, each {id, text}: billed_to (who is billed), auto_park (after how many idle hours a server parks itself, from your compute settings; left out when it never does), park and connected_as (bring-your-own), then note_1, note_2, … (the notes).

Abbreviated: one of the four sizes, one of the six machine types and two of the 72 resolutions.

{
  "catalog_version": "fc-3b8e1f0a9c42",
  "currency": "CHF",
  "price_source": "aitronos",
  "title": "Aitronos servers",
  "description": "Billed to your organization as Forge cloud compute.",
  "free_sizing": true,
  "fields": {
    "location": "Location",
    "size": "Size",
    "cpu": "CPU",
    "memory": "Memory",
    "name": "Name",
    "change": "Change",
    "cancel": "Cancel",
    "create": "Create",
    "creating": "Creating…",
    "alternatives": "Available instead",
    "name_max_length": 63
  },
  "locations": [
    {
      "id": "eu-central",
      "label": "Germany",
      "detail": "Falkenstein or Nuremberg",
      "country": "DE",
      "available": true,
      "order": 0,
      "option_label": "Germany",
      "proposed_name": "germany-1"
    },
    {
      "id": "eu-north",
      "label": "Finland",
      "detail": "Helsinki",
      "country": "FI",
      "available": true,
      "order": 1,
      "option_label": "Finland",
      "proposed_name": "finland-1"
    }
  ],
  "sizes": [
    {
      "id": "std-16",
      "label": "16 vCPU · 64 GB",
      "vcpu": 16,
      "memory_gb": 64,
      "disk_gb": 360,
      "arch": "x86_64",
      "dedicated_cpu": true,
      "order": 2,
      "prices": [
        {
          "location_id": "eu-central",
          "hourly": "0.83",
          "monthly_cap": "520.30",
          "includes_vat": false,
          "available": true,
          "price_verified": true,
          "summary": "16 vCPU · 64 GB · Germany",
          "option_label": "16 vCPU · 64 GB · CHF 0.83/h",
          "button_label": "Create · 16 vCPU · 64 GB · Germany · CHF 0.83/h, at most CHF 520.30/month",
          "can_create": true
        },
        {
          "location_id": "eu-north",
          "hourly": "0.83",
          "monthly_cap": "520.30",
          "includes_vat": false,
          "available": true,
          "price_verified": true,
          "summary": "16 vCPU · 64 GB · Finland",
          "option_label": "16 vCPU · 64 GB · CHF 0.83/h",
          "button_label": "Create · 16 vCPU · 64 GB · Finland · CHF 0.83/h, at most CHF 520.30/month",
          "can_create": true
        }
      ]
    }
  ],
  "machine_types": [
    {
      "id": "ded-x86-48c-192g",
      "label": "48 vCPU · 192 GB",
      "vcpu": 48,
      "memory_gb": 192,
      "disk_gb": 960,
      "arch": "x86_64",
      "dedicated_cpu": true,
      "order": 5,
      "prices": [
        {
          "location_id": "eu-central",
          "hourly": "2.58",
          "monthly_cap": "1607.04",
          "includes_vat": false,
          "available": true,
          "price_verified": true,
          "summary": "48 vCPU · 192 GB · Germany",
          "option_label": "48 vCPU · 192 GB · CHF 2.58/h",
          "button_label": "Create · 48 vCPU · 192 GB · Germany · CHF 2.58/h, at most CHF 1,607.04/month",
          "can_create": true
        },
        {
          "location_id": "eu-north",
          "hourly": "2.58",
          "monthly_cap": "1607.04",
          "includes_vat": false,
          "available": true,
          "price_verified": true,
          "summary": "48 vCPU · 192 GB · Finland",
          "option_label": "48 vCPU · 192 GB · CHF 2.58/h",
          "button_label": "Create · 48 vCPU · 192 GB · Finland · CHF 2.58/h, at most CHF 1,607.04/month",
          "can_create": true
        }
      ]
    }
  ],
  "cpu_choices": [
    {"value": 2, "label": "2 vCPU"},
    {"value": 4, "label": "4 vCPU"},
    {"value": 8, "label": "8 vCPU"},
    {"value": 16, "label": "16 vCPU"},
    {"value": 32, "label": "32 vCPU"},
    {"value": 48, "label": "48 vCPU"}
  ],
  "memory_choices": [
    {"value": 8, "label": "8 GB"},
    {"value": 16, "label": "16 GB"},
    {"value": 32, "label": "32 GB"},
    {"value": 64, "label": "64 GB"},
    {"value": 128, "label": "128 GB"},
    {"value": 192, "label": "192 GB"}
  ],
  "resolutions": [
    {"location_id": "eu-central", "vcpu": 16, "memory_gb": 64, "machine_type_id": "std-16", "note": null},
    {
      "location_id": "eu-central",
      "vcpu": 16,
      "memory_gb": 192,
      "machine_type_id": "ded-x86-48c-192g",
      "note": "No server in Germany has exactly 16 vCPU and 192 GB, so this is the cheapest one with at least that much."
    }
  ],
  "defaults": {
    "location_id": "eu-central",
    "size_id": "std-16",
    "name": "germany-1",
    "vcpu": 16,
    "memory_gb": 64,
    "machine_type_id": "std-16"
  },
  "parked_storage": {"per_gb_month": "0.0269", "note": "A parked server is stored as a snapshot."},
  "notes": ["Billed per started hour, never more than the monthly cap.", "Prices exclude VAT."],
  "footer_notes": [
    {
      "id": "billed_to",
      "text": "Billed to Acme AG as Forge cloud compute. Park keeps your work and stops the compute charge."
    },
    {"id": "auto_park", "text": "Parks on its own after 1 h without use."},
    {"id": "note_1", "text": "Billed per started hour, never more than the monthly cap."},
    {"id": "note_2", "text": "Prices exclude VAT."}
  ]
}

Errors

StatusCodeWhen
401AUTHENTICATION_REQUIREDNo credential, or a credential with no user (an organization API key).
403ORGANIZATION_ACCESS_DENIEDorganization_id or X-Organization-Id names an organization you are not an active member of.
403INSUFFICIENT_PERMISSIONSThe user does not hold use_forge in the acting organization.
403FORGE_COMPUTE_DISABLEDForge cloud compute is not switched on for the organization.
403FORGE_COMPUTE_OFFERING_BLOCKEDThe offering cannot be used in this environment. message and details.blocked_reason are the catalog's blocked_reason.
403FORGE_COMPUTE_OFFERING_NOT_OFFEREDThe offering is not offered to you right now: switched off, switched off for your organization, or offered to Aitronos staff only. message names the offering (for example "DigitalOcean is not offered right now.") and details.offering_id is its id.
404FORGE_COMPUTE_OFFERING_NOT_FOUNDNo offering has this id.
422FORGE_COMPUTE_CREDENTIAL_MISSINGA bring-your-own offering whose account is not connected.
422FORGE_COMPUTE_CREDENTIAL_REJECTEDThe provider refused the connected account. Connect it again.
502FORGE_COMPUTE_PROVIDER_UNREACHABLEThe provider did not answer. Try again in a moment.
cURL
curl "https://api.aitronos.com/v1/forge/compute/offerings/aitronos/options" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Response:

{
  "catalog_version": "fc-3b8e1f0a9c42",
  "currency": "USD",
  "price_source": "digitalocean",
  "title": "DigitalOcean",
  "description": "Runs in your own DigitalOcean team. DigitalOcean bills you directly.",
  "free_sizing": false,
  "fields": {
    "location": "Location",
    "size": "Size",
    "cpu": "CPU",
    "memory": "Memory",
    "name": "Name",
    "change": "Change",
    "cancel": "Cancel",
    "create": "Create",
    "creating": "Creating…",
    "alternatives": "Available instead",
    "name_max_length": 63
  },
  "locations": [
    {
      "id": "ams3",
      "label": "Amsterdam 3",
      "detail": "Amsterdam",
      "country": "NL",
      "available": true,
      "order": 0,
      "option_label": "Amsterdam 3",
      "proposed_name": "amsterdam-3-1"
    },
    {
      "id": "fra1",
      "label": "Frankfurt 1",
      "detail": "Frankfurt",
      "country": "DE",
      "available": true,
      "order": 1,
      "option_label": "Frankfurt 1",
      "proposed_name": "frankfurt-1-1"
    }
  ],
  "sizes": [
    {
      "id": "c-8",
      "label": "c-8 · 8 vCPU · 16 GB",
      "vcpu": 8,
      "memory_gb": 16,
      "disk_gb": 100,
      "arch": "x86_64",
      "dedicated_cpu": true,
      "order": 0,
      "prices": [
        {
          "location_id": "ams3",
          "hourly": "0.2500",
          "monthly_cap": "168.00",
          "includes_vat": false,
          "available": true,
          "price_verified": true,
          "summary": "c-8 · 8 vCPU · 16 GB · Amsterdam 3",
          "option_label": "c-8 · 8 vCPU · 16 GB · USD 0.25/h",
          "button_label": "Create · c-8 · 8 vCPU · 16 GB · Amsterdam 3 · USD 0.25/h (DigitalOcean price)",
          "can_create": true
        },
        {
          "location_id": "fra1",
          "hourly": "0.2500",
          "monthly_cap": "168.00",
          "includes_vat": false,
          "available": true,
          "price_verified": true,
          "summary": "c-8 · 8 vCPU · 16 GB · Frankfurt 1",
          "option_label": "c-8 · 8 vCPU · 16 GB · USD 0.25/h",
          "button_label": "Create · c-8 · 8 vCPU · 16 GB · Frankfurt 1 · USD 0.25/h (DigitalOcean price)",
          "can_create": true
        }
      ]
    }
  ],
  "machine_types": [],
  "cpu_choices": [],
  "memory_choices": [],
  "resolutions": [],
  "defaults": {
    "location_id": "fra1",
    "size_id": "c-8",
    "name": "frankfurt-1-1",
    "vcpu": null,
    "memory_gb": null,
    "machine_type_id": null
  },
  "parked_storage": {"per_gb_month": "0.0600", "note": "A parked server is stored as a snapshot."},
  "notes": ["Prices are DigitalOcean's own, billed by DigitalOcean to your account.", "Prices exclude VAT."],
  "footer_notes": [
    {"id": "billed_to", "text": "DigitalOcean bills you directly; nothing is added to Acme AG's usage."},
    {"id": "park", "text": "Park keeps your work and stops the server's hourly bill."},
    {"id": "connected_as", "text": "Connected as ops@acme.example."},
    {"id": "note_1", "text": "Prices are DigitalOcean's own, billed by DigitalOcean to your account."},
    {"id": "note_2", "text": "Prices exclude VAT."}
  ]
}