ai
POST /v1/ai/images/credentials
Store an image-provider key for this organization.
Authenticatie
Stuur een API-sleutel mee als bearer token. De sleutel moet over de permissie billing.manage beschikken; een sleutel zonder deze permissie wordt geweigerd met een 403 in plaats van een 404.
Waar je organisatie-id komt te staan
Dit eindpunt verwacht org_id als een veld in de JSON-body.
Uw organisatie-id staat op het scherm met API-sleutels in uw dashboard, naast de sleutel zelf. Dit is in elke aanroep die u doet dezelfde id.
Probeer het
Vervang alles tussen punthaakjes door uw eigen waarden en de sleutelplaatsvervanger door een sleutel uit uw dashboard.
curl -X POST https://api.zinndigital.com/v1/ai/images/credentials \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "provider": <AiImageProvider>, "api_key": <string> }'Ingelogd? De API-console in je dashboard vult je echte organisatie-id en je eigen sleutel in, en voert het verzoek uit tegen de live API zodat je de daadwerkelijke respons kunt zien. Open dit eindpunt in de API-console
Details
Puts the key in Vault and records a pointer. Any existing live key for the same provider is revoked in the same transaction. ⭐ **The key is tested immediately, by generating a real image**, and the result is on the response. An auth probe is green against a model id that no longer exists, so the only check worth returning is one that actually draws something. A key that does not work is still stored and still a `201` — the row records `last_check_ok: false` and the provider's own words in `last_check_error`, because "we saved it and it does not work" is the successful outcome of this request and a `4xx` would leave the screen unable to say why. Requires `billing.manage`.
Aanvraaglichaam
| Naam | Type | Verplicht | Wat dit is |
|---|---|---|---|
provider | AiImageProvider | Ja | An image-generation provider. ⛔ Deliberately a different enum from the text `provider` on `AiCredential`: Anthropic publishes no image model and xAI publishes no text model we u… |
api_key | string | Ja | The key itself. Written straight to Vault and never returned. |
label | string | Nee | — |
org_id | Uuid | Nee | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
Reactie
| Naam | Type | Verplicht | Wat dit is |
|---|---|---|---|
id | Uuid | Ja | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
provider | AiImageProvider | Ja | An image-generation provider. ⛔ Deliberately a different enum from the text `provider` on `AiCredential`: Anthropic publishes no image model and xAI publishes no text model we u… |
label | string | Ja | — |
verified_at | object | Nee | The last time a **real image generation** on this key succeeded. ⛔ `null` means never proven, not broken. Moved only by a generation, never by a cheap auth probe: a probe proves… |
last_checked_at | object | Nee | The last time any check ran, pass or fail. Separate from `verified_at` so *"we have not looked recently"* is distinguishable from *"we looked and it failed"*. |
last_check_ok | object | Nee | — |
last_check_error | string | Nee | The provider's own words when the last check failed. Empty otherwise. |
broken_since | object | Nee | When the key first failed after last passing, or `null` if it is not currently broken. ⭐ This is what makes "notify on transition to broken, never per check" possible — a key br… |
last_used_at | object | Nee | — |
created_at | string | Ja | — |
Fouten die dit eindpunt kan retourneren
401 · 403 · 422 · 429