{"openapi":"3.1.0","info":{"title":"Prismic Content (BYOK) API","version":"0.1.0","description":"Prismic Content (BYOK) lets an AI assistant read your own Prismic Content data through the Prismic Content API with a key you supply (Prismic Content API access token (repository settings, API & Security)). Read-only: 5 tools (get_repository, list_tags, list_documents, count_documents, get_documents_with_content). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-prismic-content.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-prismic-content/docs"},"termsOfService":"https://connectorbay.com/byok-prismic-content/terms"},"servers":[{"url":"https://byok-prismic-content.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-prismic-content/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/get_repository":{"post":{"operationId":"get_repository","summary":"Show the repository info: content refs (find the master ref here), locales, custom type ids, tags and API version. Use f","description":"Show the repository info: content refs (find the master ref here), locales, custom type ids, tags and API version. Use for \"What is the current master ref of my Prismic repository\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"repo":{"description":"Your Prismic repository name: the part before .prismic.io in the address you sign in at (my-site for my-site.prismic.io).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Repo","type":"string"}},"required":["repo"],"title":"get_repositoryArguments","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_tags":{"post":{"operationId":"list_tags","summary":"List all tags used on published documents. Use for \"Which tags are used in my Prismic content\".","description":"List all tags used on published documents. Use for \"Which tags are used in my Prismic content\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"repo":{"description":"Your Prismic repository name: the part before .prismic.io in the address you sign in at (my-site for my-site.prismic.io).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Repo","type":"string"}},"required":["repo"],"title":"list_tagsArguments","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_documents":{"post":{"operationId":"list_documents","summary":"List published documents with id, UID, type, locale, tags and publication dates. Use q to filter by type or tag. The fie","description":"List published documents with id, UID, type, locale, tags and publication dates. Use q to filter by type or tag. The field content is not included; use get_documents_with_content for it. Use for \"Which blog posts are published in my Prismic repository\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"repo":{"description":"Your Prismic repository name: the part before .prismic.io in the address you sign in at (my-site for my-site.prismic.io).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Repo","type":"string"},"ref":{"description":"Content version to read: the master ref from get_repository (refs where isMasterRef is true). Refs expire when content is published.","maxLength":100,"title":"Ref","type":"string"},"q":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter in Prismic predicate syntax, wrapped in square brackets, for example [[at(document.type,\"page\")]] or [[at(document.tags,[\"news\"])]].","title":"Q"},"lang":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Locale code such as en-us, or * for all locales. Defaults to the repository master locale.","title":"Lang"},"orderings":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Sort, for example [document.last_publication_date desc] or [my.page.title].","title":"Orderings"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Documents per page (1 to 100).","title":"Page Size"}},"required":["repo","ref"],"title":"list_documentsArguments","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/count_documents":{"post":{"operationId":"count_documents","summary":"Count published documents matching an optional filter, with the total number of pages at 20 per page. Use for \"How many ","description":"Count published documents matching an optional filter, with the total number of pages at 20 per page. Use for \"How many pages are published in my Prismic repository\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"repo":{"description":"Your Prismic repository name: the part before .prismic.io in the address you sign in at (my-site for my-site.prismic.io).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Repo","type":"string"},"ref":{"description":"Content version to read: the master ref from get_repository (refs where isMasterRef is true). Refs expire when content is published.","maxLength":100,"title":"Ref","type":"string"},"q":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter in Prismic predicate syntax, wrapped in square brackets, for example [[at(document.type,\"page\")]] or [[at(document.tags,[\"news\"])]].","title":"Q"},"lang":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Locale code such as en-us, or * for all locales. Defaults to the repository master locale.","title":"Lang"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Documents per page used for the page count (1 to 100).","title":"Page Size"}},"required":["repo","ref"],"title":"count_documentsArguments","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_documents_with_content":{"post":{"operationId":"get_documents_with_content","summary":"Get published documents with their full field content (the data object: text, links, images, slices). Filter with q, for","description":"Get published documents with their full field content (the data object: text, links, images, slices). Filter with q, for example by id or UID, and keep the page size small. Use for \"Show the content of the Prismic page with UID about-us\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"repo":{"description":"Your Prismic repository name: the part before .prismic.io in the address you sign in at (my-site for my-site.prismic.io).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Repo","type":"string"},"ref":{"description":"Content version to read: the master ref from get_repository (refs where isMasterRef is true). Refs expire when content is published.","maxLength":100,"title":"Ref","type":"string"},"q":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter in Prismic predicate syntax, wrapped in square brackets, for example [[at(document.type,\"page\")]] or [[at(document.tags,[\"news\"])]].","title":"Q"},"lang":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Locale code such as en-us, or * for all locales. Defaults to the repository master locale.","title":"Lang"},"page_size":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"Documents per page (1 to 20).","title":"Page Size"}},"required":["repo","ref"],"title":"get_documents_with_contentArguments","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}}}}