apyhub
Back
▣ 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
https://api.eu.apyhub.com/multicloud/get-field-values

QUICKSTART

GUIDE

Quickstart

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

curl -X GET "https://api.eu.apyhub.com/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.

AttributeTypeDescription
providersString ArrayList of unique provider values.
price_typesString ArrayList of unique price type values.
processor_vendorsString ArrayList of unique processor vendor values.
accelerator_vendorsString ArrayList of unique accelerator vendor values.
processor_architecturesString ArrayList of unique processor architecture values.
▣ ENDPOINT 02 / 03
GET
List Locations
https://api.eu.apyhub.com/multicloud/get-field-values/locations

QUICKSTART

GUIDE

Quickstart

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

curl -X GET "https://api.eu.apyhub.com/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

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)

AttributeTypeDescription
pageIntegerPage number for pagination. Default: 1. Minimum: 1. Maximum: 1000.
zoneStringFilter by zone name. Min length: 1. Max length: 50.
regionStringFilter by region name. Min length: 1. Max length: 50.
sort_byStringSort results by field. Allowed values: provider, region, zone.
per_pageIntegerNumber of items per page. Default: 20. Minimum: 1. Maximum: 100.
providerStringFilter by cloud provider. Min length: 1. Max length: 50.
sort_orderStringSort 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.

ParameterTypeDescription
dataObject ArrayArray of location records. Each item includes id, provider, region, and display_name as required fields; zone, created_at, and updated_at are optional.
metadataObjectPagination 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.

▣ ENDPOINT 03 / 03
GET
List Servers
https://api.eu.apyhub.com/multicloud/get-field-values/servers

QUICKSTART

GUIDE

Quickstart

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

curl -X GET "https://api.eu.apyhub.com/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

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)

AttributeTypeDescription
pageIntegerPage number for pagination. Default: 1. Minimum: 1, maximum: 1000.
regionStringFilter by region name, case-insensitive. Supports regex patterns such as eu-.*. Length: 1 to 50.
sort_byStringField to sort by. Default: price_per_hour.
max_riskIntegerMaximum acceptable pre-emption risk level for spot instances. Allowed range: 0 to 5.
per_pageIntegerNumber of items per page. Default: 20. Minimum: 1, maximum: 100.
providerStringFilter by cloud provider, case-insensitive. Length: 1 to 50.
max_vcpusIntegerMaximum number of vCPUs. Minimum: 0.
min_vcpusIntegerMinimum number of vCPUs. Minimum: 0.
price_typeStringFilter by pricing type, case-insensitive. Valid values: SPOT, ON_DEMAND. Length: 1 to 50.
sort_orderStringSort order. Default: asc. Allowed values: asc, desc.
instance_typeStringFilter by instance type/name. Supports regex patterns such as t3.*. Length: 1 to 50.
max_memory_gbNumberMaximum RAM in GB. Minimum: 0.
min_memory_gbNumberMinimum RAM in GB. Minimum: 0.
max_storage_gbNumberMaximum storage size in GB. Minimum: 0.
min_storage_gbNumberMinimum storage size in GB. Minimum: 0.
has_acceleratorBooleanFilter for servers with any accelerator/GPU.
accelerator_nameStringFilter by accelerator/GPU name. Supports regex patterns such as V100.*.
processor_vendorStringFilter by processor vendor. Length: 1 to 50.
processor_min_ghzNumberMinimum processor speed in GHz. Minimum: 0.
accelerator_vendorStringFilter by accelerator vendor.
max_price_per_hourNumberMaximum price per hour in USD. Minimum: 0.
max_price_per_monthNumberMaximum estimated price per month in USD. Minimum: 0.
min_accelerator_countIntegerMinimum number of accelerators/GPUs. Minimum: 0.
processor_architectureStringFilter by CPU architecture. Length: 1 to 50.
min_multi_core_benchmarkNumberMinimum multi-core benchmark score. Minimum: 0.
min_accelerator_memory_gbNumberMinimum memory per accelerator in GB. Minimum: 0.
min_single_core_benchmarkNumberMinimum single-core benchmark score. Minimum: 0.
min_total_accelerator_memory_gbNumberMinimum 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.

ParameterTypeDescription
dataObject ArrayArray of server listings. Each item includes the fields defined by the ServerResponse schema.
metadataObjectPagination metadata. Includes total_results, total_pages, current_page, and page_size.
▣ 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.