{"openapi":"3.1.0","info":{"title":"Respan (BYOK) API","version":"0.1.0","description":"Respan (BYOK) lets an AI assistant read your own Respan data through the Respan API with a key you supply (Respan API key (read permission is enough)). Read-only: 8 tools (list_prompts, search_prompts, get_prompt_summary, get_prompt, list_prompt_versions, get_prompt_version, list_response_format_presets, get_response_format_preset). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-respan-prompts.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-respan-prompts/docs"},"termsOfService":"https://connectorbay.com/byok-respan-prompts/terms"},"servers":[{"url":"https://byok-respan-prompts.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-respan-prompts/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_prompts":{"post":{"operationId":"list_prompts","summary":"List the prompts in the workspace with id, name, slug, description, tags and the model and version number of the current","description":"List the prompts in the workspace with id, name, slug, description, tags and the model and version number of the current and the deployed (live) version. Use for \"Which prompts do I manage in Respan and which version of each is live\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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":25,"description":"Prompts per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["-id","id","-current_version__updated_at","current_version__updated_at"],"type":"string"},{"type":"null"}],"default":"-id","description":"Sort field; prefix with - for descending. One of -id, id, -current_version__updated_at, current_version__updated_at.","title":"Sort By"}},"title":"list_promptsArguments","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/search_prompts":{"post":{"operationId":"search_prompts","summary":"List prompts whose name contains a piece of text (case-insensitive), with the same fields as list_prompts. Use for \"Find","description":"List prompts whose name contains a piece of text (case-insensitive), with the same fields as list_prompts. Use for \"Find my Respan prompts with 'support' in the name\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_contains":{"description":"Text the prompt name must contain, for example 'support'.","maxLength":100,"title":"Name Contains","type":"string"},"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":25,"description":"Prompts per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["-id","id","-current_version__updated_at","current_version__updated_at"],"type":"string"},{"type":"null"}],"default":"-id","description":"Sort field; prefix with - for descending. One of -id, id, -current_version__updated_at, current_version__updated_at.","title":"Sort By"}},"required":["name_contains"],"title":"search_promptsArguments","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_prompt_summary":{"post":{"operationId":"get_prompt_summary","summary":"Count the prompts in the workspace. Use for \"How many prompts do I have in Respan\".","description":"Count the prompts in the workspace. Use for \"How many prompts do I have in Respan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_prompt_summaryArguments","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_prompt":{"post":{"operationId":"get_prompt","summary":"Get one prompt: name, slug, description, tags and the model and version number of its current and live versions. Use for","description":"Get one prompt: name, slug, description, tags and the model and version number of its current and live versions. Use for \"Show the details of the Respan prompt prompt_abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prompt_id":{"description":"Respan prompt id, as returned by list_prompts (the id field).","maxLength":200,"title":"Prompt Id","type":"string"}},"required":["prompt_id"],"title":"get_promptArguments","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_prompt_versions":{"post":{"operationId":"list_prompt_versions","summary":"List the versions of a prompt, newest first, with model, sampling settings, deployment flag and dates (the message text ","description":"List the versions of a prompt, newest first, with model, sampling settings, deployment flag and dates (the message text is not returned). Use for \"What versions does the Respan prompt prompt_abc123 have and which one is deployed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prompt_id":{"description":"Respan prompt id, as returned by list_prompts (the id field).","maxLength":200,"title":"Prompt Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Versions per page (1 to 500).","title":"Page Size"}},"required":["prompt_id"],"title":"list_prompt_versionsArguments","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_prompt_version":{"post":{"operationId":"get_prompt_version","summary":"Get one version of a prompt: model, sampling settings, fallback models, deployment flag and dates (the message text is n","description":"Get one version of a prompt: model, sampling settings, fallback models, deployment flag and dates (the message text is not returned). Use for \"Show version 3 of the Respan prompt prompt_abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prompt_id":{"description":"Respan prompt id, as returned by list_prompts (the id field).","maxLength":200,"title":"Prompt Id","type":"string"},"version":{"description":"Version number, for example 3.","maximum":100000,"minimum":1,"title":"Version","type":"integer"}},"required":["prompt_id","version"],"title":"get_prompt_versionArguments","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_response_format_presets":{"post":{"operationId":"list_response_format_presets","summary":"List the saved response-format presets (names and dates only; use get_response_format_preset for the schema). Use for \"W","description":"List the saved response-format presets (names and dates only; use get_response_format_preset for the schema). Use for \"Which response format presets are saved in Respan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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":50,"description":"Presets per page (1 to 100).","title":"Page Size"}},"title":"list_response_format_presetsArguments","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_response_format_preset":{"post":{"operationId":"get_response_format_preset","summary":"Get one saved response-format preset: its name, dates, enforcement flag and the JSON schema text. Use for \"Show the Resp","description":"Get one saved response-format preset: its name, dates, enforcement flag and the JSON schema text. Use for \"Show the Respan response format preset rfp_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Preset id, as returned by list_response_format_presets.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_response_format_presetArguments","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}}}}