Skip to content

recipes

llms.txtAsk agent

Enabled customer-safe recipe capabilities and supported media.

Method Path Operation ID
GET /v1/capabilities getCapabilities
GET /v1/image-profiles listImageProfiles
GET /v1/recipes listRecipes
GET /v1/recipes/{recipe_id} getRecipe

Operation ID: getCapabilities

Read privacy-safe configured and currently available runtime capabilities.

Returns the current reviewed media, upload, recipe, capture-readiness, and public contract facts. Live availability is reported separately from configuration; storage coordinates, provider identities, signing material, and internal topology are excluded.

Authentication: Authorization: Bearer <API key or console session> (Authentication).

Status Description Body
200 Successful Response application/json CapabilityDiscoveryResponse
401 The bearer credential is missing, malformed, expired, revoked, or otherwise invalid. Clerk sessions and scoped API keys fail identically and the body never reveals which credential was presented or whether it exists. application/json HttpErrorResponse
403 The provider deleted this identity, or the account is deactivated. A valid session cannot authorize a tombstoned identity back into use; an API key must also grant the scope required by the operation, and an operation is not classified by the route/scope policy and is denied by default. An API key restricted to client networks is refused from any other network with the API_KEY_IP_NOT_ALLOWED envelope. application/json HttpErrorResponse or ErrorResponse
409 Just-in-time provisioning conflicted: the verified email belongs to another provisioned account. application/json HttpErrorResponse
422 A verified email is unavailable for account provisioning. application/json HttpErrorResponse
429 The API key’s own request rate limit was exceeded (API_KEY_RATE_LIMITED). Only keys configured with a rate limit can receive this. Retryable after Retry-After seconds; the refused request consumed no capacity. application/json ErrorResponse
503 Credential verification is unavailable: Clerk session verification is not configured, no API-key pepper is enrolled, or bounded API-key verification is temporarily overloaded. Retryable. application/json HttpErrorResponse
Field Type Required Description
capture CaptureCapabilityResponse yes
contract ContractCapabilityResponse yes
media array of MediaCapabilityResponse yes
recipes array of ReviewedRecipeAvailabilityResponse yes
schema_version const “op.capability-discovery.v1” yes

Operation ID: listImageProfiles

List every reviewed image profile with its accepted capability, planned envelope, limits, and availability.

Returns every reviewed image profile, available or not, with its accepted capability separated from its planned envelope. Profiles that are reviewed and deliberately not executable are listed with a reason rather than hidden, so a client can distinguish a format we have not assessed from one we assessed and cannot ship. accepted_* is the only field that describes what works today.

Authentication: Authorization: Bearer <API key or console session> (Authentication).

Status Description Body
200 Successful Response application/json ImageProfileListResponse
401 The bearer credential is missing, malformed, expired, revoked, or otherwise invalid. Clerk sessions and scoped API keys fail identically and the body never reveals which credential was presented or whether it exists. application/json HttpErrorResponse
403 The provider deleted this identity, or the account is deactivated. A valid session cannot authorize a tombstoned identity back into use; an API key must also grant the scope required by the operation, and an operation is not classified by the route/scope policy and is denied by default. An API key restricted to client networks is refused from any other network with the API_KEY_IP_NOT_ALLOWED envelope. application/json HttpErrorResponse or ErrorResponse
409 Just-in-time provisioning conflicted: the verified email belongs to another provisioned account. application/json HttpErrorResponse
422 A verified email is unavailable for account provisioning. application/json HttpErrorResponse
429 The API key’s own request rate limit was exceeded (API_KEY_RATE_LIMITED). Only keys configured with a rate limit can receive this. Retryable after Retry-After seconds; the refused request consumed no capacity. application/json ErrorResponse
503 Credential verification is unavailable: Clerk session verification is not configured, no API-key pepper is enrolled, or bounded API-key verification is temporarily overloaded. Retryable. application/json HttpErrorResponse
Field Type Required Description
profiles array of ImageProfileResponse yes

Operation ID: listRecipes

List the enabled reviewed recipes, with display names, and their media formats.

Returns only currently enabled recipe identifiers, display names and summaries, immutable versions, ordered public capabilities, and supported media types. Provider identities, algorithms, configuration, and recipe DAG internals are intentionally excluded.

Authentication: Authorization: Bearer <API key or console session> (Authentication).

Status Description Body
200 Successful Response application/json RecipeListResponse
401 The bearer credential is missing, malformed, expired, revoked, or otherwise invalid. Clerk sessions and scoped API keys fail identically and the body never reveals which credential was presented or whether it exists. application/json HttpErrorResponse
403 The provider deleted this identity, or the account is deactivated. A valid session cannot authorize a tombstoned identity back into use; an API key must also grant the scope required by the operation, and an operation is not classified by the route/scope policy and is denied by default. An API key restricted to client networks is refused from any other network with the API_KEY_IP_NOT_ALLOWED envelope. application/json HttpErrorResponse or ErrorResponse
409 Just-in-time provisioning conflicted: the verified email belongs to another provisioned account. application/json HttpErrorResponse
422 A verified email is unavailable for account provisioning. application/json HttpErrorResponse
429 The API key’s own request rate limit was exceeded (API_KEY_RATE_LIMITED). Only keys configured with a rate limit can receive this. Retryable after Retry-After seconds; the refused request consumed no capacity. application/json ErrorResponse
503 Credential verification is unavailable: Clerk session verification is not configured, no API-key pepper is enrolled, or bounded API-key verification is temporarily overloaded. Retryable. application/json HttpErrorResponse
Field Type Required Description
recipes array of RecipeResponse yes

Operation ID: getRecipe

Read one exact active version from the approved immutable recipe catalog.

Authentication: Authorization: Bearer <API key or console session> (Authentication).

Name In Type Required Description
recipe_id path string yes Pattern: ^rcp_[a-z0-9_]{3,64}$.
Status Description Body
200 Successful Response application/json RecipeCatalogResponse
401 The bearer credential is missing, malformed, expired, revoked, or otherwise invalid. Clerk sessions and scoped API keys fail identically and the body never reveals which credential was presented or whether it exists. application/json HttpErrorResponse
403 The provider deleted this identity, or the account is deactivated. A valid session cannot authorize a tombstoned identity back into use; an API key must also grant the scope required by the operation, and an operation is not classified by the route/scope policy and is denied by default. An API key restricted to client networks is refused from any other network with the API_KEY_IP_NOT_ALLOWED envelope. This operation may also return its reason-coded domain envelope with this status. application/json HttpErrorResponse or ErrorResponse
404 Not Found application/json ErrorResponse
409 Just-in-time provisioning conflicted: the verified email belongs to another provisioned account. application/json HttpErrorResponse
422 A verified email is unavailable for account provisioning. This operation may also return its reason-coded domain envelope with this status. application/json HttpErrorResponse or ErrorResponse
429 The API key’s own request rate limit was exceeded (API_KEY_RATE_LIMITED). Only keys configured with a rate limit can receive this. Retryable after Retry-After seconds; the refused request consumed no capacity. application/json ErrorResponse
503 Credential verification is unavailable: Clerk session verification is not configured, no API-key pepper is enrolled, or bounded API-key verification is temporarily overloaded. Retryable. This operation may also return its reason-coded domain envelope with this status. application/json HttpErrorResponse or ErrorResponse
Field Type Required Description
available boolean yes
catalog_version const “op.recipe-catalog.v1” no Default "op.recipe-catalog.v1".
definition_sha256 string yes Pattern: ^[0-9a-f]{64}$.
kind RecipeCatalogKind yes One of: sign_only, watermark_only, watermark_then_sign.
name string yes Max length 200.
recipe_id string yes Pattern: ^rcp_[a-z0-9_]{3,64}$.
recipe_url string yes Pattern: ^/v1/recipes/rcp_[a-z0-9_]{3,64}$.
required_capabilities array of string yes
required_steps array of string yes
schema_version string yes Pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]*$. Max length 100.
supported_media_types array of enum yes
unavailable_reason RecipeUnavailableReason or null yes
version integer yes Minimum 1.