OpenAI API
Hosted OpenAI model endpoints for text, vision, audio and embeddings.
- Provider
- default
- Kind
- AI service
- Category
- Compute
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| audio | boolean | — | no | false | inherited |
| auth | enum | api-key | oauth | iam | none | no | — | ▸ api-key |
| batchApi | boolean | — | no | false | inherited |
| contentFiltering | boolean | — | no | — | ▸ false |
| customerManagedKeys | boolean | — | no | — | inherited |
| dataResidency | enum | us | eu | asia | global | no | — | inherited |
| dataRetentionDays | integer | — | no | — | ▸ 30 |
| keyStore | boolean | — | no | false | inherited |
| managed | boolean | — | no | false | ▸ true |
| modality | enum | text | vision | speech | multimodal | structured | image | video | audio | embedding | rerank | no | — | ▸ multimodal |
| moderation | boolean | — | no | false | inherited |
| publicEndpoint | boolean | — | no | — | ▸ true |
| quotaUnitsPerMinute | integer | — | no | — | inherited |
| rateLimitRpm | integer | — | no | — | inherited |
| rateLimitTpm | integer | — | no | — | inherited |
| realtime | boolean | — | no | false | inherited |
| trainingOptIn | boolean | — | no | false | inherited |
| usageTier | enum | free | tier-1 | tier-2 | tier-3 | tier-4 | tier-5 | no | tier-1 | inherited |
| viaGateway | boolean | — | no | false | inherited |
| zeroDataRetention | boolean | — | no | false | inherited |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
This AI vendor is reached with an API key, and nothing in the design holds or rotates that key. It ends up in environment files or code, every caller shares it, and a single leak runs up the vendor bill until someone notices. Put the key in a key-management component, or say it is held there with keyStore.
- — all of these hold:
- — the node's `auth` is "api-key"
- — the node's `keyStore` is false
- — the node has at least one incoming edge from an app-server, worker or client
- — this does not hold:
- — the design contains a node of kind key-management
A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- — all of these hold:
- — the node's `stateless` is false
- — the node sits inside exactly 1 availability-zone group
- — this does not hold:
- — the node sits inside at least one cell group
nodes:
- { id: "openai-api", component: "openai-api" }# yaml-language-server: $schema=../../schema/component.schema.json # OpenAI API: hosted multimodal model endpoints (text, image, audio, embeddings) over a public HTTPS endpoint. # Per "Data controls in the OpenAI platform", API inputs and outputs are retained 30 days for abuse monitoring # and are not used to train models unless the organization opts in; Zero Data Retention needs prior approval. # Per "Rate limits", limits are per model in RPM/TPM and a new paying organization starts on Tier 1. # realtime (Realtime API over WebRTC or WebSocket), audio (speech to text and text to speech, Whisper) and # moderation (the separate moderation endpoint) are each a call the app has to make, so all start off. schemaVersion: "1" type: "component" id: "openai-api" kind: "ai-service" provider: "default" docs: "https://developers.openai.com/api/docs/guides/your-data" defaults: auth: "api-key" managed: true modality: "multimodal" publicEndpoint: true dataRetentionDays: 30 contentFiltering: false properties: usageTier: type: "enum" values: ["free", "tier-1", "tier-2", "tier-3", "tier-4", "tier-5"] default: "tier-1" zeroDataRetention: type: "boolean" default: false trainingOptIn: type: "boolean" default: false batchApi: type: "boolean" default: false realtime: type: "boolean" default: false audio: type: "boolean" default: false moderation: type: "boolean" default: false