{"_id":"@aeriox-co/api","_rev":"3-89a48888cae63ca294c959ac9a3c34fd","name":"@aeriox-co/api","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.0":{"name":"@aeriox-co/api","version":"0.0.0","license":"MIT","_id":"@aeriox-co/api@0.0.0","maintainers":[{"name":"aeriox","email":"joshua@aeriox.co"}],"homepage":"https://github.com/aeriox/sdk-typescript#readme","bugs":{"url":"https://github.com/aeriox/sdk-typescript/issues"},"dist":{"shasum":"6ca20e557af91c0d86bf739ac7a95709ad7b10aa","tarball":"https://registry.npmjs.org/@aeriox-co/api/-/api-0.0.0.tgz","fileCount":1,"integrity":"sha512-IMCIpt643gGTrbYSCZuHLLUgHs/4T2VQha21F71MPTQFD1dXl9jaMfHJD+Zf/YC1OELtLq5XvATI3xBSgQa6Lg==","signatures":[{"sig":"MEYCIQCL1obKK/jYO6udTC4By0pL/8WggbY6NK3qijHUq+y10gIhANZ9MVQQMRGH6Z1U4UT42qU+NorZ9nWq3tWagxcY7jqN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326},"_npmUser":{"name":"aeriox","email":"joshua@aeriox.co"},"deprecated":"Reserved — real SDK ships at v1.0.0","repository":{"url":"git+https://github.com/aeriox/sdk-typescript.git","type":"git"},"_npmVersion":"11.9.0","description":"Reserved — real SDK ships at v1.0.0. See https://github.com/aeriox/sdk-typescript","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_0.0.0_1778093603960_0.7422332172201889","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aeriox-co/api","version":"1.0.0","author":{"name":"AERIOX"},"type":"module","main":"./esm/index.js","exports":{".":{"source":"./src/index.ts","types":"./esm/index.d.ts","default":"./esm/index.js"},"./package.json":"./package.json","./types":{"source":"./src/types/index.ts","types":"./esm/types/index.d.ts","default":"./esm/types/index.js"},"./models/errors":{"source":"./src/models/errors/index.ts","types":"./esm/models/errors/index.d.ts","default":"./esm/models/errors/index.js"},"./models":{"source":"./src/models/index.ts","types":"./esm/models/index.d.ts","default":"./esm/models/index.js"},"./models/operations":{"source":"./src/models/operations/index.ts","types":"./esm/models/operations/index.d.ts","default":"./esm/models/operations/index.js"},"./*.js":{"source":"./src/*.ts","types":"./esm/*.d.ts","default":"./esm/*.js"},"./*":{"source":"./src/*.ts","types":"./esm/*.d.ts","default":"./esm/*.js"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/aeriox/sdk-typescript.git"},"scripts":{"lint":"oxlint --max-warnings=0 --deny-warnings src/**/*.ts src/**/*.tsx","build":"tsgo","prepublishOnly":"npm run build"},"peerDependencies":{},"devDependencies":{"@typescript/native-preview":"7.0.0-dev.20260302.1","oxlint":"^1.60.0","typescript":"~5.8.3"},"dependencies":{"zod":"^3.25.65 || ^4.0.0"},"gitHead":"37f1cfb5dea5b4ef2fd5d9d649dde8972842f93d","types":"./esm/index.d.ts","_id":"@aeriox-co/api@1.0.0","description":"TypeScript SDK for the AERIOX Studio public API.","bugs":{"url":"https://github.com/aeriox/sdk-typescript/issues"},"homepage":"https://github.com/aeriox/sdk-typescript#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-iIJtwhXvlhYi9Zv+QvNIMyqYnrbRKvwAckMtSnl1bIqjYWfhC0jve/irDq1AzMiP88bzt9b5bCPTvNqoHBAeXg==","shasum":"c41648d68c3b0379d1529c4fd7c8c0d763283ca3","tarball":"https://registry.npmjs.org/@aeriox-co/api/-/api-1.0.0.tgz","fileCount":641,"unpackedSize":1248636,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aeriox-co%2fapi@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEMCICFfXyunc/Rss1y4MnPsCie2c1rEjyBFw119L1bRMemWAh887/QNYofAQa2RLKg7tZZi+2zuGdSuAJ0kY3hr1v4z"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f48ef0cc-243c-49f6-a65a-838bedd87db3"}},"directories":{},"maintainers":[{"name":"aeriox","email":"joshua@aeriox.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/api_1.0.0_1778129109897_0.4504433975119664"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-06T18:53:23.897Z","modified":"2026-05-07T04:45:10.461Z","0.0.0":"2026-05-06T18:53:24.111Z","1.0.0":"2026-05-07T04:45:10.141Z"},"bugs":{"url":"https://github.com/aeriox/sdk-typescript/issues"},"homepage":"https://github.com/aeriox/sdk-typescript#readme","repository":{"type":"git","url":"git+https://github.com/aeriox/sdk-typescript.git"},"description":"TypeScript SDK for the AERIOX Studio public API.","maintainers":[{"name":"aeriox","email":"joshua@aeriox.co"}],"readme":"# @aeriox-co/api\n\nTypeScript SDK for the AERIOX Studio public API.\n\nAuto-generated from the [OpenAPI 3.1 spec](https://api.aeriox.co/openapi.json) via [Speakeasy](https://www.speakeasy.com).\n\n## Install\n\n```bash\nnpm install @aeriox-co/api\n```\n\n## Usage\n\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst sdk = new Aeriox({\n  apiKey: process.env.AERIOX_API_KEY,\n});\n\nconst { value } = await sdk.openapi.getOpenApiSpec();\nconsole.log(value);\n```\n\n## Authentication\n\nTwo auth methods are supported:\n\n- **API key:** `Authorization: Bearer sk_live_…` or `x-api-key: sk_live_…`. Issue at https://create.aeriox.co/dashboard/api-keys.\n- **OAuth 2.0 PKCE:** Use the `aeriox-cli` or `aeriox-mcp` first-party clients, or register a third-party client. See https://create.aeriox.co/docs/oauth.\n\n## Development\n\nThis SDK is auto-regenerated by `.github/workflows/sdk-generation.yml` whenever the OpenAPI spec at `https://api.aeriox.co/openapi.json` changes (and on a weekly Monday schedule). Manual runs:\n\n```bash\ngh workflow run sdk-generation.yml --repo aeriox/sdk-typescript\n```\n\nReleases publish via npm Trusted Publishing on tag push. Tag `v1.0.0` to ship the first release.\n\n## License\n\nMIT\n\n<!-- Start Summary [summary] -->\n## Summary\n\nAERIOX Studio API: Programmatic access to AERIOX Studio's creative OS. Generate images,\nvideos, voice; train custom characters; apply prism presets;\nmanage wallet balance.\n\n**Audience priority:** MCP-native agents → indie developers → agencies → enterprise.\n\n**Authentication:** API keys (`Authorization: Bearer sk_live_*` or `x-api-key:` header).\nOAuth 2.0 PKCE flow available for end-user-facing apps.\n\n**Pricing:** USD-denominated PAYG wallet. `$5` free trial on first key,\n`$5` minimum top-up via Stripe. Every cost-bearing call is atomically\nreserved against the wallet before dispatch and refunded on provider failure.\n<!-- End Summary [summary] -->\n\n<!-- Start Table of Contents [toc] -->\n## Table of Contents\n<!-- $toc-max-depth=2 -->\n* [@aeriox-co/api](#aeriox-coapi)\n  * [Install](#install)\n  * [Usage](#usage)\n  * [Authentication](#authentication)\n  * [Development](#development)\n  * [License](#license)\n  * [SDK Installation](#sdk-installation)\n  * [Requirements](#requirements)\n  * [SDK Example Usage](#sdk-example-usage)\n  * [Authentication](#authentication-1)\n  * [Available Resources and Operations](#available-resources-and-operations)\n  * [Standalone functions](#standalone-functions)\n  * [Retries](#retries)\n  * [Error Handling](#error-handling)\n  * [Server Selection](#server-selection)\n  * [Custom HTTP Client](#custom-http-client)\n  * [Debugging](#debugging)\n\n<!-- End Table of Contents [toc] -->\n\n<!-- Start SDK Installation [installation] -->\n## SDK Installation\n\nThe SDK can be installed with either [npm](https://www.npmjs.com/), [pnpm](https://pnpm.io/), [bun](https://bun.sh/) or [yarn](https://classic.yarnpkg.com/en/) package managers.\n\n### NPM\n\n```bash\nnpm add @aeriox-co/api\n```\n\n### PNPM\n\n```bash\npnpm add @aeriox-co/api\n```\n\n### Bun\n\n```bash\nbun add @aeriox-co/api\n```\n\n### Yarn\n\n```bash\nyarn add @aeriox-co/api\n```\n\n> [!NOTE]\n> This package is published as an ES Module (ESM) only. For applications using\n> CommonJS, use `await import(\"@aeriox-co/api\")` to import and use this package.\n<!-- End SDK Installation [installation] -->\n\n<!-- Start Requirements [requirements] -->\n## Requirements\n\nFor supported JavaScript runtimes, please consult [RUNTIMES.md](RUNTIMES.md).\n<!-- End Requirements [requirements] -->\n\n<!-- Start SDK Example Usage [usage] -->\n## SDK Example Usage\n\n### Example\n\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst aeriox = new Aeriox();\n\nasync function run() {\n  const result = await aeriox.discovery.getOpenApiSpec();\n\n  console.log(result);\n}\n\nrun();\n\n```\n<!-- End SDK Example Usage [usage] -->\n\n<!-- Start Authentication [security] -->\n## Authentication\n\n### Per-Client Security Schemes\n\nThis SDK supports the following security schemes globally:\n\n| Name           | Type   | Scheme      |\n| -------------- | ------ | ----------- |\n| `apiKey`       | http   | HTTP Bearer |\n| `apiKeyHeader` | apiKey | API key     |\n\nYou can set the security parameters through the `security` optional parameter when initializing the SDK client instance. The selected scheme will be used by default to authenticate with the API for all operations that support it. For example:\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst aeriox = new Aeriox({\n  security: {\n    apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n  },\n});\n\nasync function run() {\n  const result = await aeriox.discovery.getOpenApiSpec();\n\n  console.log(result);\n}\n\nrun();\n\n```\n<!-- End Authentication [security] -->\n\n<!-- Start Available Resources and Operations [operations] -->\n## Available Resources and Operations\n\n<details open>\n<summary>Available methods</summary>\n\n### [APIKeys](docs/sdks/apikeys/README.md)\n\n* [getMe](docs/sdks/apikeys/README.md#getme) - Get current API key + workspace\n* [rotateApiKey](docs/sdks/apikeys/README.md#rotateapikey) - Rotate an API key\n* [oauthAuthorize](docs/sdks/apikeys/README.md#oauthauthorize) - Begin OAuth 2.0 PKCE authorization\n* [oauthToken](docs/sdks/apikeys/README.md#oauthtoken) - Exchange authorization code or refresh token for an access token\n* [oauthRevoke](docs/sdks/apikeys/README.md#oauthrevoke) - Revoke an OAuth access or refresh token\n* [oauthJwks](docs/sdks/apikeys/README.md#oauthjwks) - JSON Web Key Set for OAuth access token verification\n\n### [Characters](docs/sdks/characters/README.md)\n\n* [createCharacter](docs/sdks/characters/README.md#createcharacter) - Create + train a custom character from reference images\n* [listCharacters](docs/sdks/characters/README.md#listcharacters) - List workspace characters (cursor-paginated)\n* [getCharacter](docs/sdks/characters/README.md#getcharacter) - Fetch a single character\n* [deleteCharacter](docs/sdks/characters/README.md#deletecharacter) - Soft-delete a character\n\n### [Discovery](docs/sdks/discovery/README.md)\n\n* [getOpenApiSpec](docs/sdks/discovery/README.md#getopenapispec) - Fetch the AERIOX OpenAPI 3.1 spec as JSON\n* [getPricing](docs/sdks/discovery/README.md#getpricing) - Get USD price list for all operations\n* [estimateGeneration](docs/sdks/discovery/README.md#estimategeneration) - Estimate cost and feasibility for a generation\n* [listModels](docs/sdks/discovery/README.md#listmodels) - Capability + price catalog for every supported model\n\n### [Generation](docs/sdks/generation/README.md)\n\n* [generateImage](docs/sdks/generation/README.md#generateimage) - Generate an image\n* [generateVideo](docs/sdks/generation/README.md#generatevideo) - Generate a video\n* [generateAudio](docs/sdks/generation/README.md#generateaudio) - Generate audio (text-to-speech)\n* [composeVideo](docs/sdks/generation/README.md#composevideo) - Stitch multiple assets into a single video\n* [~~createGeneration~~](docs/sdks/generation/README.md#creategeneration) - (Deprecated) Submit a generation job :warning: **Deprecated**\n* [listNodes](docs/sdks/generation/README.md#listnodes) - List cards (legacy `nodes` alias)\n* [createNode](docs/sdks/generation/README.md#createnode) - Create a card (legacy `nodes` alias)\n* [getNode](docs/sdks/generation/README.md#getnode) - Get a single card with outgoing edges\n* [deleteNode](docs/sdks/generation/README.md#deletenode) - Soft-delete a card\n* [searchCards](docs/sdks/generation/README.md#searchcards) - Semantic search across the workspace card library\n* [renderCard](docs/sdks/generation/README.md#rendercard) - Render a card's structured back-side payload\n\n### [Jobs](docs/sdks/jobs/README.md)\n\n* [~~getGeneration~~](docs/sdks/jobs/README.md#getgeneration) - (Deprecated) Poll generation status :warning: **Deprecated**\n* [getJob](docs/sdks/jobs/README.md#getjob) - Poll unified job status\n* [cancelJob](docs/sdks/jobs/README.md#canceljob) - Cancel a queued or running job\n\n### [Prisms](docs/sdks/prisms/README.md)\n\n* [listPrisms](docs/sdks/prisms/README.md#listprisms) - Catalog of preset prisms\n* [applyPrism](docs/sdks/prisms/README.md#applyprism) - Apply a prism to an asset or new generation\n\n### [Wallet](docs/sdks/wallet/README.md)\n\n* [getWallet](docs/sdks/wallet/README.md#getwallet) - Get wallet balance and recent transactions\n* [topUpWallet](docs/sdks/wallet/README.md#topupwallet) - Create a Stripe PaymentIntent to credit the wallet\n* [configureAutoRecharge](docs/sdks/wallet/README.md#configureautorecharge) - Configure or clear wallet auto-recharge\n* [~~getCredits~~](docs/sdks/wallet/README.md#getcredits) - (Deprecated) Get legacy credit balance :warning: **Deprecated**\n\n</details>\n<!-- End Available Resources and Operations [operations] -->\n\n<!-- Start Standalone functions [standalone-funcs] -->\n## Standalone functions\n\nAll the methods listed above are available as standalone functions. These\nfunctions are ideal for use in applications running in the browser, serverless\nruntimes or other environments where application bundle size is a primary\nconcern. When using a bundler to build your application, all unused\nfunctionality will be either excluded from the final bundle or tree-shaken away.\n\nTo read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md).\n\n<details>\n\n<summary>Available standalone functions</summary>\n\n- [`apiKeysGetMe`](docs/sdks/apikeys/README.md#getme) - Get current API key + workspace\n- [`apiKeysOauthAuthorize`](docs/sdks/apikeys/README.md#oauthauthorize) - Begin OAuth 2.0 PKCE authorization\n- [`apiKeysOauthJwks`](docs/sdks/apikeys/README.md#oauthjwks) - JSON Web Key Set for OAuth access token verification\n- [`apiKeysOauthRevoke`](docs/sdks/apikeys/README.md#oauthrevoke) - Revoke an OAuth access or refresh token\n- [`apiKeysOauthToken`](docs/sdks/apikeys/README.md#oauthtoken) - Exchange authorization code or refresh token for an access token\n- [`apiKeysRotateAPIKey`](docs/sdks/apikeys/README.md#rotateapikey) - Rotate an API key\n- [`charactersCreateCharacter`](docs/sdks/characters/README.md#createcharacter) - Create + train a custom character from reference images\n- [`charactersDeleteCharacter`](docs/sdks/characters/README.md#deletecharacter) - Soft-delete a character\n- [`charactersGetCharacter`](docs/sdks/characters/README.md#getcharacter) - Fetch a single character\n- [`charactersListCharacters`](docs/sdks/characters/README.md#listcharacters) - List workspace characters (cursor-paginated)\n- [`discoveryEstimateGeneration`](docs/sdks/discovery/README.md#estimategeneration) - Estimate cost and feasibility for a generation\n- [`discoveryGetOpenApiSpec`](docs/sdks/discovery/README.md#getopenapispec) - Fetch the AERIOX OpenAPI 3.1 spec as JSON\n- [`discoveryGetPricing`](docs/sdks/discovery/README.md#getpricing) - Get USD price list for all operations\n- [`discoveryListModels`](docs/sdks/discovery/README.md#listmodels) - Capability + price catalog for every supported model\n- [`generationComposeVideo`](docs/sdks/generation/README.md#composevideo) - Stitch multiple assets into a single video\n- [`generationCreateNode`](docs/sdks/generation/README.md#createnode) - Create a card (legacy `nodes` alias)\n- [`generationDeleteNode`](docs/sdks/generation/README.md#deletenode) - Soft-delete a card\n- [`generationGenerateAudio`](docs/sdks/generation/README.md#generateaudio) - Generate audio (text-to-speech)\n- [`generationGenerateImage`](docs/sdks/generation/README.md#generateimage) - Generate an image\n- [`generationGenerateVideo`](docs/sdks/generation/README.md#generatevideo) - Generate a video\n- [`generationGetNode`](docs/sdks/generation/README.md#getnode) - Get a single card with outgoing edges\n- [`generationListNodes`](docs/sdks/generation/README.md#listnodes) - List cards (legacy `nodes` alias)\n- [`generationRenderCard`](docs/sdks/generation/README.md#rendercard) - Render a card's structured back-side payload\n- [`generationSearchCards`](docs/sdks/generation/README.md#searchcards) - Semantic search across the workspace card library\n- [`jobsCancelJob`](docs/sdks/jobs/README.md#canceljob) - Cancel a queued or running job\n- [`jobsGetJob`](docs/sdks/jobs/README.md#getjob) - Poll unified job status\n- [`prismsApplyPrism`](docs/sdks/prisms/README.md#applyprism) - Apply a prism to an asset or new generation\n- [`prismsListPrisms`](docs/sdks/prisms/README.md#listprisms) - Catalog of preset prisms\n- [`walletConfigureAutoRecharge`](docs/sdks/wallet/README.md#configureautorecharge) - Configure or clear wallet auto-recharge\n- [`walletGetWallet`](docs/sdks/wallet/README.md#getwallet) - Get wallet balance and recent transactions\n- [`walletTopUpWallet`](docs/sdks/wallet/README.md#topupwallet) - Create a Stripe PaymentIntent to credit the wallet\n- ~~[`generationCreateGeneration`](docs/sdks/generation/README.md#creategeneration)~~ - (Deprecated) Submit a generation job :warning: **Deprecated**\n- ~~[`jobsGetGeneration`](docs/sdks/jobs/README.md#getgeneration)~~ - (Deprecated) Poll generation status :warning: **Deprecated**\n- ~~[`walletGetCredits`](docs/sdks/wallet/README.md#getcredits)~~ - (Deprecated) Get legacy credit balance :warning: **Deprecated**\n\n</details>\n<!-- End Standalone functions [standalone-funcs] -->\n\n<!-- Start Retries [retries] -->\n## Retries\n\nSome of the endpoints in this SDK support retries.  If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API.  However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.\n\nTo change the default retry strategy for a single API call, simply provide a retryConfig object to the call:\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst aeriox = new Aeriox();\n\nasync function run() {\n  const result = await aeriox.discovery.getOpenApiSpec({\n    retries: {\n      strategy: \"backoff\",\n      backoff: {\n        initialInterval: 1,\n        maxInterval: 50,\n        exponent: 1.1,\n        maxElapsedTime: 100,\n      },\n      retryConnectionErrors: false,\n    },\n  });\n\n  console.log(result);\n}\n\nrun();\n\n```\n\nIf you'd like to override the default retry strategy for all operations that support retries, you can provide a retryConfig at SDK initialization:\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst aeriox = new Aeriox({\n  retryConfig: {\n    strategy: \"backoff\",\n    backoff: {\n      initialInterval: 1,\n      maxInterval: 50,\n      exponent: 1.1,\n      maxElapsedTime: 100,\n    },\n    retryConnectionErrors: false,\n  },\n});\n\nasync function run() {\n  const result = await aeriox.discovery.getOpenApiSpec();\n\n  console.log(result);\n}\n\nrun();\n\n```\n<!-- End Retries [retries] -->\n\n<!-- Start Error Handling [errors] -->\n## Error Handling\n\n[`AerioxError`](./src/models/errors/aeriox-error.ts) is the base class for all HTTP error responses. It has the following properties:\n\n| Property            | Type       | Description                                                                             |\n| ------------------- | ---------- | --------------------------------------------------------------------------------------- |\n| `error.message`     | `string`   | Error message                                                                           |\n| `error.statusCode`  | `number`   | HTTP response status code eg `404`                                                      |\n| `error.headers`     | `Headers`  | HTTP response headers                                                                   |\n| `error.body`        | `string`   | HTTP body. Can be empty string if no body is returned.                                  |\n| `error.rawResponse` | `Response` | Raw HTTP response                                                                       |\n| `error.data$`       |            | Optional. Some errors may contain structured data. [See Error Classes](#error-classes). |\n\n### Example\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\nimport * as errors from \"@aeriox-co/api/models/errors\";\n\nconst aeriox = new Aeriox();\n\nasync function run() {\n  try {\n    const result = await aeriox.discovery.getPricing();\n\n    console.log(result);\n  } catch (error) {\n    // The base class for HTTP error responses\n    if (error instanceof errors.AerioxError) {\n      console.log(error.message);\n      console.log(error.statusCode);\n      console.log(error.body);\n      console.log(error.headers);\n\n      // Depending on the method different errors may be thrown\n      if (error instanceof errors.ErrorT) {\n        console.log(error.data$.error); // models.ErrorT\n      }\n    }\n  }\n}\n\nrun();\n\n```\n\n### Error Classes\n**Primary errors:**\n* [`AerioxError`](./src/models/errors/aeriox-error.ts): The base class for HTTP error responses.\n  * [`ErrorT`](./src/models/errors/error-t.ts): Missing or invalid API key. *\n\n<details><summary>Less common errors (6)</summary>\n\n<br />\n\n**Network errors:**\n* [`ConnectionError`](./src/models/errors/http-client-errors.ts): HTTP client was unable to make a request to a server.\n* [`RequestTimeoutError`](./src/models/errors/http-client-errors.ts): HTTP request timed out due to an AbortSignal signal.\n* [`RequestAbortedError`](./src/models/errors/http-client-errors.ts): HTTP request was aborted by the client.\n* [`InvalidRequestError`](./src/models/errors/http-client-errors.ts): Any input used to create a request is invalid.\n* [`UnexpectedClientError`](./src/models/errors/http-client-errors.ts): Unrecognised or unexpected error.\n\n\n**Inherit from [`AerioxError`](./src/models/errors/aeriox-error.ts)**:\n* [`ResponseValidationError`](./src/models/errors/response-validation-error.ts): Type mismatch between the data returned from the server and the structure expected by the SDK. See `error.rawValue` for the raw value and `error.pretty()` for a nicely formatted multi-line string.\n\n</details>\n\n\\* Check [the method documentation](#available-resources-and-operations) to see if the error is applicable.\n<!-- End Error Handling [errors] -->\n\n<!-- Start Server Selection [server] -->\n## Server Selection\n\n### Select Server by Index\n\nYou can override the default server globally by passing a server index to the `serverIdx: number` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:\n\n| #   | Server                          | Description               |\n| --- | ------------------------------- | ------------------------- |\n| 0   | `https://api.aeriox.co`         | Production                |\n| 1   | `https://api-staging.aeriox.co` | Staging (preview deploys) |\n\n#### Example\n\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst aeriox = new Aeriox({\n  serverIdx: 0,\n});\n\nasync function run() {\n  const result = await aeriox.discovery.getOpenApiSpec();\n\n  console.log(result);\n}\n\nrun();\n\n```\n\n### Override Server URL Per-Client\n\nThe default server can also be overridden globally by passing a URL to the `serverURL: string` optional parameter when initializing the SDK client instance. For example:\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst aeriox = new Aeriox({\n  serverURL: \"https://api-staging.aeriox.co\",\n});\n\nasync function run() {\n  const result = await aeriox.discovery.getOpenApiSpec();\n\n  console.log(result);\n}\n\nrun();\n\n```\n<!-- End Server Selection [server] -->\n\n<!-- Start Custom HTTP Client [http-client] -->\n## Custom HTTP Client\n\nThe TypeScript SDK makes API calls using an `HTTPClient` that wraps the native\n[Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). This\nclient is a thin wrapper around `fetch` and provides the ability to attach hooks\naround the request lifecycle that can be used to modify the request or handle\nerrors and response.\n\nThe `HTTPClient` constructor takes an optional `fetcher` argument that can be\nused to integrate a third-party HTTP client or when writing tests to mock out\nthe HTTP client and feed in fixtures.\n\nThe following example shows how to:\n- route requests through a proxy server using [undici](https://www.npmjs.com/package/undici)'s ProxyAgent\n- use the `\"beforeRequest\"` hook to add a custom header and a timeout to requests\n- use the `\"requestError\"` hook to log errors\n\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\nimport { ProxyAgent } from \"undici\";\nimport { HTTPClient } from \"@aeriox-co/api/lib/http\";\n\nconst dispatcher = new ProxyAgent(\"http://proxy.example.com:8080\");\n\nconst httpClient = new HTTPClient({\n  // 'fetcher' takes a function that has the same signature as native 'fetch'.\n  fetcher: (input, init) =>\n    // 'dispatcher' is specific to undici and not part of the standard Fetch API.\n    fetch(input, { ...init, dispatcher } as RequestInit),\n});\n\nhttpClient.addHook(\"beforeRequest\", (request) => {\n  const nextRequest = new Request(request, {\n    signal: request.signal || AbortSignal.timeout(5000)\n  });\n\n  nextRequest.headers.set(\"x-custom-header\", \"custom value\");\n\n  return nextRequest;\n});\n\nhttpClient.addHook(\"requestError\", (error, request) => {\n  console.group(\"Request Error\");\n  console.log(\"Reason:\", `${error}`);\n  console.log(\"Endpoint:\", `${request.method} ${request.url}`);\n  console.groupEnd();\n});\n\nconst sdk = new Aeriox({ httpClient: httpClient });\n```\n<!-- End Custom HTTP Client [http-client] -->\n\n<!-- Start Debugging [debug] -->\n## Debugging\n\nYou can setup your SDK to emit debug logs for SDK requests and responses.\n\nYou can pass a logger that matches `console`'s interface as an SDK option.\n\n> [!WARNING]\n> Beware that debug logging will reveal secrets, like API tokens in headers, in log messages printed to a console or files. It's recommended to use this feature only during local development and not in production.\n\n```typescript\nimport { Aeriox } from \"@aeriox-co/api\";\n\nconst sdk = new Aeriox({ debugLogger: console });\n```\n<!-- End Debugging [debug] -->\n\n<!-- Placeholder for Future Speakeasy SDK Sections -->\n","readmeFilename":"README.md","author":{"name":"AERIOX"}}