{"openapi":"3.1.0","info":{"title":"Aven Cloud API","version":"1.0.0","description":"Aven Cloud is a white-label GPU cloud: rent GPU capacity by the second through a plain REST API — order, monitor and release instances, manage a prepaid wallet, and pull invoices and receipts.\n\n- **Base URL**: `https://api.aven.cloud`\n- **Authentication**: every endpoint except the public catalog and status pages requires a Bearer credential (`Authorization: Bearer <token>`) — an account API key, created from the dashboard or the account endpoints below.\n- **Errors**: `application/problem+json` (RFC 9457, formerly RFC 7807). The HTTP status is authoritative; `detail` is a human-readable message.\n- **Idempotency**: send an `Idempotency-Key` header on `POST /v1/instances` and `POST /v1/wallet/topups` so a retried request is never provisioned or charged twice. Replaying a key returns the first response for it — including its status, so a key whose order was refused replays that refusal rather than a fresh acceptance.\n- **Pagination**: `GET /v1/instances`, `/v1/wallet/transactions`, `/v1/wallet/activity` and `/v1/referrals/rewards` page the same way: `limit` (1-200, default 50) plus an opaque `cursor`. Each response carries `has_more` and `next_cursor`; pass that value back as `?cursor=` until `has_more` is false. Cursors are keyset-based, so a page never repeats nor skips a row while the list grows; a malformed cursor is a 422.\n- **Money**: amounts are exact decimal strings in USD, never floating-point numbers.\n","contact":{"name":"Aven Cloud Support","email":"support@aven.cloud"}},"servers":[{"url":"https://api.aven.cloud"}],"paths":{"/v1/catalog":{"get":{"tags":["Catalog"],"summary":"List the GPU catalog","description":"Real-time GPU catalog with Aven pricing. Served from a materialized snapshot (refreshed in the background), so it is fast and never reveals the underlying provider. Prices are per GPU per hour in USD.","operationId":"listCatalog","parameters":[{"name":"gpu_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to one canonical GPU (see the `gpu_type` values in this catalog). Filters are permissive by design: an unknown value matches nothing and returns an empty `entries` list with 200, never 422.","title":"Gpu Type"},"description":"Filter to one canonical GPU (see the `gpu_type` values in this catalog). Filters are permissive by design: an unknown value matches nothing and returns an empty `entries` list with 200, never 422."},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only GPUs available in this country (two-letter code, e.g. FR). An unknown code matches nothing (200, empty `entries`).","title":"Region"},"description":"Only GPUs available in this country (two-letter code, e.g. FR). An unknown code matches nothing (200, empty `entries`)."},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only GPUs available in this geographic zone: eu, eea, middle_east, africa, north_america, or asia_pacific (GET /v1/catalog/zones lists them with their countries). Additive to `region` — both may be combined. An unknown code matches nothing (200, empty `entries`).","title":"Zone"},"description":"Only GPUs available in this geographic zone: eu, eea, middle_east, africa, north_america, or asia_pacific (GET /v1/catalog/zones lists them with their countries). Additive to `region` — both may be combined. An unknown code matches nothing (200, empty `entries`)."},{"name":"interruptible","in":"query","required":false,"schema":{"type":"boolean","description":"Spot pricing; only GPUs with spot.","default":false,"title":"Interruptible"},"description":"Spot pricing; only GPUs with spot."},{"name":"max_usd_per_hour","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Max client $/GPU-hr.","title":"Max Usd Per Hour"},"description":"Max client $/GPU-hr."},{"name":"min_gpu_memory_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Min GPU VRAM (GB).","title":"Min Gpu Memory Gb"},"description":"Min GPU VRAM (GB)."},{"name":"min_gpu_count","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Min GPUs per instance.","title":"Min Gpu Count"},"description":"Min GPUs per instance."},{"name":"min_vcpus","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Min vCPUs.","title":"Min Vcpus"},"description":"Min vCPUs."},{"name":"min_ram_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Min system RAM (GB).","title":"Min Ram Gb"},"description":"Min system RAM (GB)."},{"name":"min_disk_gb","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Min disk (GB).","title":"Min Disk Gb"},"description":"Min disk (GB)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/catalog/zones":{"get":{"tags":["Catalog"],"summary":"List zones with currently available capacity","description":"Geographic zones (European Union, European Economic Area, Middle East, Africa, North America, Asia-Pacific) that currently have at least one country with priced capacity. A zone with no live offers in it is never listed (decision O11) — no promise of coverage that doesn't currently exist.","operationId":"listCatalogZones","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZonesResponse"}}}}}}},"/v1/catalog/history":{"get":{"tags":["Catalog"],"summary":"Daily GPU price history","description":"Daily price-history rollup per GPU type, for charting a GPU price-index trend over time. One point per day per GPU: the day's lowest observed price and highest observed offer/region count, built from the same materialized catalog snapshots as /v1/catalog. Prices are per GPU per hour in USD.","operationId":"getCatalogHistory","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Lookback window, in days.","default":90,"title":"Days"},"description":"Lookback window, in days."},{"name":"gpu_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to one exact canonical GPU.","title":"Gpu Type"},"description":"Filter to one exact canonical GPU."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GpuPriceHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/signup":{"post":{"tags":["Auth"],"summary":"Signup","operationId":"signup_v1_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/password/reset-request":{"post":{"tags":["Auth"],"summary":"Password Reset Request","description":"Email a password-reset link if the account exists. Always returns 202 — never reveals\nwhether the email is registered (no account enumeration).","operationId":"password_reset_request_v1_auth_password_reset_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Response Password Reset Request V1 Auth Password Reset Request Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/password/reset-confirm":{"post":{"tags":["Auth"],"summary":"Password Reset Confirm","description":"Set a new password from a valid reset token and sign the user in.","operationId":"password_reset_confirm_v1_auth_password_reset_confirm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetConfirm"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/login":{"post":{"tags":["Auth"],"summary":"Login","operationId":"login_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/mfa/verify":{"post":{"tags":["Auth"],"summary":"Mfa Verify","description":"Trade a pre-authentication token (from ``POST /v1/auth/login`` when MFA is\nenabled) + a TOTP or backup code for a real session.","operationId":"mfa_verify_v1_auth_mfa_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/resend-verification":{"post":{"tags":["Auth"],"summary":"Resend Verification","description":"Re-queue the email-verification link for the signed-in account.\n\nSelf-service replacement for \"contact support\": ordering is gated on a verified email,\nand the first email can land in spam or expire. No-op once the address is verified;\nthrottled per client (3 per 10 minutes).","operationId":"resend_verification_v1_auth_resend_verification_post","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Response Resend Verification V1 Auth Resend Verification Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/auth/logout":{"post":{"tags":["Auth"],"summary":"Sign out","description":"Sign out: revokes the presented session token server-side (E-E1-F02, 2026-09-12 —\npreviously a no-op here, since sessions are signed, stateless tokens with no\nserver-side store by design). ``ctx.session_jti``/``session_exp`` come straight from\nthe token ``require_account`` already verified — see ``auth/session.py``'s ``jti``\nclaim and ``models.RevokedSession``. ``None`` only for an API-key caller (never a\nsession token), which has nothing to revoke here; also a no-op, harmlessly, for a\npre-existing token that predates the ``jti`` claim.\n\nAlso still the best-effort journal entry it always was, for the account's Activity/\nSecurity tab.","operationId":"logout_v1_auth_logout_post","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]}},"/v1/wallet":{"get":{"tags":["Wallet"],"summary":"Get wallet balance","operationId":"get_wallet_balance_v1_wallet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/wallet/transactions":{"get":{"tags":["Wallet"],"summary":"List wallet transactions","operationId":"get_wallet_transactions_v1_wallet_transactions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Rows per page: 1-200 (default 50).","default":50,"title":"Limit"},"description":"Rows per page: 1-200 (default 50)."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422.","title":"Cursor"},"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/activity":{"get":{"tags":["Wallet"],"summary":"Wallet activity (credits individually, usage aggregated per instance)","operationId":"get_wallet_activity_v1_wallet_activity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Rows per page: 1-200 (default 50).","default":50,"title":"Limit"},"description":"Rows per page: 1-200 (default 50)."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422.","title":"Cursor"},"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/topups":{"post":{"tags":["Wallet"],"summary":"Add funds to the wallet","operationId":"create_topup_v1_wallet_topups_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopupRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/card":{"post":{"tags":["Wallet"],"summary":"Save a card for auto-reload","description":"Start the hosted card-save flow; redirect the user to the returned URL. The card is\nattached to the account when the setup session completes (webhook).","operationId":"save_card_v1_wallet_card_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardSetupResponse"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["Wallet"],"summary":"Remove saved card","operationId":"delete_card_v1_wallet_card_delete","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]}},"/v1/wallet/payments/{payment_id}/receipt.pdf":{"get":{"tags":["Wallet"],"summary":"Download a top-up receipt (PDF)","operationId":"payment_receipt_v1_wallet_payments__payment_id__receipt_pdf_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/auto-topup":{"put":{"tags":["Wallet"],"summary":"Configure wallet auto-reload","operationId":"set_auto_topup_v1_wallet_auto_topup_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoTopupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/wallet/usage":{"get":{"tags":["Wallet"],"summary":"Usage report: spend by day, instance or GPU type","description":"Aggregated metered spend for a period (default: the current UTC month). Never the raw\nper-tick ledger: one row per day, per instance or per GPU type.","operationId":"wallet_usage_v1_wallet_usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"group","in":"query","required":false,"schema":{"enum":["day","instance","gpu"],"type":"string","default":"day","title":"Group"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Wallet Usage V1 Wallet Usage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet/usage.csv":{"get":{"tags":["Wallet"],"summary":"Usage report as CSV","operationId":"wallet_usage_csv_v1_wallet_usage_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"group","in":"query","required":false,"schema":{"enum":["day","instance","gpu"],"type":"string","default":"day","title":"Group"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances":{"post":{"tags":["Instances"],"summary":"Order a GPU instance","operationId":"order_v1_instances_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderInstanceRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Instances"],"summary":"List instances","description":"Newest-first, keyset-paginated on ``(requested_at, id)``.\n\nE-E8-F07 (P2, e2e campaign 2026-09-12): this endpoint only had ``limit``, so an account\nwith more instances than the page size had no way to read the rest of its own history.\nSame cursor mechanism and encoding as ``GET /v1/wallet/transactions``\n(``gpu_broker/pagination.py``); ``data`` is unchanged, so existing clients that ignore\n``next_cursor``/``has_more`` keep working exactly as before.","operationId":"list_instances_v1_instances_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Rows per page: 1-200 (default 50).","default":50,"title":"Limit"},"description":"Rows per page: 1-200 (default 50)."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422.","title":"Cursor"},"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}":{"get":{"tags":["Instances"],"summary":"Get an instance","operationId":"get_instance_v1_instances__instance_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Instances"],"summary":"Release an instance","operationId":"release_v1_instances__instance_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}/stop":{"post":{"tags":["Instances"],"summary":"Stop an instance (pause compute, keep disk)","operationId":"stop_v1_instances__instance_id__stop_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}/start":{"post":{"tags":["Instances"],"summary":"Resume a stopped instance","operationId":"start_v1_instances__instance_id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/invoices":{"get":{"tags":["Billing"],"summary":"List invoices","operationId":"list_invoices_v1_invoices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/receipts":{"get":{"tags":["Billing"],"summary":"List top-up receipts","operationId":"list_receipts_v1_receipts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiptListResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/invoices/{invoice_id}/pdf":{"get":{"tags":["Billing"],"summary":"Download an invoice (PDF)","operationId":"invoice_pdf_v1_invoices__invoice_id__pdf_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/invoices/{invoice_id}":{"get":{"tags":["Billing"],"summary":"Get an invoice","operationId":"get_invoice_v1_invoices__invoice_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account":{"get":{"tags":["Account"],"summary":"Get my account profile","operationId":"get_account_v1_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}}},"security":[{"HTTPBearer":[]}]},"patch":{"tags":["Account"],"summary":"Update my profile","operationId":"patch_account_v1_account_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountPatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/keys":{"get":{"tags":["Account"],"summary":"List my API keys","operationId":"list_keys_v1_account_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Account"],"summary":"Create key","operationId":"create_key_v1_account_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreated"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/keys/{key_id}":{"delete":{"tags":["Account"],"summary":"Revoke a key","operationId":"revoke_key_v1_account_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/ssh-keys":{"get":{"tags":["Account"],"summary":"List my SSH keys","operationId":"list_ssh_keys_v1_account_ssh_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"items":{"$ref":"#/components/schemas/SshKeyOut"},"type":"array"},"type":"object","title":"Response List Ssh Keys V1 Account Ssh Keys Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Account"],"summary":"Add SSH key","operationId":"add_ssh_key_v1_account_ssh_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshKeyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshKeyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/ssh-keys/{key_id}":{"delete":{"tags":["Account"],"summary":"Delete an SSH key","operationId":"delete_ssh_key_v1_account_ssh_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/account/mfa":{"get":{"tags":["Account"],"summary":"My MFA status","operationId":"mfa_status_v1_account_mfa_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/mfa/setup":{"post":{"tags":["Account"],"summary":"Start MFA enrollment (generates a new TOTP secret)","operationId":"mfa_setup_v1_account_mfa_setup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaSetupResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/mfa/enable":{"post":{"tags":["Account"],"summary":"Confirm MFA enrollment with a code from the authenticator app","operationId":"mfa_enable_v1_account_mfa_enable_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaEnableResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/mfa/disable":{"post":{"tags":["Account"],"summary":"Disable MFA","operationId":"mfa_disable_v1_account_mfa_disable_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Response Mfa Disable V1 Account Mfa Disable Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/account/close":{"get":{"tags":["Account"],"summary":"My account-closure request status","operationId":"get_close_status_v1_account_close_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosureStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Account"],"summary":"Close my account (password + MFA code if enabled; no refund; J+30 anonymization)","operationId":"close_account_v1_account_close_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseAccountRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosureStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/tickets":{"get":{"tags":["Support"],"summary":"List my support tickets","operationId":"list_tickets_v1_tickets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketListResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Support"],"summary":"Open a support ticket","operationId":"open_ticket_v1_tickets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/tickets/{ticket_id}":{"get":{"tags":["Support"],"summary":"Get one of my tickets","operationId":"get_ticket_v1_tickets__ticket_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tickets/{ticket_id}/reply":{"post":{"tags":["Support"],"summary":"Reply to one of my tickets","operationId":"reply_ticket_v1_tickets__ticket_id__reply_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReply"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/status":{"get":{"tags":["Health"],"summary":"Service status: live state, 90-day history, incidents","operationId":"public_status_v1_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Status V1 Status Get"}}}}}}},"/v1/referrals":{"get":{"tags":["Referrals"],"summary":"Referral code, link and program stats","description":"Returns the account's referral code (generated on first call) and its link, plus\nlive stats and the current program terms (rate, hold, caps).","operationId":"get_referrals_v1_referrals_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferralOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/referrals/rewards":{"get":{"tags":["Referrals"],"summary":"Rewards earned as a referrer","operationId":"get_referral_rewards_v1_referrals_rewards_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Rows per page: 1-200 (default 50).","default":50,"title":"Limit"},"description":"Rows per page: 1-200 (default 50)."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422.","title":"Cursor"},"description":"Opaque cursor for the next page: the `next_cursor` of the previous response, passed back verbatim. Omit it for the first page. Malformed values are rejected with 422."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferralRewardsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instances/{instance_id}/events":{"get":{"tags":["Instances"],"summary":"Reliability history for one of your instances","description":"Provisioning delays, SSH-unreachable episodes, unplanned host interruptions, and\nreleases recorded for this instance — never an internal detail or the underlying\noffer's identity (see ``InstanceReliabilityEventOut``).","operationId":"instance_reliability_events_v1_instances__instance_id__events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Instance Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstanceReliabilityEventsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/subprocessors":{"get":{"tags":["Compliance"],"summary":"Subprocessor registry, by category","description":"Categories of third parties involved in delivering the service, with country of processing. Individual vendor names are not disclosed, except the card-payment processor (already named on the security and privacy pages) — see docs/SUBPROCESSORS.md for the policy.","operationId":"listSubprocessors","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Listsubprocessors"}}}}}}}},"components":{"schemas":{"AccountOut":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"is_company":{"type":"boolean","title":"Is Company","default":false},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"company_vat":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Vat"},"company_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Address"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"},"email_verified":{"type":"boolean","title":"Email Verified"},"kyc_status":{"type":"string","title":"Kyc Status"},"kyc_level":{"type":"string","title":"Kyc Level"},"is_admin":{"type":"boolean","title":"Is Admin","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"marketing_emails":{"type":"boolean","title":"Marketing Emails","default":true},"default_region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Region"},"workspace_enabled":{"type":"boolean","title":"Workspace Enabled","default":true}},"type":"object","required":["id","email","email_verified","kyc_status","kyc_level","created_at"],"title":"AccountOut"},"AccountPatch":{"properties":{"display_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Display Name"},"country":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Country"},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Phone"},"is_company":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Company"},"company_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Company Name"},"company_vat":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Company Vat"},"company_address":{"anyOf":[{"type":"string","maxLength":400},{"type":"null"}],"title":"Company Address"},"locale":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Locale"},"marketing_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Marketing Emails"},"default_region":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Default Region"},"workspace_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Workspace Enabled"}},"type":"object","title":"AccountPatch"},"AcquisitionIn":{"properties":{"source":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Source"},"medium":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Medium"},"campaign":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Campaign"},"referrer":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Referrer"},"landing_path":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Landing Path"}},"type":"object","title":"AcquisitionIn","description":"Optional first-touch acquisition channel (W13, 2026-09-10): read from the\nvisitor's first-party cookie by the frontend (web/lib/acquisition.ts,\nweb/components/AcquisitionCapture.tsx) and sent here in the request body — never\nappended to a URL. The caps below are deliberately generous (well beyond the\n``account.acquisition_*`` column widths in migration 0059): a value never causes\nsignup itself to fail — gpu_broker/acquisition.py silently cleans and truncates to\nthe real column width, so this model only guards against an abusive payload size."},"ActivityOut":{"properties":{"kind":{"type":"string","title":"Kind","description":"topup | refund | adjustment | usage","examples":["usage"]},"description":{"type":"string","title":"Description","description":"Human-readable label for `kind` — never the raw internal reason (E-E6-F03). Safe to show the customer verbatim.","examples":["Instance usage"]},"amount":{"type":"string","title":"Amount","description":"Signed amount (USD); usage is negative.","examples":["-1.90"]},"when":{"type":"string","format":"date-time","title":"When"},"count":{"type":"integer","title":"Count","description":"Underlying ledger entries (usage = many ticks).","default":1},"balance_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Balance After"},"ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Id","description":"Instance id for usage rows."},"gpu_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gpu Type"},"gpu_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gpu Count"}},"type":"object","required":["kind","description","amount","when"],"title":"ActivityOut"},"ActivityResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ActivityOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page — pass it back as `?cursor=`. Null when this is the last page (`has_more` is then false).","examples":[null]},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["data"],"title":"ActivityResponse"},"ApiKeyCreate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"ApiKeyCreate"},"ApiKeyCreated":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"key":{"type":"string","title":"Key"}},"type":"object","required":["id","name","key_prefix","scopes","active","created_at","key"],"title":"ApiKeyCreated"},"ApiKeyListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ApiKeyOut"},"type":"array","title":"Data"},"available_scopes":{"items":{"type":"string"},"type":"array","title":"Available Scopes"}},"type":"object","required":["data","available_scopes"],"title":"ApiKeyListResponse"},"ApiKeyOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","name","key_prefix","scopes","active","created_at"],"title":"ApiKeyOut"},"AutoTopupRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Turn wallet auto-reload on or off."},"threshold":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Threshold","description":"Reload when available balance drops below this (USD)."},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount","description":"Amount to charge on each reload (USD)."}},"type":"object","required":["enabled"],"title":"AutoTopupRequest"},"CardSetupResponse":{"properties":{"url":{"type":"string","title":"Url","description":"Hosted page to save a card; redirect the user here."}},"type":"object","required":["url"],"title":"CardSetupResponse"},"CatalogEntryOut":{"properties":{"gpu_type":{"type":"string","title":"Gpu Type","description":"Aven canonical GPU key.","examples":["H100_SXM5"]},"on_demand_price_published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"On Demand Price Published At","description":"When the entry-level on-demand price was last published; prices follow supply and demand and the ordered rate is locked for the tier's price-lock period. Null when the price is served live."},"on_demand_usd_per_gpu_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"On Demand Usd Per Gpu Hour","description":"Cheapest available on-demand client price per GPU per hour (USD).","examples":["3.77000000"]},"spot_usd_per_gpu_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spot Usd Per Gpu Hour","description":"Cheapest available interruptible client price per GPU per hour (USD).","examples":["1.95000000"]},"availability":{"type":"string","title":"Availability","description":"AVAILABLE, LOW, or UNAVAILABLE.","examples":["AVAILABLE"]},"regions":{"items":{"type":"string"},"type":"array","title":"Regions","description":"Country codes where this GPU is currently available.","examples":[["DE","US"]]},"offer_count":{"type":"integer","title":"Offer Count","description":"Number of currently available underlying offers.","examples":[3]},"max_gpu_count":{"type":"integer","title":"Max Gpu Count","description":"Largest multi-GPU configuration available for this type.","default":1,"examples":[8]},"specs":{"additionalProperties":true,"type":"object","title":"Specs","description":"GPU/host specs: gpu_memory_gb, vcpus, ram_gb, perf_score, …","examples":[{"gpu_memory_gb":80,"ram_gb":240,"vcpus":24}]},"export_controlled":{"type":"boolean","title":"Export Controlled","description":"Whether ordering requires an export-control attestation (advanced GPUs).","default":false},"configs":{"items":{"$ref":"#/components/schemas/GpuConfigOut"},"type":"array","title":"Configs","description":"Bookable per-GPU-count configurations (one row each in the launch table)."},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","description":"Pricing tier of the entry-level price: SPOT, STANDARD, PRO or RESERVED.","examples":["STANDARD"]},"verified_host":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified Host","description":"True when the entry-level offer comes from a dedicated data-center host with a verified site."},"location":{"anyOf":[{"$ref":"#/components/schemas/LocationOut"},{"type":"null"}],"description":"Category-only site metadata for the offer this price came from."}},"type":"object","required":["gpu_type","availability","offer_count"],"title":"CatalogEntryOut"},"CatalogResponse":{"properties":{"catalog_generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Catalog Generated At","description":"When this catalog snapshot was built; null if never refreshed."},"catalog_suspended":{"type":"boolean","title":"Catalog Suspended","description":"True when the catalog has not been refreshed against the market recently enough to quote prices: entries carry no price and on-demand orders are refused until the next refresh.","default":false},"entries":{"items":{"$ref":"#/components/schemas/CatalogEntryOut"},"type":"array","title":"Entries"}},"type":"object","required":["entries"],"title":"CatalogResponse"},"CertificationOut":{"properties":{"name":{"type":"string","title":"Name","examples":["ISO 27001"]},"declared_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declared At","description":"Date this certification was declared by the provider (YYYY-MM-DD).","examples":["2026-03-01"]}},"type":"object","required":["name"],"title":"CertificationOut"},"CloseAccountRequest":{"properties":{"password":{"type":"string","title":"Password","default":""},"mfa_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mfa Code"}},"type":"object","title":"CloseAccountRequest"},"ClosureStatusResponse":{"properties":{"status":{"type":"string","title":"Status"},"requested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Requested At"},"scheduled_purge_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled Purge At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["status"],"title":"ClosureStatusResponse"},"GpuConfigOut":{"properties":{"gpu_count":{"type":"integer","title":"Gpu Count","description":"GPUs in this configuration.","examples":[8]},"on_demand_usd_per_gpu_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"On Demand Usd Per Gpu Hour"},"on_demand_price_published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"On Demand Price Published At","description":"When this on-demand price was last published. Prices follow supply and demand and may change between calls; the hourly rate you order at is locked for the price-lock period of the tier. Null when the price is served live."},"spot_usd_per_gpu_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spot Usd Per Gpu Hour"},"price_min_usd_per_gpu_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Min Usd Per Gpu Hour"},"price_max_usd_per_gpu_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Max Usd Per Gpu Hour"},"availability":{"type":"string","title":"Availability","examples":["AVAILABLE"]},"reliability":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reliability","description":"Host reliability, 0 to 1."},"regions":{"items":{"type":"string"},"type":"array","title":"Regions"},"specs":{"additionalProperties":true,"type":"object","title":"Specs"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","description":"Pricing tier this price belongs to: SPOT, STANDARD, PRO or RESERVED.","examples":["STANDARD"]},"verified_host":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified Host","description":"True when the offer comes from a dedicated data-center host with a verified site."},"location":{"anyOf":[{"$ref":"#/components/schemas/LocationOut"},{"type":"null"}],"description":"Category-only site metadata for the offer this price came from."}},"type":"object","required":["gpu_count","availability"],"title":"GpuConfigOut"},"GpuPriceHistoryPointOut":{"properties":{"day":{"type":"string","format":"date","title":"Day","description":"Calendar day (UTC) this row summarizes.","examples":["2026-09-09"]},"on_demand_min":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"On Demand Min","description":"Day's lowest entry-level (cheapest, possibly multi-GPU) on-demand price.","examples":["3.20000000"]},"on_demand_single":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"On Demand Single","description":"Day's lowest on-demand price for a single-GPU (x1) configuration, when one was offered.","examples":["3.45000000"]},"spot_min":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spot Min","description":"Day's lowest entry-level (cheapest, possibly multi-GPU) interruptible price.","examples":["1.95000000"]},"spot_single":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Spot Single","description":"Day's lowest interruptible price for a single-GPU (x1) configuration, when one was offered.","examples":[null]},"offer_count":{"type":"integer","title":"Offer Count","description":"Day's peak number of underlying offers.","examples":[12]},"regions":{"type":"integer","title":"Regions","description":"Day's peak number of distinct regions available.","examples":[5]}},"type":"object","required":["day","offer_count","regions"],"title":"GpuPriceHistoryPointOut"},"GpuPriceHistoryResponse":{"properties":{"days":{"type":"integer","title":"Days","description":"Requested lookback window, in days.","examples":[90]},"generated_at":{"type":"string","format":"date-time","title":"Generated At","description":"When this response was generated (UTC)."},"series":{"items":{"$ref":"#/components/schemas/GpuPriceHistorySeriesOut"},"type":"array","title":"Series","description":"GPU-type-ascending series."}},"type":"object","required":["days","generated_at","series"],"title":"GpuPriceHistoryResponse"},"GpuPriceHistorySeriesOut":{"properties":{"gpu_type":{"type":"string","title":"Gpu Type","description":"Aven canonical GPU key.","examples":["H100_SXM5"]},"points":{"items":{"$ref":"#/components/schemas/GpuPriceHistoryPointOut"},"type":"array","title":"Points","description":"Day-ascending price history."}},"type":"object","required":["gpu_type","points"],"title":"GpuPriceHistorySeriesOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InstanceListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/InstanceOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page — pass it back as `?cursor=`. Null when this is the last page (`has_more` is then false).","examples":[null]},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["data"],"title":"InstanceListResponse"},"InstanceOut":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","title":"Status","examples":["ACTIVE"]},"gpu_type":{"type":"string","title":"Gpu Type","examples":["H100_SXM5"]},"gpu_count":{"type":"integer","title":"Gpu Count"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"region_requested":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region Requested"},"interruptible":{"type":"boolean","title":"Interruptible","default":false},"specs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Specs"},"client_usd_per_hour":{"type":"string","title":"Client Usd Per Hour","description":"Locked client price for this instance (USD/hour).","examples":["3.77000000"]},"disk_usd_per_hour":{"type":"string","title":"Disk Usd Per Hour","default":"0.00000000","examples":["0.00274000"]},"supports_stop":{"type":"boolean","title":"Supports Stop","default":false},"accrued_client_cost":{"type":"string","title":"Accrued Client Cost","examples":["0.00000000"]},"ssh_ready":{"type":"boolean","title":"Ssh Ready","description":"True once the SSH banner has been verified reachable from Aven's side. While an ACTIVE instance is not yet ssh_ready, connection details (ssh_host/ssh_port/public_ip) are withheld (null) rather than shown unreachable.","default":true},"ssh_host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ssh Host"},"ssh_port":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ssh Port"},"public_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Ip"},"live":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Live"},"workspace_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Path"},"requested_at":{"type":"string","format":"date-time","title":"Requested At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"}},"type":"object","required":["id","status","gpu_type","gpu_count","client_usd_per_hour","accrued_client_cost","requested_at"],"title":"InstanceOut"},"InstanceReliabilityEventOut":{"properties":{"event_type":{"type":"string","title":"Event Type","examples":["ssh_unreachable"]},"severity":{"type":"string","title":"Severity","examples":["DEGRADED"]},"source":{"type":"string","title":"Source","description":"How this was detected: probe, reconciliation, provisioning, api.","examples":["probe"]},"detected_at":{"type":"string","format":"date-time","title":"Detected At"},"resolved_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolved At"},"downtime_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Downtime Seconds"},"auto_recovered":{"type":"boolean","title":"Auto Recovered","default":false}},"type":"object","required":["event_type","severity","source","detected_at"],"title":"InstanceReliabilityEventOut"},"InstanceReliabilityEventsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/InstanceReliabilityEventOut"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"InstanceReliabilityEventsResponse"},"InvoiceLineOut":{"properties":{"description":{"type":"string","title":"Description","examples":["GPU H100_SXM5 x1"]},"gpu_type":{"type":"string","title":"Gpu Type","examples":["H100_SXM5"]},"quantity":{"type":"string","title":"Quantity","description":"Hours.","examples":["1.00000000"]},"unit_price":{"type":"string","title":"Unit Price","examples":["3.77000000"]},"line_amount":{"type":"string","title":"Line Amount","examples":["3.77000000"]},"tax_category_code":{"type":"string","title":"Tax Category Code","examples":["Z"]},"tax_rate":{"type":"string","title":"Tax Rate","examples":["0.0000"]}},"type":"object","required":["description","gpu_type","quantity","unit_price","line_amount","tax_category_code","tax_rate"],"title":"InvoiceLineOut"},"InvoiceListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/InvoiceOut"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"InvoiceListResponse"},"InvoiceOut":{"properties":{"id":{"type":"string","title":"Id"},"number":{"type":"string","title":"Number","examples":["AVEN-10347"]},"doc_type":{"type":"string","title":"Doc Type","examples":["380"]},"status":{"type":"string","title":"Status","examples":["ISSUED"]},"currency":{"type":"string","title":"Currency","examples":["USD"]},"buyer_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer Country"},"tax_treatment":{"type":"string","title":"Tax Treatment","examples":["EXPORT_ZERO"]},"tax_category_code":{"type":"string","title":"Tax Category Code","examples":["Z"]},"tax_rate":{"type":"string","title":"Tax Rate","examples":["0.0000"]},"subtotal":{"type":"string","title":"Subtotal","examples":["3.77000000"]},"vat_amount":{"type":"string","title":"Vat Amount","examples":["0.00000000"]},"vat_amount_aed":{"type":"string","title":"Vat Amount Aed","description":"VAT total in AED (FTA reporting currency).","examples":["0.00000000"]},"fx_rate_to_aed":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fx Rate To Aed","description":"Applied USD→AED rate.","examples":["3.672500"]},"total":{"type":"string","title":"Total","examples":["3.77000000"]},"asp_status":{"type":"string","title":"Asp Status","description":"Peppol ASP submission state.","examples":["PENDING"]},"issued_at":{"type":"string","format":"date-time","title":"Issued At"},"lines":{"items":{"$ref":"#/components/schemas/InvoiceLineOut"},"type":"array","title":"Lines"},"pint_document":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Pint Document","description":"PINT AE (UBL)-shaped document; present on detail."}},"type":"object","required":["id","number","doc_type","status","currency","tax_treatment","tax_category_code","tax_rate","subtotal","vat_amount","vat_amount_aed","total","asp_status","issued_at","lines"],"title":"InvoiceOut"},"LocationOut":{"properties":{"country":{"type":"string","title":"Country","description":"ISO-3166 alpha-2 country of the priced offer.","examples":["FR"]},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City, when known.","examples":["Paris"]},"dc_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dc Tier","description":"Data-center tier (1-4), when declared.","examples":[3]},"certifications":{"items":{"$ref":"#/components/schemas/CertificationOut"},"type":"array","title":"Certifications","description":"Certifications declared for this site, when known."},"host_type":{"type":"string","title":"Host Type","description":"DEDICATED_DC_VERIFIED, MARKETPLACE_INDEPENDENT, or UNKNOWN.","examples":["UNKNOWN"]},"verified_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verified At","description":"When this site's metadata was last confirmed (YYYY-MM-DD).","examples":["2026-09-10"]}},"type":"object","required":["country","host_type"],"title":"LocationOut","description":"Where the priced offer actually is — a declaration, dated, never an independent\nAven verification (see Chantier 3 hors-périmètre). Category-only: no operator or\nreseller name ever appears here, by construction (gpu_broker/pricing/sites.py)."},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"LoginResponse":{"properties":{"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"},"token_type":{"type":"string","title":"Token Type","default":"session"},"mfa_required":{"type":"boolean","title":"Mfa Required","default":false},"preauth_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preauth Token"}},"type":"object","title":"LoginResponse","description":"Either a real session (``mfa_required=False``, ``token`` set) or, when the account\nhas MFA enabled (O08), a short-lived pre-authentication token to trade for a session\nat ``POST /v1/auth/mfa/verify`` — password/Google auth already succeeded at this\npoint, only the second factor is outstanding."},"MfaCodeRequest":{"properties":{"code":{"type":"string","maxLength":12,"minLength":6,"title":"Code"}},"type":"object","required":["code"],"title":"MfaCodeRequest"},"MfaEnableResponse":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"backup_codes":{"items":{"type":"string"},"type":"array","title":"Backup Codes"}},"type":"object","required":["enabled","backup_codes"],"title":"MfaEnableResponse"},"MfaSetupResponse":{"properties":{"secret":{"type":"string","title":"Secret"},"otpauth_uri":{"type":"string","title":"Otpauth Uri"},"qr_svg_data_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Svg Data Uri"}},"type":"object","required":["secret","otpauth_uri"],"title":"MfaSetupResponse"},"MfaStatusResponse":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"enrolled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enrolled At"}},"type":"object","required":["enabled"],"title":"MfaStatusResponse"},"MfaVerifyRequest":{"properties":{"preauth_token":{"type":"string","title":"Preauth Token"},"code":{"type":"string","maxLength":12,"minLength":6,"title":"Code"}},"type":"object","required":["preauth_token","code"],"title":"MfaVerifyRequest"},"OrderInstanceRequest":{"properties":{"gpu_type":{"type":"string","maxLength":32,"title":"Gpu Type","examples":["H100_SXM5"]},"gpu_count":{"type":"integer","maximum":64.0,"minimum":1.0,"title":"Gpu Count","default":1},"region":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Region","description":"A 2-letter country code, or a zone code (eu, eea, middle_east, africa, north_america, asia_pacific). Only enforced when region pinning is active on this account/instance; otherwise recorded but not yet binding.","examples":["US"]},"interruptible":{"type":"boolean","title":"Interruptible","description":"Use the cheaper spot rate.","default":false},"disk_gb":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":10.0},{"type":"null"}],"title":"Disk Gb","description":"Requested disk size in GB. Storage above the free bundled base is billed as an add-on while the instance runs. Omit for the default."},"export_attestation":{"type":"boolean","title":"Export Attestation","description":"For export-controlled GPUs (H100/H200), attest the deployment complies with applicable export controls (not a prohibited end-use/end-user/destination).","default":false}},"type":"object","required":["gpu_type"],"title":"OrderInstanceRequest"},"PasswordResetConfirm":{"properties":{"token":{"type":"string","title":"Token"},"password":{"type":"string","minLength":8,"title":"Password"}},"type":"object","required":["token","password"],"title":"PasswordResetConfirm"},"PasswordResetRequest":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"PasswordResetRequest"},"ReceiptListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ReceiptOut"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ReceiptListResponse"},"ReceiptOut":{"properties":{"id":{"type":"string","title":"Id"},"number":{"type":"string","title":"Number","description":"Receipt number printed on the PDF.","examples":["AVEN-R-24816"]},"amount":{"type":"string","title":"Amount","examples":["50.00000000"]},"currency":{"type":"string","title":"Currency","examples":["USD"]},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","number","amount","currency","created_at"],"title":"ReceiptOut"},"ReferralOut":{"properties":{"code":{"type":"string","title":"Code","description":"This account's referral code.","examples":["AVN-7K9M2P"]},"link":{"type":"string","title":"Link","examples":["https://aven.cloud/?ref=AVN-7K9M2P"]},"stats":{"$ref":"#/components/schemas/ReferralStatsOut"},"program":{"$ref":"#/components/schemas/ReferralProgramOut"}},"type":"object","required":["code","link","stats","program"],"title":"ReferralOut"},"ReferralProgramOut":{"properties":{"rate_percent":{"type":"string","title":"Rate Percent","description":"Reward rate.","examples":["10"]},"hold_days":{"type":"integer","title":"Hold Days","description":"Days before a reward can be credited.","examples":[14]},"window_days":{"type":"integer","title":"Window Days","description":"A referred account's qualifying window, from signup.","examples":[180]},"cap_per_referred_usd":{"type":"string","title":"Cap Per Referred Usd","description":"Lifetime reward cap per referred account.","examples":["100.00000000"]},"cap_per_month_usd":{"type":"string","title":"Cap Per Month Usd","description":"Reward cap per referrer per calendar month.","examples":["1000.00000000"]}},"type":"object","required":["rate_percent","hold_days","window_days","cap_per_referred_usd","cap_per_month_usd"],"title":"ReferralProgramOut"},"ReferralRewardOut":{"properties":{"id":{"type":"string","title":"Id"},"referred_email":{"type":"string","title":"Referred Email","description":"The referred account's email, masked.","examples":["j***@example.com"]},"amount":{"type":"string","title":"Amount","examples":["5.00000000"]},"status":{"type":"string","title":"Status","examples":["pending"]},"hold_until":{"type":"string","format":"date-time","title":"Hold Until"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","referred_email","amount","status","hold_until","created_at"],"title":"ReferralRewardOut"},"ReferralRewardsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ReferralRewardOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page — pass it back as `?cursor=`. Null when this is the last page (`has_more` is then false)."},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["data","has_more"],"title":"ReferralRewardsResponse"},"ReferralStatsOut":{"properties":{"signups":{"type":"integer","title":"Signups","description":"Accounts that signed up with this code.","examples":[3]},"qualified":{"type":"integer","title":"Qualified","description":"Referred accounts with at least one qualifying top-up.","examples":[2]},"pending_usd":{"type":"string","title":"Pending Usd","description":"Reward value still in its hold.","examples":["0.00000000"]},"credited_usd":{"type":"string","title":"Credited Usd","description":"Reward value paid out as wallet credit.","examples":["5.00000000"]},"voided_usd":{"type":"string","title":"Voided Usd","description":"Reward value voided (reversed or clawed back).","examples":["0.00000000"]}},"type":"object","required":["signups","qualified","pending_usd","credited_usd","voided_usd"],"title":"ReferralStatsOut"},"SessionResponse":{"properties":{"token":{"type":"string","title":"Token"},"token_type":{"type":"string","title":"Token Type","default":"session"}},"type":"object","required":["token"],"title":"SessionResponse"},"SignupRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","minLength":8,"title":"Password"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"referral_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Code"},"acquisition":{"anyOf":[{"$ref":"#/components/schemas/AcquisitionIn"},{"type":"null"}]}},"type":"object","required":["email","password"],"title":"SignupRequest"},"SshKeyCreate":{"properties":{"public_key":{"type":"string","title":"Public Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["public_key"],"title":"SshKeyCreate"},"SshKeyOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"fingerprint":{"type":"string","title":"Fingerprint"},"public_key":{"type":"string","title":"Public Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","fingerprint","public_key","created_at"],"title":"SshKeyOut"},"TicketCreate":{"properties":{"subject":{"type":"string","maxLength":200,"minLength":1,"title":"Subject"},"body":{"type":"string","maxLength":8000,"minLength":1,"title":"Body"}},"type":"object","required":["subject","body"],"title":"TicketCreate"},"TicketDetail":{"properties":{"id":{"type":"string","title":"Id"},"ref":{"type":"string","title":"Ref"},"subject":{"type":"string","title":"Subject"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_message_at":{"type":"string","format":"date-time","title":"Last Message At"},"sla_due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sla Due At"},"messages":{"items":{"$ref":"#/components/schemas/TicketMessageOut"},"type":"array","title":"Messages"}},"type":"object","required":["id","ref","subject","status","created_at","last_message_at","messages"],"title":"TicketDetail"},"TicketListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TicketSummary"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"TicketListResponse"},"TicketMessageOut":{"properties":{"sender":{"type":"string","title":"Sender"},"body":{"type":"string","title":"Body"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["sender","body","created_at"],"title":"TicketMessageOut"},"TicketReply":{"properties":{"body":{"type":"string","maxLength":8000,"minLength":1,"title":"Body"}},"type":"object","required":["body"],"title":"TicketReply"},"TicketSummary":{"properties":{"id":{"type":"string","title":"Id"},"ref":{"type":"string","title":"Ref"},"subject":{"type":"string","title":"Subject"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_message_at":{"type":"string","format":"date-time","title":"Last Message At"},"sla_due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sla Due At"}},"type":"object","required":["id","ref","subject","status","created_at","last_message_at"],"title":"TicketSummary"},"TopupRequest":{"properties":{"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Amount","description":"Amount to add (USD).","examples":["50.00"]},"method":{"type":"string","title":"Method","description":"Payment method: 'card' or 'crypto'.","default":"card","examples":["card"]}},"type":"object","required":["amount"],"title":"TopupRequest"},"TopupResponse":{"properties":{"payment_id":{"type":"string","title":"Payment Id"},"status":{"type":"string","title":"Status","examples":["SUCCEEDED"]},"amount":{"type":"string","title":"Amount","examples":["50.00000000"]},"currency":{"type":"string","title":"Currency","examples":["USD"]},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"For card payments: the PaymentIntent client secret the frontend uses to complete payment. Null for instantly-settled top-ups.","examples":["pi_3Abc..._secret_xyz"]}},"type":"object","required":["payment_id","status","amount","currency"],"title":"TopupResponse"},"TransactionOut":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type","examples":["TOPUP"]},"description":{"type":"string","title":"Description","description":"Human-readable label for `type`/`ref_type` — never the raw internal reason (E-E6-F03). Safe to show the customer verbatim.","examples":["Top-up"]},"amount":{"type":"string","title":"Amount","description":"Signed amount (USD).","examples":["100.00000000"]},"balance_after":{"type":"string","title":"Balance After","examples":["100.00000000"]},"ref_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Type"},"ref_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","type","description","amount","balance_after","created_at"],"title":"TransactionOut"},"TransactionsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TransactionOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page — pass it back as `?cursor=`. Null when this is the last page (`has_more` is then false)."},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["data","has_more"],"title":"TransactionsResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WalletOut":{"properties":{"currency":{"type":"string","title":"Currency","examples":["USD"]},"balance":{"type":"string","title":"Balance","description":"Total ledger balance (USD).","examples":["100.00000000"]},"reserved":{"type":"string","title":"Reserved","description":"Funds held by reservations.","examples":["0.00000000"]},"available":{"type":"string","title":"Available","description":"balance - reserved.","examples":["100.00000000"]},"card_brand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Card Brand","examples":["visa"]},"card_last4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Card Last4","examples":["4242"]},"auto_topup_enabled":{"type":"boolean","title":"Auto Topup Enabled","default":false},"auto_topup_threshold":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Topup Threshold","examples":["20.00000000"]},"auto_topup_amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Topup Amount","examples":["50.00000000"]},"topup_min_usd":{"type":"string","title":"Topup Min Usd","default":"5.00000000","examples":["5.00000000"]},"topup_max_usd":{"type":"string","title":"Topup Max Usd","default":"100000.00000000","examples":["100000.00000000"]}},"type":"object","required":["currency","balance","reserved","available"],"title":"WalletOut"},"ZoneOut":{"properties":{"code":{"type":"string","title":"Code","description":"zone= filter value: eu, eea, middle_east, africa, north_america, or asia_pacific.","examples":["eu"]},"label":{"type":"string","title":"Label","examples":["European Union"]},"countries":{"items":{"type":"string"},"type":"array","title":"Countries","description":"Countries in this zone with currently verified capacity.","examples":[["DE","FR","NL"]]}},"type":"object","required":["code","label","countries"],"title":"ZoneOut"},"ZonesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ZoneOut"},"type":"array","title":"Data","description":"Only zones with at least one country currently backed by verified capacity (decision O11) — never a zone with zero live offers in it."}},"type":"object","required":["data"],"title":"ZonesResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","description":"Aven API key or dashboard session as a Bearer token.","scheme":"bearer"}}},"tags":[{"name":"Catalog","description":"Live GPU availability and pricing, and daily price history."},{"name":"Auth","description":"Create an account, sign in, and reset a password."},{"name":"Account","description":"Profile, API keys, and SSH keys."},{"name":"Instances","description":"Order, inspect, pause, resume, and release GPU instances."},{"name":"Wallet","description":"Prepaid balance: transactions, activity, top-ups, usage reports, saved card and auto-reload."},{"name":"Billing","description":"Invoices and top-up receipts."},{"name":"Support","description":"A customer's own support tickets."},{"name":"Referrals","description":"Refer-and-earn: code, link, stats, and rewards."},{"name":"Health","description":"Public service status and incident history."}]}