{"openapi":"3.1.0","info":{"title":"Mintlify (BYOK) API","version":"0.1.0","description":"Mintlify (BYOK) lets an AI assistant read your own Mintlify data through the Mintlify API with a key you supply (Mintlify admin API key (starts with mint_)). Read-only: 7 tools (get_update_status, get_page_views, get_unique_visitors, get_search_queries, get_feedback, get_feedback_by_page, get_assistant_caller_stats). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mintlify.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mintlify/docs"},"termsOfService":"https://connectorbay.com/byok-mintlify/terms"},"servers":[{"url":"https://byok-mintlify.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mintlify/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_update_status":{"post":{"operationId":"get_update_status","summary":"Get the status of a documentation deployment: queued, in progress, success or failure, summary, logs, time, subdomain an","description":"Get the status of a documentation deployment: queued, in progress, success or failure, summary, logs, time, subdomain and the commit it built. The author is not returned. Use for \"Did my last Mintlify docs deployment succeed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status_id":{"description":"Status id returned when the deployment was triggered.","maxLength":200,"title":"Status Id","type":"string"}},"required":["status_id"],"title":"get_update_statusArguments","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_page_views":{"post":{"operationId":"get_page_views","summary":"Get page views per documentation page and site-wide, split into human and AI traffic. Needs a Pro or Enterprise plan. Us","description":"Get page views per documentation page and site-wide, split into human and AI traffic. Needs a Pro or Enterprise plan. Use for \"Which of my Mintlify docs pages got the most views last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Your Mintlify project id, shown on the API keys page of the dashboard.","maxLength":200,"title":"Project Id","type":"string"},"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data from this date on (ISO 8601 or YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this date (ISO 8601 or YYYY-MM-DD); the date itself is excluded.","title":"Date To"},"limit":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many pages to return (1 to 250, default 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many pages to skip, for paging while hasMore is true.","title":"Offset"}},"required":["project_id"],"title":"get_page_viewsArguments","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_unique_visitors":{"post":{"operationId":"get_unique_visitors","summary":"Get approximate unique visitors per documentation page and site-wide, split into human and AI traffic. Use for \"How many","description":"Get approximate unique visitors per documentation page and site-wide, split into human and AI traffic. Use for \"How many unique visitors did my Mintlify docs have last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Your Mintlify project id, shown on the API keys page of the dashboard.","maxLength":200,"title":"Project Id","type":"string"},"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data from this date on (ISO 8601 or YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this date (ISO 8601 or YYYY-MM-DD); the date itself is excluded.","title":"Date To"},"limit":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many pages to return (1 to 250, default 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many pages to skip, for paging while hasMore is true.","title":"Offset"}},"required":["project_id"],"title":"get_unique_visitorsArguments","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_search_queries":{"post":{"operationId":"get_search_queries","summary":"Get what visitors searched for in the docs, most frequent first, with hits, click-through rate, most clicked page and la","description":"Get what visitors searched for in the docs, most frequent first, with hits, click-through rate, most clicked page and last time searched. Use for \"What do people search for in my Mintlify docs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Your Mintlify project id, shown on the API keys page of the dashboard.","maxLength":200,"title":"Project Id","type":"string"},"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data from this date on (ISO 8601 or YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this date (ISO 8601 or YYYY-MM-DD); the date itself is excluded.","title":"Date To"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many search terms to return (1 to 100, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from nextCursor of the previous answer.","title":"Cursor"}},"required":["project_id"],"title":"get_search_queriesArguments","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_feedback":{"post":{"operationId":"get_feedback","summary":"Get reader feedback on docs pages: page, comment, kind (page rating, code snippet or agent), status and time. Contact e-","description":"Get reader feedback on docs pages: page, comment, kind (page rating, code snippet or agent), status and time. Contact e-mails are not returned. Use for \"What feedback did my Mintlify docs get this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Your Mintlify project id, shown on the API keys page of the dashboard.","maxLength":200,"title":"Project Id","type":"string"},"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data from this date on (ISO 8601 or YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this date (ISO 8601 or YYYY-MM-DD); the date itself is excluded.","title":"Date To"},"source":{"anyOf":[{"enum":["code_snippet","contextual","agent","thumbs_only"],"type":"string"},{"type":"null"}],"default":null,"description":"Only feedback of this kind.","title":"Source"},"status":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only feedback with these statuses, comma separated (pending, in_progress, resolved, dismissed).","title":"Status"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many entries to return (1 to 100, default 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from nextCursor of the previous answer.","title":"Cursor"}},"required":["project_id"],"title":"get_feedbackArguments","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_feedback_by_page":{"post":{"operationId":"get_feedback_by_page","summary":"Get feedback counts per docs page: thumbs up, thumbs down, code snippet reports and total. Use for \"Which Mintlify docs ","description":"Get feedback counts per docs page: thumbs up, thumbs down, code snippet reports and total. Use for \"Which Mintlify docs pages get the most thumbs down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Your Mintlify project id, shown on the API keys page of the dashboard.","maxLength":200,"title":"Project Id","type":"string"},"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data from this date on (ISO 8601 or YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this date (ISO 8601 or YYYY-MM-DD); the date itself is excluded.","title":"Date To"},"source":{"anyOf":[{"enum":["code_snippet","contextual","agent","thumbs_only"],"type":"string"},{"type":"null"}],"default":null,"description":"Only feedback of this kind.","title":"Source"},"status":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only feedback with these statuses, comma separated (pending, in_progress, resolved, dismissed).","title":"Status"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many pages to return (1 to 100, default 10).","title":"Limit"}},"required":["project_id"],"title":"get_feedback_by_pageArguments","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_assistant_caller_stats":{"post":{"operationId":"get_assistant_caller_stats","summary":"Get how many AI assistant queries came from the docs website, from the API and from other callers. Use for \"Where do my ","description":"Get how many AI assistant queries came from the docs website, from the API and from other callers. Use for \"Where do my Mintlify assistant queries come from\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Your Mintlify project id, shown on the API keys page of the dashboard.","maxLength":200,"title":"Project Id","type":"string"},"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data from this date on (ISO 8601 or YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only data before this date (ISO 8601 or YYYY-MM-DD); the date itself is excluded.","title":"Date To"}},"required":["project_id"],"title":"get_assistant_caller_statsArguments","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}}}}