{"openapi":"3.1.0","info":{"title":"Prismic Models (BYOK) API","version":"0.1.0","description":"Prismic Models (BYOK) lets an AI assistant read your own Prismic Models data through the Prismic Models API with a key you supply (Prismic write token (used read-only here)). Read-only: 5 tools (list_custom_types, get_custom_type, list_slices, get_slice, list_assets). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-prismic-models.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-prismic-models/docs"},"termsOfService":"https://connectorbay.com/byok-prismic-models/terms"},"servers":[{"url":"https://byok-prismic-models.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-prismic-models/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_custom_types":{"post":{"operationId":"list_custom_types","summary":"List the custom types (content models) of the repository with ID, label, whether repeatable and whether active. Use for ","description":"List the custom types (content models) of the repository with ID, label, whether repeatable and whether active. Use for \"Which custom types are defined in my Prismic repository\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"const":"customtypes","description":"Always 'customtypes' (the Prismic Types API host).","title":"Service","type":"string"}},"required":["service"],"title":"list_custom_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_custom_type":{"post":{"operationId":"get_custom_type","summary":"Get one custom type including its full JSON model (tabs, fields and field configuration). Use for \"Show the model of my ","description":"Get one custom type including its full JSON model (tabs, fields and field configuration). Use for \"Show the model of my Prismic custom type page\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"const":"customtypes","description":"Always 'customtypes' (the Prismic Types API host).","title":"Service","type":"string"},"custom_type_id":{"description":"API ID of the custom type from list_custom_types.","maxLength":100,"title":"Custom Type Id","type":"string"}},"required":["service","custom_type_id"],"title":"get_custom_typeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_slices":{"post":{"operationId":"list_slices","summary":"List the shared slices of the repository with ID, name and description. Use for \"Which shared slices exist in my Prismic","description":"List the shared slices of the repository with ID, name and description. Use for \"Which shared slices exist in my Prismic repository\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"const":"customtypes","description":"Always 'customtypes' (the Prismic Types API host).","title":"Service","type":"string"}},"required":["service"],"title":"list_slicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_slice":{"post":{"operationId":"get_slice","summary":"Get one shared slice including its variations and field models. Use for \"Show the variations of my Prismic shared slice ","description":"Get one shared slice including its variations and field models. Use for \"Show the variations of my Prismic shared slice image_gallery\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"const":"customtypes","description":"Always 'customtypes' (the Prismic Types API host).","title":"Service","type":"string"},"slice_id":{"description":"API ID of the shared slice from list_slices.","maxLength":100,"title":"Slice Id","type":"string"}},"required":["service","slice_id"],"title":"get_sliceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_assets":{"post":{"operationId":"list_assets","summary":"List media library assets (the raw API answer, first items only) with filename, size, dimensions, kind, alt text and dat","description":"List media library assets (the raw API answer, first items only) with filename, size, dimensions, kind, alt text and dates. Filter by type or keyword. Use for \"Which images are in my Prismic media library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service":{"const":"asset-api","description":"Always 'asset-api' (the Prismic Asset API host).","title":"Service","type":"string"},"asset_type":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":"all","description":"Kind of assets, for example all or image.","title":"Asset Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of assets (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"ID of the asset after which to start (for the next page).","title":"Cursor"},"keyword":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by text in title, filename, alt text, notes or credits.","title":"Keyword"}},"required":["service"],"title":"list_assetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}