apyhub
DEVELOPER TOOLS

Compare Features & Costs across Cloud Providers

What it does

Cloud Server Catalog gives you a searchable inventory of cloud locations and server offerings across providers. Use it to look up provider, region, zone, instance type, pricing, CPU and memory specs, storage, accelerators, and architecture in a consistent format.

Send query filters such as page, region, provider, price_type, instance_type, max_risk, vCPU and memory bounds, storage bounds, accelerator fields, processor fields, and sorting options. The List Servers endpoint returns a paginated data array plus metadata with total_results, total_pages, current_page, and page_size. Each server record includes fields like catalog_id, provider, region, instance_type, vcpus, memory_gb, storage_gb, price_per_hour, and price_per_month, with optional fields for risk, zone, disk details, accelerator details, benchmark scores, and price currency.

Use List Locations when you need the regional catalog view instead of per-instance pricing. It accepts filters for page, zone, region, provider, and sort controls, then returns paginated location records with id, provider, region, display_name, and optional zone, created_at, and updated_at values.

Get Field Values returns the reference lists behind the catalog, including providers, price_types, processor_vendors, accelerator_vendors, and processor_architectures. That is useful when you want to build filters, dropdowns, or validation rules from the same source as the server data.

▣ ENDPOINT 01 / 03
GET
Get Field Values
http://localhost:8080/multicloud/get-field-values
QUICKSTARTGUIDE

Quickstart

Fetch the available field values with the required API key header.

curl -X GET "http://localhost:8080/multicloud/get-field-values" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with five array fields: providers, price_types, processor_vendors, accelerator_vendors, and processor_architectures. Each field is an array of strings listing the unique values for that category.

{
    "providers": [
        "AWS",
        "AZURE",
        "GCE",
        "OCI"
    ],
    "processor_architectures": [
        "arm64",
        "arm64_mac",
        "x86_64",
        "x86_64_mac"
    ],
    "processor_vendors": [
        "AMD",
        "AWS",
        "Ampere",
        "Apple",
        "Google",
        "Intel",
        "NVIDIA"
    ],
    "accelerator_vendors": [
        "AMD",
        "AWS",
        "Habana",
        "NVIDIA"
    ],
    "price_types": [
        "ON_DEMAND",
        "SPOT"
    ]
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns a JSON object containing the available values for several field categories used by the service. The response includes arrays for providers, price types, processor vendors, accelerator vendors, and processor architectures.

Response

Returns a JSON object with five required string-array fields: providers, price_types, processor_vendors, accelerator_vendors, and processor_architectures.

AttributeTypeMandatoryDescription
providersString ArrayYesList of unique provider values.
price_typesString ArrayYesList of unique price type values.
processor_vendorsString ArrayYesList of unique processor vendor values.
accelerator_vendorsString ArrayYesList of unique accelerator vendor values.
processor_architecturesString ArrayYesList of unique processor architecture values.

Parameters

No parameters.
▣ ENDPOINT 02 / 03
GET
List Locations
http://localhost:8080/multicloud/get-field-values/locations
QUICKSTARTGUIDE

Quickstart

List locations, using the default page size and page 1.

curl -X GET "http://localhost:8080/multicloud/get-field-values/locations?page=1&per_page=20" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with:

  • data — an array of location objects
  • metadata — a pagination object with total_results, total_pages, current_page, and page_size

Each item in data includes id, provider, region, and display_name, with optional zone, created_at, and updated_at.

{
  "data": [
    {
      "id": "aws-us-east-1a",
      "provider": "aws",
      "region": "us-east-1",
      "display_name": "US East 1a",
      "zone": "us-east-1a"
    }
  ],
  "metadata": {
    "total_results": 1,
    "total_pages": 1,
    "current_page": 1,
    "page_size": 20
  }
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Page number for pagination
Filter by zone name
Filter by region name
Sort results by field
Number of items per page
Filter by cloud provider
Sort order (ascending or descending)

About this endpoint

What it does

Returns a paginated list of locations. You can filter the list by provider, region, or zone, and sort the results by provider, region, or zone.

Query Parameter(s)

AttributeTypeMandatoryDescription
pageIntegerNoPage number for pagination. Default: 1. Minimum: 1. Maximum: 1000.
zoneStringNoFilter by zone name. Min length: 1. Max length: 50.
regionStringNoFilter by region name. Min length: 1. Max length: 50.
sort_byStringNoSort results by field. Allowed values: provider, region, zone.
per_pageIntegerNoNumber of items per page. Default: 20. Minimum: 1. Maximum: 100.
providerStringNoFilter by cloud provider. Min length: 1. Max length: 50.
sort_orderStringNoSort order (ascending or descending). Allowed values: asc, desc.

Response

Returns a JSON object with data and metadata fields. data is an array of location objects, and metadata is an object containing pagination information. Success response schema: 200.

ParameterTypeMandatoryDescription
dataObject ArrayYesArray of location records. Each item includes id, provider, region, and display_name as required fields; zone, created_at, and updated_at are optional.
metadataObjectYesPagination metadata with total_results, total_pages, current_page, and page_size.

Notes

The response is paginated. Use the metadata.current_page, metadata.page_size, metadata.total_pages, and metadata.total_results fields to navigate through the full result set.

Query parameters

Name
Type
Description
pageOPTIONAL
integer
Page number for pagination
DEFAULT 1
zoneOPTIONAL
string
Filter by zone name
regionOPTIONAL
string
Filter by region name
sort_byOPTIONAL
string
Sort results by field
per_pageOPTIONAL
integer
Number of items per page
DEFAULT 20
providerOPTIONAL
string
Filter by cloud provider
sort_orderOPTIONAL
string
Sort order (ascending or descending)
▣ ENDPOINT 03 / 03
GET
List Servers
http://localhost:8080/multicloud/get-field-values/servers
QUICKSTARTGUIDE

Quickstart

Fetch a page of server listings with the default pagination settings.

curl -X GET "http://localhost:8080/multicloud/get-field-values/servers?page=1&per_page=20" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with:

  • data array of server listing objects
  • metadata object with pagination details

Each server listing includes required fields like catalog_id, provider, region, instance_type, vcpus, memory_gb, storage_gb, price_per_hour, and price_per_month.

{
  "data": [],
  "metadata": {
    "total_results": 0,
    "total_pages": 0,
    "current_page": 1,
    "page_size": 20
  }
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Page number for pagination
Filter by region name - case-insensitive. Supports regex patterns (e.g., 'eu-.*')
Field to sort by
Maximum acceptable pre-emption risk level for spot instances (0-5)
Number of items per page
Filter by cloud provider - case-insensitive
Maximum number of vCPUs
Minimum number of vCPUs
Filter by pricing type - case-insensitive. Valid: 'SPOT' or 'ON_DEMAND'
Sort order (asc/desc)
Filter by instance type/name. Supports regex patterns (e.g., t3.*)
Maximum RAM in GB
Minimum RAM in GB
Maximum storage size in GB
Minimum storage size in GB
Filter for servers with any accelerator/GPU
Filter by accelerator/GPU name. Supports regex patterns (e.g., 'V100.*')
Filter by processor vendor
Minimum processor speed in GHz
Filter by accelerator vendor
Maximum price per hour in USD
Maximum estimated price per month in USD
Minimum number of accelerators/GPUs
Filter by CPU architecture
Minimum multi-core benchmark score
Minimum memory per accelerator in GB
Minimum single-core benchmark score
Minimum total accelerator memory in GB

About this endpoint

What it does

Returns a paginated list of server listings that match the provided filters and sorting options. The response includes a data array of server records and a metadata object with pagination details.

Query Parameter(s)

AttributeTypeMandatoryDescription
pageIntegerNoPage number for pagination. Default: 1. Minimum: 1, maximum: 1000.
regionStringNoFilter by region name, case-insensitive. Supports regex patterns such as eu-.*. Length: 1 to 50.
sort_byStringNoField to sort by. Default: price_per_hour.
max_riskIntegerNoMaximum acceptable pre-emption risk level for spot instances. Allowed range: 0 to 5.
per_pageIntegerNoNumber of items per page. Default: 20. Minimum: 1, maximum: 100.
providerStringNoFilter by cloud provider, case-insensitive. Length: 1 to 50.
max_vcpusIntegerNoMaximum number of vCPUs. Minimum: 0.
min_vcpusIntegerNoMinimum number of vCPUs. Minimum: 0.
price_typeStringNoFilter by pricing type, case-insensitive. Valid values: SPOT, ON_DEMAND. Length: 1 to 50.
sort_orderStringNoSort order. Default: asc. Allowed values: asc, desc.
instance_typeStringNoFilter by instance type/name. Supports regex patterns such as t3.*. Length: 1 to 50.
max_memory_gbNumberNoMaximum RAM in GB. Minimum: 0.
min_memory_gbNumberNoMinimum RAM in GB. Minimum: 0.
max_storage_gbNumberNoMaximum storage size in GB. Minimum: 0.
min_storage_gbNumberNoMinimum storage size in GB. Minimum: 0.
has_acceleratorBooleanNoFilter for servers with any accelerator/GPU.
accelerator_nameStringNoFilter by accelerator/GPU name. Supports regex patterns such as V100.*.
processor_vendorStringNoFilter by processor vendor. Length: 1 to 50.
processor_min_ghzNumberNoMinimum processor speed in GHz. Minimum: 0.
accelerator_vendorStringNoFilter by accelerator vendor.
max_price_per_hourNumberNoMaximum price per hour in USD. Minimum: 0.
max_price_per_monthNumberNoMaximum estimated price per month in USD. Minimum: 0.
min_accelerator_countIntegerNoMinimum number of accelerators/GPUs. Minimum: 0.
processor_architectureStringNoFilter by CPU architecture. Length: 1 to 50.
min_multi_core_benchmarkNumberNoMinimum multi-core benchmark score. Minimum: 0.
min_accelerator_memory_gbNumberNoMinimum memory per accelerator in GB. Minimum: 0.
min_single_core_benchmarkNumberNoMinimum single-core benchmark score. Minimum: 0.
min_total_accelerator_memory_gbNumberNoMinimum total accelerator memory in GB. Minimum: 0.

Response

Returns a JSON object with a data array of server objects and a metadata object for pagination. Each server object includes fields such as catalog_id, provider, region, instance_type, vcpus, memory_gb, storage_gb, price_per_hour, and price_per_month, and metadata includes total_results, total_pages, current_page, and page_size. Success response: 200.

ParameterTypeMandatoryDescription
dataObject ArrayYesArray of server listings. Each item includes the fields defined by the ServerResponse schema.
metadataObjectYesPagination metadata. Includes total_results, total_pages, current_page, and page_size.

Query parameters

Name
Type
Description
pageOPTIONAL
integer
Page number for pagination
DEFAULT 1
regionOPTIONAL
string
Filter by region name - case-insensitive. Supports regex patterns (e.g., 'eu-.*')
sort_byOPTIONAL
string
Field to sort by
DEFAULT price_per_hour
max_riskOPTIONAL
integer
Maximum acceptable pre-emption risk level for spot instances (0-5)
per_pageOPTIONAL
integer
Number of items per page
DEFAULT 20
providerOPTIONAL
string
Filter by cloud provider - case-insensitive
max_vcpusOPTIONAL
integer
Maximum number of vCPUs
min_vcpusOPTIONAL
integer
Minimum number of vCPUs
price_typeOPTIONAL
string
Filter by pricing type - case-insensitive. Valid: 'SPOT' or 'ON_DEMAND'
sort_orderOPTIONAL
string
Sort order (asc/desc)
DEFAULT asc
instance_typeOPTIONAL
string
Filter by instance type/name. Supports regex patterns (e.g., t3.*)
max_memory_gbOPTIONAL
number
Maximum RAM in GB
min_memory_gbOPTIONAL
number
Minimum RAM in GB
max_storage_gbOPTIONAL
number
Maximum storage size in GB
min_storage_gbOPTIONAL
number
Minimum storage size in GB
has_acceleratorOPTIONAL
boolean
Filter for servers with any accelerator/GPU
accelerator_nameOPTIONAL
string
Filter by accelerator/GPU name. Supports regex patterns (e.g., 'V100.*')
processor_vendorOPTIONAL
string
Filter by processor vendor
processor_min_ghzOPTIONAL
number
Minimum processor speed in GHz
accelerator_vendorOPTIONAL
string
Filter by accelerator vendor
max_price_per_hourOPTIONAL
number
Maximum price per hour in USD
max_price_per_monthOPTIONAL
number
Maximum estimated price per month in USD
min_accelerator_countOPTIONAL
integer
Minimum number of accelerators/GPUs
processor_architectureOPTIONAL
string
Filter by CPU architecture
min_multi_core_benchmarkOPTIONAL
number
Minimum multi-core benchmark score
min_accelerator_memory_gbOPTIONAL
number
Minimum memory per accelerator in GB
min_single_core_benchmarkOPTIONAL
number
Minimum single-core benchmark score
min_total_accelerator_memory_gbOPTIONAL
number
Minimum total accelerator memory in GB
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.