# Catalog (Beta)

Cloud SKU catalog — attribute filters, search, and per-SKU detail. Returns the public catalog plus the org's own custom-priced SKUs.

## List filterable catalog SKU attributes

> Returns the fields that can be used in the 'filter' parameter of the catalog SKU list endpoint, along with their types.

```json
{"openapi":"3.0.2","info":{"title":"Archera.ai Beta API","version":"v1.0.0"},"tags":[{"name":"Catalog (Beta)","description":"Cloud SKU catalog — attribute filters, search, and per-SKU detail. Returns the public catalog plus the org's own custom-priced SKUs."}],"paths":{"/beta/v1/org/{org_id}/catalog/skus/attributes":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BaseAttribute"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Method not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"default":{"$ref":"#/components/responses/DEFAULT_ERROR"}},"summary":"List filterable catalog SKU attributes","tags":["Catalog (Beta)"],"description":"Returns the fields that can be used in the 'filter' parameter of the catalog SKU list endpoint, along with their types."}}},"components":{"schemas":{"BaseAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["boolean","integer","float","date","datetime","time","currency","percent","string","enum","uuid","tags"]}},"required":["field","name","type"],"additionalProperties":false},"ApiErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"detail":{"nullable":true},"code":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"timestamp":{"type":"string"},"type":{"type":"string"}},"required":["message","timestamp","type"]},"Error":{"type":"object","properties":{"code":{"type":"integer","description":"Error code"},"status":{"type":"string","description":"Error name"},"message":{"type":"string","description":"Error message"},"errors":{"type":"object","description":"Errors","additionalProperties":{}}},"additionalProperties":false}},"responses":{"DEFAULT_ERROR":{"description":"Default error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}
```

## Get valid values for a filterable catalog SKU attribute

> Returns the distinct values for a given field, scoped to the same filters that would be applied on the list endpoint. Use this to narrow refinements (e.g. ask for valid instance\_type values for a given service+region before issuing a list call).

```json
{"openapi":"3.0.2","info":{"title":"Archera.ai Beta API","version":"v1.0.0"},"tags":[{"name":"Catalog (Beta)","description":"Cloud SKU catalog — attribute filters, search, and per-SKU detail. Returns the public catalog plus the org's own custom-priced SKUs."}],"paths":{"/beta/v1/org/{org_id}/catalog/skus/attributes/{field}":{"get":{"parameters":[{"in":"query","name":"provider","description":"Cloud provider (aws, azure, gcp)","schema":{"type":"string","enum":["aws","azure","gcp","kubernetes","unknown"]},"required":true},{"in":"query","name":"search","description":"Text search across SKU name, description, service, and the curated attribute fields (e.g. instance_type, region_code).","schema":{"type":"string","default":null,"nullable":true},"required":false},{"in":"query","name":"filter","description":"JSON filter object — tree of {field, op, value} leaves combined with and / or / not. Supported ops: `=`, `!=`, `in` on any field; `>`, `>=`, `<`, `<=` on numeric fields (`ondemand_usage_price`, `vcpu`, `memory`). Examples: {\"and\": [{\"field\": \"service\", \"op\": \"=\", \"value\": \"Amazon Elastic Compute Cloud - Compute\"}, {\"field\": \"instance_type\", \"op\": \"=\", \"value\": \"m5.large\"}]} — categorical; {\"field\": \"ondemand_usage_price\", \"op\": \"<\", \"value\": 0.10} — under $0.10/hr; {\"field\": \"vcpu\", \"op\": \">=\", \"value\": 16} — ≥16 vCPU. `memory` is in BYTES — divide by 2**30 for GiB / 1e9 for GB before comparing. Call /attributes for the filterable fields and /attributes/<field> for valid categorical values within the current scope.","schema":{"type":"object","default":null,"additionalProperties":{},"nullable":true},"required":false},{"in":"query","name":"order_by","description":"Field to order results by. Includes the numeric specs (`ondemand_usage_price`, `vcpu`, `memory`) for sorting by price or size.","schema":{"type":"string","default":"instance_type","enum":["instance_type","service","region_code","ondemand_usage_price","vcpu","memory"]},"required":false},{"in":"query","name":"desc","description":"Sort descending","schema":{"type":"boolean","default":false},"required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attribute"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Method not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"$ref":"#/components/responses/UNPROCESSABLE_CONTENT"},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"default":{"$ref":"#/components/responses/DEFAULT_ERROR"}},"summary":"Get valid values for a filterable catalog SKU attribute","tags":["Catalog (Beta)"],"description":"Returns the distinct values for a given field, scoped to the same filters that would be applied on the list endpoint. Use this to narrow refinements (e.g. ask for valid instance_type values for a given service+region before issuing a list call)."}}},"components":{"schemas":{"Attribute":{"oneOf":[{"$ref":"#/components/schemas/BooleanAttribute"},{"$ref":"#/components/schemas/UUIDAttribute"},{"$ref":"#/components/schemas/StringAttribute"},{"$ref":"#/components/schemas/IntegerAttribute"},{"$ref":"#/components/schemas/FloatAttribute"},{"$ref":"#/components/schemas/CurrencyAttribute"},{"$ref":"#/components/schemas/PercentAttribute"},{"$ref":"#/components/schemas/DateTimeAttribute"},{"$ref":"#/components/schemas/DateAttribute"},{"$ref":"#/components/schemas/TimeAttribute"},{"$ref":"#/components/schemas/EnumAttribute"},{"$ref":"#/components/schemas/TagsAttribute"}],"discriminator":{"propertyName":"type","mapping":{"boolean":"#/components/schemas/BooleanAttribute","uuid":"#/components/schemas/UUIDAttribute","string":"#/components/schemas/StringAttribute","integer":"#/components/schemas/IntegerAttribute","float":"#/components/schemas/FloatAttribute","currency":"#/components/schemas/CurrencyAttribute","percent":"#/components/schemas/PercentAttribute","datetime":"#/components/schemas/DateTimeAttribute","date":"#/components/schemas/DateAttribute","time":"#/components/schemas/TimeAttribute","enum":"#/components/schemas/EnumAttribute","tags":"#/components/schemas/TagsAttribute"}}},"BooleanAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["boolean"],"readOnly":true},"filters":{"type":"array","items":{"$ref":"#/components/schemas/Filter"}}},"required":["field","name","type"],"additionalProperties":false},"Filter":{"type":"object","properties":{"field":{"type":"string"},"value":{"type":"string"},"op":{"type":"string","enum":["=","!=",">",">=","<","<=","in","has","contains"]}},"required":["field","op","value"],"additionalProperties":false},"UUIDAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["uuid"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"StringAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["string"],"readOnly":true},"filters":{"type":"array","items":{"$ref":"#/components/schemas/Filter"}}},"required":["field","name","type"],"additionalProperties":false},"IntegerAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["integer"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"FloatAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["float"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"CurrencyAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["currency"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"PercentAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["percent"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"DateTimeAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["datetime"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"DateAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["date"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"TimeAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["time"],"readOnly":true}},"required":["field","name","type"],"additionalProperties":false},"EnumAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["enum"],"readOnly":true},"filters":{"type":"array","items":{"$ref":"#/components/schemas/Filter"}}},"required":["field","name","type"],"additionalProperties":false},"TagsAttribute":{"type":"object","properties":{"name":{"type":"string"},"field":{"type":"string"},"type":{"type":"string","enum":["tags"],"readOnly":true},"tags":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["field","name","type"],"additionalProperties":false},"ApiErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"detail":{"nullable":true},"code":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"timestamp":{"type":"string"},"type":{"type":"string"}},"required":["message","timestamp","type"]},"Error":{"type":"object","properties":{"code":{"type":"integer","description":"Error code"},"status":{"type":"string","description":"Error name"},"message":{"type":"string","description":"Error message"},"errors":{"type":"object","description":"Errors","additionalProperties":{}}},"additionalProperties":false}},"responses":{"UNPROCESSABLE_CONTENT":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"DEFAULT_ERROR":{"description":"Default error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}
```

## List catalog SKUs

> Returns SKUs from the public catalog plus the org's custom-priced SKUs, filtered to USD on-demand prices. To restrict to reservable SKUs, pass is\_reservable through the filter arg ({"field": "is\_reservable", "op": "=", "value": true}).

```json
{"openapi":"3.0.2","info":{"title":"Archera.ai Beta API","version":"v1.0.0"},"tags":[{"name":"Catalog (Beta)","description":"Cloud SKU catalog — attribute filters, search, and per-SKU detail. Returns the public catalog plus the org's own custom-priced SKUs."}],"paths":{"/beta/v1/org/{org_id}/catalog/skus":{"get":{"parameters":[{"in":"query","name":"provider","description":"Cloud provider (aws, azure, gcp)","schema":{"type":"string","enum":["aws","azure","gcp","kubernetes","unknown"]},"required":true},{"in":"query","name":"search","description":"Text search across SKU name, description, service, and the curated attribute fields (e.g. instance_type, region_code).","schema":{"type":"string","default":null,"nullable":true},"required":false},{"in":"query","name":"filter","description":"JSON filter object — tree of {field, op, value} leaves combined with and / or / not. Supported ops: `=`, `!=`, `in` on any field; `>`, `>=`, `<`, `<=` on numeric fields (`ondemand_usage_price`, `vcpu`, `memory`). Examples: {\"and\": [{\"field\": \"service\", \"op\": \"=\", \"value\": \"Amazon Elastic Compute Cloud - Compute\"}, {\"field\": \"instance_type\", \"op\": \"=\", \"value\": \"m5.large\"}]} — categorical; {\"field\": \"ondemand_usage_price\", \"op\": \"<\", \"value\": 0.10} — under $0.10/hr; {\"field\": \"vcpu\", \"op\": \">=\", \"value\": 16} — ≥16 vCPU. `memory` is in BYTES — divide by 2**30 for GiB / 1e9 for GB before comparing. Call /attributes for the filterable fields and /attributes/<field> for valid categorical values within the current scope.","schema":{"type":"object","default":null,"additionalProperties":{},"nullable":true},"required":false},{"in":"query","name":"order_by","description":"Field to order results by. Includes the numeric specs (`ondemand_usage_price`, `vcpu`, `memory`) for sorting by price or size.","schema":{"type":"string","default":"instance_type","enum":["instance_type","service","region_code","ondemand_usage_price","vcpu","memory"]},"required":false},{"in":"query","name":"desc","description":"Sort descending","schema":{"type":"boolean","default":false},"required":false},{"in":"query","name":"page","schema":{"type":"integer","default":1,"minimum":1},"required":false},{"in":"query","name":"page_size","schema":{"type":"integer","default":20,"minimum":1,"maximum":100},"required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalogSKU"}}}},"headers":{"X-Pagination":{"$ref":"#/components/headers/PAGINATION"}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Method not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"$ref":"#/components/responses/UNPROCESSABLE_CONTENT"},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"default":{"$ref":"#/components/responses/DEFAULT_ERROR"}},"tags":["Catalog (Beta)"],"summary":"List catalog SKUs","description":"Returns SKUs from the public catalog plus the org's custom-priced SKUs, filtered to USD on-demand prices. To restrict to reservable SKUs, pass is_reservable through the filter arg ({\"field\": \"is_reservable\", \"op\": \"=\", \"value\": true})."}}},"components":{"schemas":{"CatalogSKU":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Catalog SKU id"},"provider":{"description":"Cloud provider (aws, azure, gcp)","type":"string","enum":["aws","azure","gcp","kubernetes","unknown"]},"provider_sku_id":{"type":"string","description":"Provider's own SKU identifier"},"name":{"type":"string","nullable":true},"family":{"type":"string","description":"Product family (e.g. 'Compute Instance')","nullable":true},"service":{"type":"string","description":"Full service name (e.g. 'Amazon Elastic Compute Cloud - Compute')","nullable":true},"provider_service":{"type":"string","description":"Provider service code (e.g. 'AmazonEC2')","nullable":true},"region_code":{"type":"string","description":"Region code (e.g. 'us-east-1')","nullable":true},"full_region_name":{"type":"string","description":"Full region name (e.g. 'US East (N. Virginia)')","nullable":true},"instance_type":{"type":"string","nullable":true},"instance_type_family":{"type":"string","nullable":true},"usage_type":{"type":"string","description":"Provider billing usage type (e.g. 'BoxUsage:m5.large'). The canonical join key against AWS Cost Explorer / billing line items — useful for crossing between catalog and cost data.","nullable":true},"operation":{"type":"string","description":"Provider billing operation code (e.g. 'RunInstances:0002'). Lets the agent spot at-a-glance whether a SKU is the plain default operation or a more specific variant within a usage_type.","nullable":true},"operating_system":{"type":"string","nullable":true},"tenancy":{"type":"string","nullable":true},"database_engine":{"type":"string","nullable":true},"database_edition":{"type":"string","nullable":true},"cache_engine":{"type":"string","nullable":true},"is_multi_az":{"type":"boolean","nullable":true},"is_current_generation":{"type":"boolean","nullable":true},"license_model":{"type":"string","nullable":true},"pre_installed_sw":{"type":"string","nullable":true},"processor_architecture":{"type":"string","description":"CPU architecture (e.g. 'x86_64', 'arm64')","nullable":true},"vcpu":{"type":"number","nullable":true},"memory":{"type":"number","description":"Memory in bytes (not GB). Divide by 2**30 for GiB / 1e9 for GB if presenting to the user.","nullable":true},"is_reservable":{"type":"boolean","description":"Whether this SKU has at least one reserved-term offering"},"is_public":{"type":"boolean","description":"True for public-catalog SKUs (the standard provider catalog). False when this row is the requesting org's own custom-priced SKU (tied to a specific integration; drill into `catalog_sku_details` for the integration_id)."},"ondemand_usage_unit":{"type":"string","nullable":true},"ondemand_usage_price":{"type":"number","description":"On-demand unit price in price_currency","nullable":true},"price_currency":{"type":"string","nullable":true}},"additionalProperties":false},"PaginationMetadata":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of items."},"total_pages":{"type":"integer","description":"Total number of pages."},"first_page":{"type":"integer","description":"First available page number."},"last_page":{"type":"integer","description":"Last available page number."},"page":{"type":"integer","description":"Current page number."},"previous_page":{"type":"integer","description":"Previous page number."},"next_page":{"type":"integer","description":"Next page number."}},"additionalProperties":false},"ApiErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"detail":{"nullable":true},"code":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"timestamp":{"type":"string"},"type":{"type":"string"}},"required":["message","timestamp","type"]},"Error":{"type":"object","properties":{"code":{"type":"integer","description":"Error code"},"status":{"type":"string","description":"Error name"},"message":{"type":"string","description":"Error message"},"errors":{"type":"object","description":"Errors","additionalProperties":{}}},"additionalProperties":false}},"headers":{"PAGINATION":{"description":"Pagination metadata","schema":{"$ref":"#/components/schemas/PaginationMetadata"}}},"responses":{"UNPROCESSABLE_CONTENT":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"DEFAULT_ERROR":{"description":"Default error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}
```

## Get catalog SKU detail

> Returns the full SKU record including hardware specs and (when available) the on-demand pricing terms with tiered price dimensions. Direct-id lookup doesn't apply the list endpoint's \`has\_ondemand\_terms\`/\`price\_currency=USD\` guards, so \`ondemand\_terms\` may be null and \`price\_currency\` may be non-USD for SKUs that wouldn't surface in the list. The SKU must be in the public catalog or owned by the requesting org.

```json
{"openapi":"3.0.2","info":{"title":"Archera.ai Beta API","version":"v1.0.0"},"tags":[{"name":"Catalog (Beta)","description":"Cloud SKU catalog — attribute filters, search, and per-SKU detail. Returns the public catalog plus the org's own custom-priced SKUs."}],"paths":{"/beta/v1/org/{org_id}/catalog/skus/{sku_id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSKUDetail"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Not Found"},"405":{"description":"Method not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"default":{"$ref":"#/components/responses/DEFAULT_ERROR"}},"tags":["Catalog (Beta)"],"summary":"Get catalog SKU detail","description":"Returns the full SKU record including hardware specs and (when available) the on-demand pricing terms with tiered price dimensions. Direct-id lookup doesn't apply the list endpoint's `has_ondemand_terms`/`price_currency=USD` guards, so `ondemand_terms` may be null and `price_currency` may be non-USD for SKUs that wouldn't surface in the list. The SKU must be in the public catalog or owned by the requesting org."}}},"components":{"schemas":{"CatalogSKUDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Catalog SKU id"},"provider":{"description":"Cloud provider (aws, azure, gcp)","type":"string","enum":["aws","azure","gcp","kubernetes","unknown"]},"provider_sku_id":{"type":"string","description":"Provider's own SKU identifier"},"name":{"type":"string","nullable":true},"family":{"type":"string","description":"Product family (e.g. 'Compute Instance')","nullable":true},"service":{"type":"string","description":"Full service name (e.g. 'Amazon Elastic Compute Cloud - Compute')","nullable":true},"provider_service":{"type":"string","description":"Provider service code (e.g. 'AmazonEC2')","nullable":true},"region_code":{"type":"string","description":"Region code (e.g. 'us-east-1')","nullable":true},"full_region_name":{"type":"string","description":"Full region name (e.g. 'US East (N. Virginia)')","nullable":true},"instance_type":{"type":"string","nullable":true},"instance_type_family":{"type":"string","nullable":true},"usage_type":{"type":"string","description":"Provider billing usage type (e.g. 'BoxUsage:m5.large'). The canonical join key against AWS Cost Explorer / billing line items — useful for crossing between catalog and cost data.","nullable":true},"operation":{"type":"string","description":"Provider billing operation code (e.g. 'RunInstances:0002'). Lets the agent spot at-a-glance whether a SKU is the plain default operation or a more specific variant within a usage_type.","nullable":true},"operating_system":{"type":"string","nullable":true},"tenancy":{"type":"string","nullable":true},"database_engine":{"type":"string","nullable":true},"database_edition":{"type":"string","nullable":true},"cache_engine":{"type":"string","nullable":true},"is_multi_az":{"type":"boolean","nullable":true},"is_current_generation":{"type":"boolean","nullable":true},"license_model":{"type":"string","nullable":true},"pre_installed_sw":{"type":"string","nullable":true},"processor_architecture":{"type":"string","description":"CPU architecture (e.g. 'x86_64', 'arm64')","nullable":true},"vcpu":{"type":"number","nullable":true},"memory":{"type":"number","description":"Memory in bytes (not GB). Divide by 2**30 for GiB / 1e9 for GB if presenting to the user.","nullable":true},"is_reservable":{"type":"boolean","description":"Whether this SKU has at least one reserved-term offering"},"is_public":{"type":"boolean","description":"True for public-catalog SKUs (the standard provider catalog). False when this row is the requesting org's own custom-priced SKU (tied to a specific integration; drill into `catalog_sku_details` for the integration_id)."},"ondemand_usage_unit":{"type":"string","nullable":true},"ondemand_usage_price":{"type":"number","description":"On-demand unit price in price_currency","nullable":true},"price_currency":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"location_type":{"type":"string","nullable":true},"availability_zone":{"type":"string","nullable":true},"physical_processor":{"type":"string","nullable":true},"clock_speed":{"type":"string","nullable":true},"processor_features":{"type":"string","nullable":true},"network_performance":{"type":"string","nullable":true},"storage":{"type":"string","nullable":true},"dedicated_ebs_throughput":{"type":"string","nullable":true},"io":{"type":"string","nullable":true},"tax_type":{"type":"string","nullable":true},"has_ondemand_terms":{"type":"boolean"},"normalization_size_factor":{"type":"number","description":"AWS instance-size flexibility unit. Used internally to size convertible RIs across the family; not generally user-facing.","nullable":true},"is_byol":{"type":"boolean","description":"Whether this SKU is a Bring-Your-Own-License variant. Derived from license_model."},"integration_id":{"type":"string","format":"uuid","description":"Integration this SKU's custom pricing is tied to. Null for public-catalog SKUs (the default scope of the list endpoint). Set when the SKU id resolves to a custom-priced SKU on the requesting org — direct-id detail lookups support both public and the org's own custom-priced SKUs.","nullable":true},"end_date":{"type":"string","format":"date-time","description":"Date after which this SKU is no longer available.","nullable":true},"publication_date":{"type":"string","format":"date-time","description":"When this SKU version was published by the provider.","nullable":true},"updated_at":{"type":"string","format":"date","description":"When this SKU was last refreshed in our catalog.","nullable":true},"attributes":{"type":"object","description":"Raw provider-specific attribute blob. May overlap with the structured fields above; prefer the structured fields when they're populated.","additionalProperties":{},"nullable":true},"ondemand_terms":{"anyOf":[{"type":"object","nullable":true},{"$ref":"#/components/schemas/SKUTerms"}]}},"additionalProperties":false},"SKUTerms":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"effective_date":{"type":"string","format":"date-time","nullable":true},"price_currency":{"type":"string","nullable":true},"usage_unit":{"type":"string","nullable":true},"usage_unit_price":{"type":"number","nullable":true},"price_dimensions":{"type":"array","items":{"$ref":"#/components/schemas/PriceDimension"}}},"additionalProperties":false},"PriceDimension":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"description":{"type":"string","nullable":true},"usage_unit":{"type":"string","nullable":true},"price_currency":{"type":"string","nullable":true},"usage_unit_price":{"type":"number","nullable":true},"begin_range":{"type":"number","description":"Tier lower bound (in usage units)","nullable":true},"end_range":{"type":"number","description":"Tier upper bound (in usage units); null means infinite","nullable":true}},"additionalProperties":false},"ApiErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"detail":{"nullable":true},"code":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"timestamp":{"type":"string"},"type":{"type":"string"}},"required":["message","timestamp","type"]},"Error":{"type":"object","properties":{"code":{"type":"integer","description":"Error code"},"status":{"type":"string","description":"Error name"},"message":{"type":"string","description":"Error message"},"errors":{"type":"object","description":"Errors","additionalProperties":{}}},"additionalProperties":false}},"responses":{"DEFAULT_ERROR":{"description":"Default error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}
```

## Compare commitment offers for a hypothetical CatalogSKU + quantity

> Returns every (offer, lease) candidate available for the SKU, sized to the requested quantity, with monthly-rate financials, discount rate, breakeven days, and upfront cost. Hypothetical and not tied to existing commitments — for swapping a line item's offer, use \`/commitment-plans/{plan\_id}/comparison\`. Returns 400 when the SKU is not reservable (\`is\_reservable=false\`) or has no on-demand price (\`ondemand\_usage\_price\` null/zero) — savings can't be quoted against a missing baseline.

```json
{"openapi":"3.0.2","info":{"title":"Archera.ai Beta API","version":"v1.0.0"},"tags":[{"name":"Catalog (Beta)","description":"Cloud SKU catalog — attribute filters, search, and per-SKU detail. Returns the public catalog plus the org's own custom-priced SKUs."}],"paths":{"/beta/v1/org/{org_id}/catalog/skus/{sku_id}/offer-comparison":{"get":{"parameters":[{"in":"query","name":"quantity","description":"Number of SKU units to hypothetically commit to (≥1). Defaults to 1 — discount rates and breakeven days are quantity-invariant, so default=1 answers pricing-comparison questions cleanly. Pass an explicit quantity when the user wants absolute dollar figures (monthly savings, upfront cost) sized to a real purchase. For compute this is instance count; for non-compute SKUs the unit is the SKU's `ondemand_usage_unit`.","schema":{"type":"integer","default":1,"minimum":1},"required":false},{"in":"query","name":"contract_terms","description":"Optional list of contract terms to include (e.g. ['one_year_gris', 'three_year']). If omitted, includes every distinct term that appears in this SKU's candidates after the payment-option filter.","schema":{"type":"array","default":null,"items":{"type":"string","enum":["one_year_gris","thirty_day_gris","two_month_gris","three_month_gris","four_month_gris","five_month_gris","six_month_gris","seven_month_gris","eight_month_gris","nine_month_gris","ten_month_gris","eleven_month_gris","twelve_month_gris","thirteen_month_gris","fourteen_month_gris","fifteen_month_gris","sixteen_month_gris","seventeen_month_gris","eighteen_month_gris","nineteen_month_gris","twenty_month_gris","twenty_one_month_gris","twenty_two_month_gris","twenty_three_month_gris","twenty_four_month_gris","twenty_five_month_gris","twenty_six_month_gris","twenty_seven_month_gris","twenty_eight_month_gris","twenty_nine_month_gris","thirty_month_gris","thirty_one_month_gris","thirty_two_month_gris","thirty_three_month_gris","thirty_four_month_gris","thirty_five_month_gris","one_year","two_year","three_year","five_year","zero_day","thirty_day","two_month","three_month","four_month","five_month","six_month","seven_month","eight_month","nine_month","ten_month","eleven_month","thirteen_month","fourteen_month","fifteen_month","sixteen_month","seventeen_month","eighteen_month","nineteen_month","twenty_month","twenty_one_month","twenty_two_month","twenty_three_month","twenty_five_month","twenty_six_month","twenty_seven_month","twenty_eight_month","twenty_nine_month","thirty_month","thirty_one_month","thirty_two_month","thirty_three_month","thirty_four_month","thirty_five_month"]},"nullable":true},"required":false,"explode":true,"style":"form"},{"in":"query","name":"payment_options","description":"Payment options to include. Defaults to no_upfront only — matches the framing of the other beta comparison endpoints. Pass partial_upfront / all_upfront explicitly to surface those.","schema":{"type":"array","items":{"type":"string","enum":["no_upfront","partial_upfront","all_upfront"]}},"required":false,"explode":true,"style":"form"},{"in":"query","name":"only_most_flexible_commitment_type","description":"When true (default), `candidates[]` and `targets[]` are restricted to the most flexible commitment type available for the SKU's service. For EC2 SKUs that means Compute Savings Plans only — EC2 Reserved Instances and EC2 Instance Savings Plans are excluded because they bind to a single instance family + region, while Compute SPs cover any EC2 / Fargate / Lambda usage. For Azure Virtual Machines SKUs that means Azure Savings Plans only. Azure reservations are excluded because they bind more narrowly than Savings Plans. Same default-deemphasize spirit as `payment_options=['no_upfront']`. Pass false when the user explicitly asks about RIs/reservations, instance-family commitments, standard vs convertible, or 'all options.' For other SKUs this is a no-op today.","schema":{"type":"boolean","default":true},"required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogSKUOfferComparisonResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Not Found"},"405":{"description":"Method not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"$ref":"#/components/responses/UNPROCESSABLE_CONTENT"},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"default":{"$ref":"#/components/responses/DEFAULT_ERROR"}},"tags":["Catalog (Beta)"],"summary":"Compare commitment offers for a hypothetical CatalogSKU + quantity","description":"Returns every (offer, lease) candidate available for the SKU, sized to the requested quantity, with monthly-rate financials, discount rate, breakeven days, and upfront cost. Hypothetical and not tied to existing commitments — for swapping a line item's offer, use `/commitment-plans/{plan_id}/comparison`. Returns 400 when the SKU is not reservable (`is_reservable=false`) or has no on-demand price (`ondemand_usage_price` null/zero) — savings can't be quoted against a missing baseline."}}},"components":{"schemas":{"CatalogSKUOfferComparisonResponse":{"type":"object","properties":{"sku_id":{"type":"string","format":"uuid","description":"The CatalogSKU id compared."},"quantity":{"type":"integer","description":"Quantity hypothetically committed."},"ondemand_baseline":{"description":"On-demand reference point. Compare against each candidate's `commitment_financials_monthly_rate.commitment_cost.total` to see the absolute savings, or read `discount_rate` for the relative figure.","allOf":[{"$ref":"#/components/schemas/CatalogSKUOndemandBaseline"}]},"candidates":{"type":"array","description":"All (offer, lease) pairs available for this SKU at the requested quantity, filtered to the requested contract_terms and payment_options. Ordered by descending discount_rate.","items":{"$ref":"#/components/schemas/CatalogSKUOfferComparisonEntry"}},"targets":{"type":"array","description":"One entry per requested (contract_term, payment_option) target — what the SKU resolves to under that hypothetical, with `actual_term_reason` explaining whether it was an exact match, a fallback to the closest shorter term, or no alternative. Mirrors the line-item endpoint's `hypothetical_totals` shape, collapsed to single-row since catalog comparison is single-SKU. The headline 'should I do this' answer per target is `delta_vs_ondemand.monthly_net_savings`.","items":{"$ref":"#/components/schemas/CatalogSKUTarget"}}},"required":["candidates","ondemand_baseline","quantity","sku_id","targets"],"additionalProperties":false},"CatalogSKUOndemandBaseline":{"type":"object","properties":{"monthly_cost":{"type":"number","description":"Monthly on-demand cost (730-hour rate) for the requested quantity. Equals `ondemand_usage_price * quantity * 730`."},"ondemand_usage_unit":{"type":"string","description":"Unit of measurement for on-demand usage (e.g. 'Hrs').","nullable":true},"ondemand_usage_price":{"type":"number","description":"Per-unit on-demand price in USD."}},"required":["monthly_cost","ondemand_usage_price"],"additionalProperties":false},"CatalogSKUOfferComparisonEntry":{"type":"object","properties":{"offer_id":{"type":"string","format":"uuid","description":"Commitment offer id."},"offer":{"description":"Full offer details (type, region, instance, payment_option, etc).","allOf":[{"$ref":"#/components/schemas/CommitmentOffer"}]},"lease_menu_item_id":{"type":"string","format":"uuid","description":"Lease attached to this candidate, or null for a native (non-Archera) commitment.","nullable":true},"selected_amount":{"type":"number","description":"Commitment amount this candidate would be sized to — unit count for RIs / unit-based CUDs, dollar-per-hour rate for Savings Plans / spend-based CUDs. Match the underlying offer.type to interpret."},"contract_term":{"description":"Effective commitment term — derived from the lease lockin hours when `lease_menu_item_id` is set (e.g. 'one_year_gris'), else from the offer's own duration (e.g. 'one_year', 'three_year'). The real lock-in period, not the offer's raw duration.","type":"string","enum":["one_year_gris","thirty_day_gris","two_month_gris","three_month_gris","four_month_gris","five_month_gris","six_month_gris","seven_month_gris","eight_month_gris","nine_month_gris","ten_month_gris","eleven_month_gris","twelve_month_gris","thirteen_month_gris","fourteen_month_gris","fifteen_month_gris","sixteen_month_gris","seventeen_month_gris","eighteen_month_gris","nineteen_month_gris","twenty_month_gris","twenty_one_month_gris","twenty_two_month_gris","twenty_three_month_gris","twenty_four_month_gris","twenty_five_month_gris","twenty_six_month_gris","twenty_seven_month_gris","twenty_eight_month_gris","twenty_nine_month_gris","thirty_month_gris","thirty_one_month_gris","thirty_two_month_gris","thirty_three_month_gris","thirty_four_month_gris","thirty_five_month_gris","one_year","two_year","three_year","five_year","zero_day","thirty_day","two_month","three_month","four_month","five_month","six_month","seven_month","eight_month","nine_month","ten_month","eleven_month","thirteen_month","fourteen_month","fifteen_month","sixteen_month","seventeen_month","eighteen_month","nineteen_month","twenty_month","twenty_one_month","twenty_two_month","twenty_three_month","twenty_five_month","twenty_six_month","twenty_seven_month","twenty_eight_month","twenty_nine_month","thirty_month","thirty_one_month","thirty_two_month","thirty_three_month","thirty_four_month","thirty_five_month",null],"nullable":true},"payment_option":{"description":"Payment option (no_upfront / partial_upfront / all_upfront).","type":"string","enum":["no_upfront","partial_upfront","all_upfront",null],"nullable":true},"discount_rate":{"type":"number","description":"Discount rate vs on-demand (0-1)."},"breakeven_days":{"type":"number","description":"Days until this candidate pays for itself; null if undefined.","nullable":true},"commitment_upfront_cost":{"type":"number","description":"One-time dollars at signing for this candidate. NOT a rate — do not sum with monthly-rate fields."},"commitment_financials_monthly_rate":{"description":"Projected economics as 730-hour monthly rates, same shape as line items / plans. `commitment_savings.net` is the headline savings vs running on-demand.","allOf":[{"$ref":"#/components/schemas/CommitmentFinancialsNoRebate"}]}},"required":["breakeven_days","commitment_financials_monthly_rate","commitment_upfront_cost","contract_term","discount_rate","lease_menu_item_id","offer","offer_id","payment_option","selected_amount"],"additionalProperties":false},"CommitmentOffer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Offer identifier"},"provider":{"description":"Cloud provider (aws, azure, gcp)","type":"string","enum":["aws","azure","gcp","kubernetes","unknown"]},"type":{"type":"string","description":"Commitment type (e.g. 'ri', 'savings_plan', 'cud')"},"region":{"type":"string","description":"Cloud region (e.g. 'us-east-1')","nullable":true},"duration_seconds":{"type":"integer","description":"Total commitment duration in seconds"},"instance_type":{"type":"string","description":"Instance type (e.g. 'm5.xlarge'), null for Savings Plans","nullable":true},"instance_family":{"type":"string","description":"Instance family (e.g. 'm5'), null for some commitment types","nullable":true},"offering_class":{"description":"Offering class (e.g. 'standard', 'convertible')","type":"string","enum":["standard","convertible",null],"nullable":true},"payment_option":{"description":"Payment option (e.g. 'no_upfront', 'partial_upfront', 'all_upfront')","type":"string","enum":["no_upfront","partial_upfront","all_upfront",null],"nullable":true},"plan_type":{"type":"string","description":"Plan type (e.g. 'Compute', 'EC2Instance')","nullable":true},"product_description":{"type":"string","description":"Product description (e.g. 'Linux/UNIX')","nullable":true},"display_name":{"type":"string","description":"Human-readable offer name","nullable":true},"is_flexible":{"type":"boolean","description":"Whether the commitment has instance size flexibility","nullable":true}},"additionalProperties":false},"CommitmentFinancialsNoRebate":{"type":"object","properties":{"commitment_cost":{"$ref":"#/components/schemas/CommitmentCost"},"commitment_savings":{"$ref":"#/components/schemas/CommitmentSavings_Exclude_Rebate"},"covered_ondemand_cost":{"type":"number","description":"On-demand cost of usage covered by commitments — baseline for savings. NOT a cost paid by the user. Equals commitment_cost.breakdown.cloud_provider_cost.total + commitment_savings.gross."}},"additionalProperties":false},"CommitmentCost":{"type":"object","properties":{"total":{"type":"number","description":"Total paid (cloud_provider_cost.total + archera_premium). Headline 'cost'."},"breakdown":{"$ref":"#/components/schemas/CommitmentCostBreakdown"}},"additionalProperties":false},"CommitmentCostBreakdown":{"type":"object","properties":{"cloud_provider_cost":{"$ref":"#/components/schemas/CloudProviderCost"},"archera_premium":{"type":"number","description":"Archera premium — paid to Archera, equal to a portion of the savings Archera generates for this commitment (fee_rate * gross savings, only charged when gross > 0). Already included in commitment_cost.total (don't add on top). Because premium is only a fraction of gross, whenever archera_premium > 0 the commitment is net-positive after the fee. Native (non-Archera) commitments have premium = 0 and offer no such guarantee; an underutilized guaranteed commitment pre-lockin can also show net < 0 (the rebate that covers this kicks in post-lockin)."}},"additionalProperties":false},"CloudProviderCost":{"type":"object","properties":{"total":{"type":"number","description":"Amortized cost paid to the cloud provider. Sums with archera_premium to reach cost.total."},"breakdown":{"description":"Optional. Additive payment-cadence decomposition of total (recurring + amortized_upfront). Present only when purchase-term structure is known (individual commitment or plan).","allOf":[{"$ref":"#/components/schemas/CloudProviderCostBreakdown"}]}},"additionalProperties":false},"CloudProviderCostBreakdown":{"type":"object","properties":{"recurring":{"type":"number","description":"Recurring monthly payment to the cloud provider."},"amortized_upfront":{"type":"number","description":"Monthly share of the upfront payment, amortized over the term."}},"additionalProperties":false},"CommitmentSavings_Exclude_Rebate":{"type":"object","properties":{"net":{"type":"number","description":"Net savings after Archera premium, including any rebate. Actual bill reduction. Headline 'savings'."},"gross":{"type":"number","description":"Savings before Archera premium. Equals covered_ondemand_cost - commitment_cost.breakdown.cloud_provider_cost.total."}},"additionalProperties":false},"CatalogSKUTarget":{"type":"object","properties":{"contract_term":{"description":"Requested contract term for this hypothetical.","type":"string","enum":["one_year_gris","thirty_day_gris","two_month_gris","three_month_gris","four_month_gris","five_month_gris","six_month_gris","seven_month_gris","eight_month_gris","nine_month_gris","ten_month_gris","eleven_month_gris","twelve_month_gris","thirteen_month_gris","fourteen_month_gris","fifteen_month_gris","sixteen_month_gris","seventeen_month_gris","eighteen_month_gris","nineteen_month_gris","twenty_month_gris","twenty_one_month_gris","twenty_two_month_gris","twenty_three_month_gris","twenty_four_month_gris","twenty_five_month_gris","twenty_six_month_gris","twenty_seven_month_gris","twenty_eight_month_gris","twenty_nine_month_gris","thirty_month_gris","thirty_one_month_gris","thirty_two_month_gris","thirty_three_month_gris","thirty_four_month_gris","thirty_five_month_gris","one_year","two_year","three_year","five_year","zero_day","thirty_day","two_month","three_month","four_month","five_month","six_month","seven_month","eight_month","nine_month","ten_month","eleven_month","thirteen_month","fourteen_month","fifteen_month","sixteen_month","seventeen_month","eighteen_month","nineteen_month","twenty_month","twenty_one_month","twenty_two_month","twenty_three_month","twenty_five_month","twenty_six_month","twenty_seven_month","twenty_eight_month","twenty_nine_month","thirty_month","thirty_one_month","thirty_two_month","thirty_three_month","thirty_four_month","thirty_five_month",null],"nullable":true},"payment_option":{"description":"Requested payment option for this hypothetical.","type":"string","enum":["no_upfront","partial_upfront","all_upfront"]},"actual_term":{"description":"The contract term that actually resolved. Equals `contract_term` when an exact match exists; otherwise the longest term shorter than the target with the same payment option. Null when no alternative exists for the requested (term, payment) pair.","type":"string","enum":["one_year_gris","thirty_day_gris","two_month_gris","three_month_gris","four_month_gris","five_month_gris","six_month_gris","seven_month_gris","eight_month_gris","nine_month_gris","ten_month_gris","eleven_month_gris","twelve_month_gris","thirteen_month_gris","fourteen_month_gris","fifteen_month_gris","sixteen_month_gris","seventeen_month_gris","eighteen_month_gris","nineteen_month_gris","twenty_month_gris","twenty_one_month_gris","twenty_two_month_gris","twenty_three_month_gris","twenty_four_month_gris","twenty_five_month_gris","twenty_six_month_gris","twenty_seven_month_gris","twenty_eight_month_gris","twenty_nine_month_gris","thirty_month_gris","thirty_one_month_gris","thirty_two_month_gris","thirty_three_month_gris","thirty_four_month_gris","thirty_five_month_gris","one_year","two_year","three_year","five_year","zero_day","thirty_day","two_month","three_month","four_month","five_month","six_month","seven_month","eight_month","nine_month","ten_month","eleven_month","thirteen_month","fourteen_month","fifteen_month","sixteen_month","seventeen_month","eighteen_month","nineteen_month","twenty_month","twenty_one_month","twenty_two_month","twenty_three_month","twenty_five_month","twenty_six_month","twenty_seven_month","twenty_eight_month","twenty_nine_month","thirty_month","thirty_one_month","thirty_two_month","thirty_three_month","thirty_four_month","thirty_five_month",null],"nullable":true},"actual_payment_option":{"description":"Payment option of the resolved candidate. Equals `payment_option` whenever a candidate resolved (resolution preserves payment option); null when no alternative.","type":"string","enum":["no_upfront","partial_upfront","all_upfront",null],"nullable":true},"actual_term_reason":{"type":"string","enum":["exact_match","fallback_closest_shorter","no_alternative"],"description":"Why this target landed at `actual_term`. `exact_match` = the SKU offers exactly this (term, payment). `fallback_closest_shorter` = no exact match; resolved to the longest term shorter than target with the same payment option (GRI variant preferred when same duration). `no_alternative` = nothing qualifies; surfaced explicitly so the agent can flag to the user that this (term, payment) combination doesn't exist for the SKU."},"candidate":{"description":"The resolved (offer, lease) candidate, or null when `actual_term_reason='no_alternative'`. Same shape as entries in `candidates[]` — the agent can quote `discount_rate`, `breakeven_days`, etc. directly off this nested entry.","anyOf":[{"$ref":"#/components/schemas/CatalogSKUOfferComparisonEntry"},{"type":"object","nullable":true}]},"commitment_financials_monthly_rate":{"description":"Resolved candidate's 730-hour monthly-rate financials, lifted to the top level so the agent can read the same paths as on the line-item endpoint's `hypothetical_totals[i]`. All-zero when `actual_term_reason='no_alternative'`.","allOf":[{"$ref":"#/components/schemas/CommitmentFinancialsNoRebate"}]},"commitment_upfront_cost":{"type":"number","description":"Resolved candidate's one-time upfront cost. 0 when no alternative resolved. NOT a rate."},"delta_vs_ondemand":{"description":"Axis-by-axis difference vs the on-demand baseline. Analogous to `delta_vs_current` on the line-item endpoint, but the baseline is on-demand (zero commitment) so each field equals the resolved candidate's value directly.","allOf":[{"$ref":"#/components/schemas/CatalogSKUTargetDelta"}]}},"required":["actual_payment_option","actual_term","actual_term_reason","candidate","commitment_financials_monthly_rate","commitment_upfront_cost","contract_term","delta_vs_ondemand","payment_option"],"additionalProperties":false},"CatalogSKUTargetDelta":{"type":"object","properties":{"monthly_net_savings":{"type":"number","description":"Monthly net savings under this target's resolved candidate vs running on-demand. Equals `commitment_financials_monthly_rate.commitment_savings.net` when a candidate resolved; 0 when `actual_term_reason='no_alternative'` (no commitment, you stay on-demand)."},"monthly_commitment_cost":{"type":"number","description":"Monthly commitment cost under this target's resolved candidate. 0 when no alternative resolved."},"upfront_cost":{"type":"number","description":"One-time upfront dollars under this target's resolved candidate. 0 when no alternative resolved. NOT a rate."}},"required":["monthly_commitment_cost","monthly_net_savings","upfront_cost"],"additionalProperties":false},"ApiErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"detail":{"nullable":true},"code":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"timestamp":{"type":"string"},"type":{"type":"string"}},"required":["message","timestamp","type"]},"Error":{"type":"object","properties":{"code":{"type":"integer","description":"Error code"},"status":{"type":"string","description":"Error name"},"message":{"type":"string","description":"Error message"},"errors":{"type":"object","description":"Errors","additionalProperties":{}}},"additionalProperties":false}},"responses":{"UNPROCESSABLE_CONTENT":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"DEFAULT_ERROR":{"description":"Default error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.archera.ai/api-reference/beta-api/catalog-beta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
