Skip to content

Pricing / Task

Read the price list

Updated · 3 min read

Fetch the public price list with curl, revalidate it with a conditional request, and turn a price into an hourly or monthly cost.

On this page5 sections

Fetch the current list prices to estimate what a resource costs, or to show prices on your own site. The price list is public, so you need no account or access token.

The examples on this page use the list prices of 13 October 2026. Prices change; fetch the list for current values.

Before you begin

Fetch the price list

  1. Request the price list and include the response headers:

    terminal
    curl -si https://api.origincloud.eu/v1/pricing

    The example shows one family only. Example output (headers illustrative):

    text
    HTTP/2 200
    content-type: application/json
    etag: W/"3f9a1c2b7d4e5f60"
    cache-control: public, max-age=300
    access-control-allow-origin: *
    last-modified: Tue, 22 Sep 2026 19:42:11 GMT
    
    {"currency":"EUR","amounts_exclude_vat":true,"last_changed":"2026-09-22T19:42:11.021738+00:00","families":[{"family":"compute_instance","prices":[{"product_key":"compute.gp1.core.2","dimensions":{"instance_type":"gp1.core.2"},"unit_type":"seconds","unit_count":3600,"amount":"0.0551","valid_from":"2026-08-11T08:37:24.666437+00:00","valid_until":null}]}]}
  2. Note the etag value. You use it in the next section to check for changes without downloading the list again.

  3. Optional: list the prices of one family. This command prints each instance type with its price:

    terminal
    curl -s https://api.origincloud.eu/v1/pricing \
      | jq -r '.families[]
        | select(.family == "compute_instance")
        | .prices[]
        | "\(.product_key) \(.amount) EUR per \(.unit_count) \(.unit_type)"'

    Example output (first two lines):

    text
    compute.gp1.core.2 0.0551 EUR per 3600 seconds
    compute.gp1.core.4 0.1103 EUR per 3600 seconds

If a family you expect is missing, it has no current price. For every field in the response, see Price list API.

Check for changes with a conditional request

  1. Send the etag value from your last response in an If-None-Match header:

    terminal
    curl -si https://api.origincloud.eu/v1/pricing \
      -H 'If-None-Match: W/"3f9a1c2b7d4e5f60"'
  2. Check the status code. 304 Not Modified with no body means the price list hasn’t changed, and you keep using your copy. 200 returns the new list with a new etag. Example output (illustrative):

    text
    HTTP/2 304
    etag: W/"3f9a1c2b7d4e5f60"
    cache-control: public, max-age=300
    access-control-allow-origin: *
    last-modified: Tue, 22 Sep 2026 19:42:11 GMT

You can reuse a fetched list for 5 minutes without asking again, as cache-control: public, max-age=300 allows. A price change can take a few minutes to appear.

Calculate a cost from a price

Every price is amount euro per unit_count of unit_type, without VAT. Divide amount by unit_count to get the price of one unit, then multiply by the units you use.

  1. Calculate an hourly rate for a price in seconds. For compute.gp1.core.2 with amount "0.0551" and unit_count 3600:

    text
    0.0551 / 3600 * 3600 seconds = 0.0551 EUR per hour
  2. Calculate a monthly estimate by multiplying the hourly rate by the hours in the month. For 730 hours:

    text
    0.0551 EUR per hour * 730 hours = 40.22 EUR
  3. Calculate a storage cost for a price in gib_hours by multiplying the size by the hours. For storage.gp1 with amount "0.00009589" and unit_count 1, a 100 GiB volume kept for 730 hours costs:

    text
    0.00009589 / 1 * (100 GiB * 730 hours) = 7.00 EUR
  4. Verify the result against your usage and cost reports, which use the same product keys.

  • Price list API – every field, family, header, and status code.
  • Billing – how your organization is invoiced.