public
GET /v1/ai-model-catalogue
The signed catalogue of AI models the Zinn® plugins offer.
Authentication
This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X GET https://api.zinndigital.com/v1/ai-model-catalogueSigned in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
The list of AI providers' models, prices and per-task recommendations that the shared AI core in the Zinn® WordPress plugins shows under Settings → AI providers. A plugin fetches it (only when its owner opts in) so model lists and prices stay current between plugin releases. Public and unauthenticated, takes no parameters and records nothing about the caller. The body is a signed envelope returned byte for byte as published: payload is the base64 of the exact catalogue JSON bytes and signature is an Ed25519 (libsodium crypto_sign_detached) signature over those bytes by the key named in key_id. A plugin verifies the signature against the public key built into it before decoding anything, and refuses a bad signature, an unknown key_id, another format, or a catalogue older than the one it already has. Cacheable for an hour.
Response
| Name | Type | Required | What it is |
|---|---|---|---|
format | string<zinn-ai-catalogue/1> | Yes | The envelope format. A client refuses any other value. |
key_id | string | Yes | Which signing key produced signature, e.g. zd-cat-2026-09. |
payload | string | Yes | Base64 of the exact catalogue JSON bytes that were signed. |
signature | string | Yes | Base64 of the 64-byte Ed25519 detached signature over the payload bytes. |
Errors this endpoint can return
429