{"openapi":"3.0.0","paths":{"/v1/models":{"get":{"operationId":"V1InferenceController_listModels","parameters":[],"responses":{"200":{"description":""}},"tags":["Models"]}},"/v1/chat/completions":{"post":{"operationId":"V1InferenceController_chatCompletions","parameters":[],"responses":{"401":{"description":"`invalid_api_key` — The Bearer API key is missing, malformed, or not recognized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"invalid_api_key":{"summary":"invalid_api_key","value":{"error":{"message":"The Bearer API key is missing, malformed, or not recognized.","type":"invalid_request_error","code":"invalid_api_key"}}}}}}},"402":{"description":"`insufficient_balance` — The account's $COMPUTE balance is below the requested amount.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"insufficient_balance":{"summary":"insufficient_balance","value":{"error":{"message":"The account's $COMPUTE balance is below the requested amount.","type":"insufficient_quota","code":"insufficient_balance"}}}}}}},"403":{"description":"`api_key_frozen` — The API key is currently frozen and cannot be used for requests. | `model_restricted` — The requested model is not in this key's allowed-models list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"api_key_frozen":{"summary":"api_key_frozen","value":{"error":{"message":"The API key is currently frozen and cannot be used for requests.","type":"forbidden","code":"api_key_frozen"}}},"model_restricted":{"summary":"model_restricted","value":{"error":{"message":"The requested model is not in this key's allowed-models list.","type":"forbidden","code":"model_restricted"}}}}}}},"422":{"description":"`validation_failed` — The request body failed validation. Per-field details are in `error.issues[]`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"validation_failed":{"summary":"validation_failed","value":{"error":{"message":"The request body failed validation. Per-field details are in `error.issues[]`.","type":"invalid_request_error","code":"validation_failed"}}}}}}},"429":{"description":"`spending_limit_reached` — A per-key spending cap has been reached. | `rate_limited` — The caller exceeded a rate-limit window on this endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"spending_limit_reached":{"summary":"spending_limit_reached","value":{"error":{"message":"A per-key spending cap has been reached.","type":"rate_limit_error","code":"spending_limit_reached"}}},"rate_limited":{"summary":"rate_limited","value":{"error":{"message":"The caller exceeded a rate-limit window on this endpoint.","type":"rate_limit_error","code":"rate_limited"}}}}}}},"500":{"description":"`stream_interrupted` — The SSE stream aborted before completion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"stream_interrupted":{"summary":"stream_interrupted","value":{"error":{"message":"The SSE stream aborted before completion.","type":"server_error","code":"stream_interrupted"}}}}}}},"502":{"description":"`all_keys_exhausted` — No upstream capacity is currently available for the routed model.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"all_keys_exhausted":{"summary":"all_keys_exhausted","value":{"error":{"message":"No upstream capacity is currently available for the routed model.","type":"server_error","code":"all_keys_exhausted"}}}}}}},"503":{"description":"`service_unavailable` — A required upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"service_unavailable":{"summary":"service_unavailable","value":{"error":{"message":"A required upstream dependency is temporarily unavailable.","type":"server_error","code":"service_unavailable"}}}}}}}},"tags":["Inference"]}},"/v1/usage":{"get":{"operationId":"V1InferenceController_usage","parameters":[],"responses":{"401":{"description":"`unauthorized` — Authentication is required to access this endpoint. | `invalid_api_key` — The Bearer API key is missing, malformed, or not recognized. | `api_key_revoked` — The API key has been revoked and can no longer be used.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"message":"Authentication is required to access this endpoint.","type":"invalid_request_error","code":"unauthorized"}}},"invalid_api_key":{"summary":"invalid_api_key","value":{"error":{"message":"The Bearer API key is missing, malformed, or not recognized.","type":"invalid_request_error","code":"invalid_api_key"}}},"api_key_revoked":{"summary":"api_key_revoked","value":{"error":{"message":"The API key has been revoked and can no longer be used.","type":"invalid_request_error","code":"api_key_revoked"}}}}}}},"403":{"description":"`api_key_frozen` — The API key is currently frozen and cannot be used for requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"api_key_frozen":{"summary":"api_key_frozen","value":{"error":{"message":"The API key is currently frozen and cannot be used for requests.","type":"forbidden","code":"api_key_frozen"}}}}}}}},"tags":["Usage"]}},"/v1/messages":{"post":{"operationId":"V1MessagesController_messages","parameters":[],"responses":{"401":{"description":"`invalid_api_key` — The Bearer API key is missing, malformed, or not recognized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"invalid_api_key":{"summary":"invalid_api_key","value":{"error":{"message":"The Bearer API key is missing, malformed, or not recognized.","type":"invalid_request_error","code":"invalid_api_key"}}}}}}},"402":{"description":"`insufficient_balance` — The account's $COMPUTE balance is below the requested amount.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"insufficient_balance":{"summary":"insufficient_balance","value":{"error":{"message":"The account's $COMPUTE balance is below the requested amount.","type":"insufficient_quota","code":"insufficient_balance"}}}}}}},"403":{"description":"`api_key_frozen` — The API key is currently frozen and cannot be used for requests. | `model_restricted` — The requested model is not in this key's allowed-models list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"api_key_frozen":{"summary":"api_key_frozen","value":{"error":{"message":"The API key is currently frozen and cannot be used for requests.","type":"forbidden","code":"api_key_frozen"}}},"model_restricted":{"summary":"model_restricted","value":{"error":{"message":"The requested model is not in this key's allowed-models list.","type":"forbidden","code":"model_restricted"}}}}}}},"422":{"description":"`validation_failed` — The request body failed validation. Per-field details are in `error.issues[]`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"validation_failed":{"summary":"validation_failed","value":{"error":{"message":"The request body failed validation. Per-field details are in `error.issues[]`.","type":"invalid_request_error","code":"validation_failed"}}}}}}},"429":{"description":"`spending_limit_reached` — A per-key spending cap has been reached. | `rate_limited` — The caller exceeded a rate-limit window on this endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"spending_limit_reached":{"summary":"spending_limit_reached","value":{"error":{"message":"A per-key spending cap has been reached.","type":"rate_limit_error","code":"spending_limit_reached"}}},"rate_limited":{"summary":"rate_limited","value":{"error":{"message":"The caller exceeded a rate-limit window on this endpoint.","type":"rate_limit_error","code":"rate_limited"}}}}}}},"500":{"description":"`stream_interrupted` — The SSE stream aborted before completion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"stream_interrupted":{"summary":"stream_interrupted","value":{"error":{"message":"The SSE stream aborted before completion.","type":"server_error","code":"stream_interrupted"}}}}}}},"502":{"description":"`all_keys_exhausted` — No upstream capacity is currently available for the routed model.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"all_keys_exhausted":{"summary":"all_keys_exhausted","value":{"error":{"message":"No upstream capacity is currently available for the routed model.","type":"server_error","code":"all_keys_exhausted"}}}}}}},"503":{"description":"`service_unavailable` — A required upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"service_unavailable":{"summary":"service_unavailable","value":{"error":{"message":"A required upstream dependency is temporarily unavailable.","type":"server_error","code":"service_unavailable"}}}}}}}},"tags":["Inference"]}},"/v1/inference/estimate":{"get":{"operationId":"InferenceEstimateController_estimate","parameters":[],"responses":{"422":{"description":"`validation_failed` — The request body failed validation. Per-field details are in `error.issues[]`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"validation_failed":{"summary":"validation_failed","value":{"error":{"message":"The request body failed validation. Per-field details are in `error.issues[]`.","type":"invalid_request_error","code":"validation_failed"}}}}}}},"429":{"description":"`rate_limited` — The caller exceeded a rate-limit window on this endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"rate_limited":{"summary":"rate_limited","value":{"error":{"message":"The caller exceeded a rate-limit window on this endpoint.","type":"rate_limit_error","code":"rate_limited"}}}}}}},"503":{"description":"`service_unavailable` — A required upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"service_unavailable":{"summary":"service_unavailable","value":{"error":{"message":"A required upstream dependency is temporarily unavailable.","type":"server_error","code":"service_unavailable"}}}}}}}},"tags":["Estimate"]}}},"info":{"title":"Compute Finance Inference API","description":"OpenAI- and Anthropic-compatible inference over the Compute Finance provider pool. Point an official SDK at Compute Finance by swapping its base URL and passing a `ct_live_*` API key. Requests are billed against the buyer's `$COMPUTE` balance held in BuyerEscrow at the metered rate published by the Oracle.","version":"1.0","contact":{"name":"Compute Finance","url":"https://compute.finance","email":"info@compute.finance"},"license":{"name":"MIT","url":"https://opensource.org/license/mit"}},"tags":[{"name":"Inference","description":"Chat completions (OpenAI wire) and messages (Anthropic wire), streaming or single-shot, billed against `$COMPUTE`."},{"name":"Models","description":"Routable model catalog in OpenAI wire format."},{"name":"Usage","description":"Per-key balance and cumulative counters for the authenticated `ct_live_*` key."},{"name":"Estimate","description":"Pre-flight cost preview for a `(model, promptTokens, completionTokens)` tuple. Unauthenticated, rate-limited."},{"name":"Errors","description":"All API error responses share a unified envelope:\n\n```json\n{\n  \"error\": {\n    \"message\": \"...\",\n    \"type\": \"...\",\n    \"code\": \"<canonical code>\"\n  }\n}\n```\n\nOptional fields: `param` (field name), `details` (code-specific payload), `issues[]` (Zod issues for VALIDATION_FAILED).\n\n## Catalog\n\n| Code | Status | Type | Meaning | When |\n|---|---|---|---|---|\n| `unauthorized` | 401 | `invalid_request_error` | Authentication is required to access this endpoint. | The session cookie is missing or invalid, the Bearer token is absent, or the timestamp on a signed request is outside the 5-minute freshness window. |\n| `forbidden` | 403 | `forbidden` | The caller is authenticated but is not allowed to perform this action. | The caller lacks the required role, or a request was signed by an address different from the authenticated wallet. |\n| `invalid_signature` | 401 | `invalid_request_error` | The provided signature could not be verified. | The EIP-191 signature is malformed, truncated, or does not recover to a valid signer. |\n| `signature_reused` | 409 | `invalid_request_error` | This signed request has already been submitted. | The nonce for this signed request was consumed by an earlier submission. |\n| `invalid_api_key` | 401 | `invalid_request_error` | The Bearer API key is missing, malformed, or not recognized. | The token is empty, does not use the `ct_live_` format, or does not match any active key. |\n| `api_key_frozen` | 403 | `forbidden` | The API key is currently frozen and cannot be used for requests. | The key was frozen from the API keys page or by support. Reactivate it from the API keys page, or contact support if it was frozen by an administrator. |\n| `api_key_revoked` | 401 | `invalid_request_error` | The API key has been revoked and can no longer be used. | The key was revoked from the API keys page. Revocation is permanent — issue a new key to continue. |\n| `model_restricted` | 403 | `forbidden` | The requested model is not in this key's allowed-models list. | The key was restricted to a specific set of models; the request referenced a model outside that set. |\n| `bad_request` | 400 | `invalid_request_error` | The request is invalid in a way that does not match a more specific error code. | A generic 400 for request-shape issues that no other code describes more precisely. |\n| `validation_failed` | 422 | `invalid_request_error` | The request body failed validation. Per-field details are in `error.issues[]`. | One or more fields are missing, of the wrong type, or outside their allowed range. |\n| `method_not_allowed` | 405 | `invalid_request_error` | The endpoint exists but does not accept this HTTP method. | A request used a method the route does not support; the `Allow` response header lists the accepted methods. |\n| `not_found` | 404 | `not_found` | The requested resource does not exist. | The identifier did not match any resource, or the URL does not match any endpoint. |\n| `already_exists` | 409 | `conflict` | A resource with the same unique identity already exists. | A duplicate was detected during pre-check, or a concurrent write violated a unique constraint. |\n| `conflict` | 409 | `conflict` | The resource was modified concurrently; retry with the latest version. | A serializable transaction aborted due to concurrent writes, or an operation found the resource in an inconsistent state. |\n| `insufficient_balance` | 402 | `insufficient_quota` | The account's $COMPUTE balance is below the requested amount. | Triggered when withdrawing more than the balance, or when an inference request would exceed the balance after billing. |\n| `spending_limit_reached` | 429 | `rate_limit_error` | A per-key spending cap has been reached. | The key carries a daily, weekly, or monthly cap, and this request would exceed it. |\n| `all_keys_exhausted` | 502 | `server_error` | No upstream capacity is currently available for the routed model. | All contributor keys serving this model were unavailable, rate-limited, or in a cool-down; retry shortly. |\n| `rate_limited` | 429 | `rate_limit_error` | The caller exceeded a rate-limit window on this endpoint. | Either the per-endpoint request-rate cap or the provider-pool RPM/TPM cap was hit. |\n| `stream_interrupted` | 500 | `server_error` | The SSE stream aborted before completion. | The upstream provider connection dropped mid-stream. This error is delivered inside the SSE body, not as an HTTP status. |\n| `contract_error` | 500 | `server_error` | An on-chain call reverted or could not be confirmed. | The transaction failed to broadcast, timed out waiting for a receipt, or the receipt reported failure. |\n| `internal_error` | 500 | `server_error` | An unexpected server-side failure occurred. | A fallback for exceptions that no other error code describes; the failure is logged for investigation. |\n| `service_unavailable` | 503 | `server_error` | A required upstream dependency is temporarily unavailable. | A dependency needed for this request is unreachable; security-critical paths intentionally reject rather than degrade. |"}],"servers":[{"url":"https://api.compute.finance","description":"Production"}],"components":{"securitySchemes":{"ApiKeyBearer":{"scheme":"bearer","bearerFormat":"ct_live_*","type":"http","description":"Send `Authorization: Bearer ct_live_...`. Issue keys at https://compute.finance/dashboard/api-keys. Frozen keys → 403 API_KEY_FROZEN; revoked → 401 API_KEY_REVOKED; unknown → 401 INVALID_API_KEY."},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"Anthropic-SDK compatibility: `x-api-key: ct_live_...`. Accepted only on `POST /v1/messages` so the official `@anthropic-ai/sdk` works with only a base-URL swap. Prefer the Bearer scheme on every other endpoint."}},"schemas":{"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type","code"],"properties":{"message":{"type":"string","description":"Human-readable summary."},"type":{"type":"string","description":"OpenAI-compatible coarse category derived from the canonical code."},"code":{"$ref":"#/components/schemas/ErrorCode"},"param":{"type":"string","nullable":true,"description":"Field name when the error is bound to a specific input."},"details":{"type":"object","additionalProperties":true,"nullable":true,"description":"Code-specific structured payload."},"issues":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Zod issues for VALIDATION_FAILED responses."}}}}},"ErrorCode":{"type":"string","description":"Canonical taxonomy code. Full descriptions live under the `Errors` tag.","enum":["unauthorized","forbidden","invalid_signature","signature_reused","invalid_api_key","api_key_frozen","api_key_revoked","model_restricted","bad_request","validation_failed","method_not_allowed","not_found","already_exists","conflict","insufficient_balance","spending_limit_reached","all_keys_exhausted","rate_limited","stream_interrupted","contract_error","internal_error","service_unavailable"]}},"responses":{"Error_unauthorized":{"description":"401 unauthorized — Authentication is required to access this endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"Authentication is required to access this endpoint.","type":"invalid_request_error","code":"unauthorized"}}}}},"Error_forbidden":{"description":"403 forbidden — The caller is authenticated but is not allowed to perform this action.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The caller is authenticated but is not allowed to perform this action.","type":"forbidden","code":"forbidden"}}}}},"Error_invalid_signature":{"description":"401 invalid_signature — The provided signature could not be verified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The provided signature could not be verified.","type":"invalid_request_error","code":"invalid_signature"}}}}},"Error_signature_reused":{"description":"409 signature_reused — This signed request has already been submitted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"This signed request has already been submitted.","type":"invalid_request_error","code":"signature_reused"}}}}},"Error_invalid_api_key":{"description":"401 invalid_api_key — The Bearer API key is missing, malformed, or not recognized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The Bearer API key is missing, malformed, or not recognized.","type":"invalid_request_error","code":"invalid_api_key"}}}}},"Error_api_key_frozen":{"description":"403 api_key_frozen — The API key is currently frozen and cannot be used for requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The API key is currently frozen and cannot be used for requests.","type":"forbidden","code":"api_key_frozen"}}}}},"Error_api_key_revoked":{"description":"401 api_key_revoked — The API key has been revoked and can no longer be used.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The API key has been revoked and can no longer be used.","type":"invalid_request_error","code":"api_key_revoked"}}}}},"Error_model_restricted":{"description":"403 model_restricted — The requested model is not in this key's allowed-models list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The requested model is not in this key's allowed-models list.","type":"forbidden","code":"model_restricted"}}}}},"Error_bad_request":{"description":"400 bad_request — The request is invalid in a way that does not match a more specific error code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The request is invalid in a way that does not match a more specific error code.","type":"invalid_request_error","code":"bad_request"}}}}},"Error_validation_failed":{"description":"422 validation_failed — The request body failed validation. Per-field details are in `error.issues[]`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The request body failed validation. Per-field details are in `error.issues[]`.","type":"invalid_request_error","code":"validation_failed"}}}}},"Error_method_not_allowed":{"description":"405 method_not_allowed — The endpoint exists but does not accept this HTTP method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The endpoint exists but does not accept this HTTP method.","type":"invalid_request_error","code":"method_not_allowed"}}}}},"Error_not_found":{"description":"404 not_found — The requested resource does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The requested resource does not exist.","type":"not_found","code":"not_found"}}}}},"Error_already_exists":{"description":"409 already_exists — A resource with the same unique identity already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"A resource with the same unique identity already exists.","type":"conflict","code":"already_exists"}}}}},"Error_conflict":{"description":"409 conflict — The resource was modified concurrently; retry with the latest version.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The resource was modified concurrently; retry with the latest version.","type":"conflict","code":"conflict"}}}}},"Error_insufficient_balance":{"description":"402 insufficient_balance — The account's $COMPUTE balance is below the requested amount.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The account's $COMPUTE balance is below the requested amount.","type":"insufficient_quota","code":"insufficient_balance"}}}}},"Error_spending_limit_reached":{"description":"429 spending_limit_reached — A per-key spending cap has been reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"A per-key spending cap has been reached.","type":"rate_limit_error","code":"spending_limit_reached"}}}}},"Error_all_keys_exhausted":{"description":"502 all_keys_exhausted — No upstream capacity is currently available for the routed model.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"No upstream capacity is currently available for the routed model.","type":"server_error","code":"all_keys_exhausted"}}}}},"Error_rate_limited":{"description":"429 rate_limited — The caller exceeded a rate-limit window on this endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The caller exceeded a rate-limit window on this endpoint.","type":"rate_limit_error","code":"rate_limited"}}}}},"Error_stream_interrupted":{"description":"500 stream_interrupted — The SSE stream aborted before completion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"The SSE stream aborted before completion.","type":"server_error","code":"stream_interrupted"}}}}},"Error_contract_error":{"description":"500 contract_error — An on-chain call reverted or could not be confirmed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"An on-chain call reverted or could not be confirmed.","type":"server_error","code":"contract_error"}}}}},"Error_internal_error":{"description":"500 internal_error — An unexpected server-side failure occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"An unexpected server-side failure occurred.","type":"server_error","code":"internal_error"}}}}},"Error_service_unavailable":{"description":"503 service_unavailable — A required upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"error":{"message":"A required upstream dependency is temporarily unavailable.","type":"server_error","code":"service_unavailable"}}}}}}},"externalDocs":{"description":"Inference guide, quickstarts, SDK matrix","url":"https://docs.compute.finance/#inference-api"}}