{"openapi":"3.1.0","info":{"title":"Streak (BYOK) API","version":"0.1.0","description":"Streak (BYOK) lets an AI assistant read your own Streak data through the Streak API with a key you supply (Streak API key). Read-only: 11 tools (get_current_user, list_pipelines, get_pipeline, list_stages, list_boxes_in_pipeline, get_box, list_box_tasks, list_box_comments, search, get_contact, get_organization). 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-streak.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-streak/docs"},"termsOfService":"https://connectorbay.com/byok-streak/terms"},"servers":[{"url":"https://byok-streak.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-streak/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_current_user":{"post":{"operationId":"get_current_user","summary":"Show the Streak user the key belongs to: email, display name and last seen time. Use for \"Which Streak user is my API ke","description":"Show the Streak user the key belongs to: email, display name and last seen time. Use for \"Which Streak user is my API key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_userArguments","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_pipelines":{"post":{"operationId":"list_pipelines","summary":"List the Streak pipelines you can access, with name, stages, fields and sharing. Times are in milliseconds since the epo","description":"List the Streak pipelines you can access, with name, stages, fields and sharing. Times are in milliseconds since the epoch. Use for \"What Streak pipelines do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort_by":{"anyOf":[{"enum":["creationTimestamp","lastUpdatedTimestamp"],"type":"string"},{"type":"null"}],"default":null,"description":"Order pipelines by creationTimestamp or lastUpdatedTimestamp.","title":"Sort By"}},"title":"list_pipelinesArguments","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_pipeline":{"post":{"operationId":"get_pipeline","summary":"Get one Streak pipeline by key: name, description, custom field definitions and stages. Use for \"Show the Streak pipelin","description":"Get one Streak pipeline by key: name, description, custom field definitions and stages. Use for \"Show the Streak pipeline agptYWlb3cYMww\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_key":{"description":"Streak pipeline key (a short opaque string such as 'agptYWlb3cYMww'), from list_pipelines.","maxLength":200,"title":"Pipeline Key","type":"string"}},"required":["pipeline_key"],"title":"get_pipelineArguments","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_stages":{"post":{"operationId":"list_stages","summary":"List the stages of a Streak pipeline as a map of stage key to name. Use for \"What stages does Streak pipeline agptYWlb3c","description":"List the stages of a Streak pipeline as a map of stage key to name. Use for \"What stages does Streak pipeline agptYWlb3cYMww have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_key":{"description":"Streak pipeline key (a short opaque string such as 'agptYWlb3cYMww'), from list_pipelines.","maxLength":200,"title":"Pipeline Key","type":"string"}},"required":["pipeline_key"],"title":"list_stagesArguments","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_boxes_in_pipeline":{"post":{"operationId":"list_boxes_in_pipeline","summary":"List the boxes (deals, candidates, records) of a Streak pipeline with name, stage, custom field values and counts of com","description":"List the boxes (deals, candidates, records) of a Streak pipeline with name, stage, custom field values and counts of comments, tasks, threads and files. Use for \"Show the boxes in Streak pipeline agptYWlb3cYMww\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pipeline_key":{"description":"Streak pipeline key (a short opaque string such as 'agptYWlb3cYMww'), from list_pipelines.","maxLength":200,"title":"Pipeline Key","type":"string"},"stage_key":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only boxes in this stage (stage keys look like '5001'; see list_stages).","title":"Stage Key"},"sort_by":{"anyOf":[{"enum":["creationTimestamp","lastUpdatedTimestamp"],"type":"string"},{"type":"null"}],"default":null,"description":"Order boxes by creationTimestamp or lastUpdatedTimestamp.","title":"Sort By"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many boxes to return per page (this connector allows up to 200).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to view; use it to read further boxes.","title":"Page"}},"required":["pipeline_key"],"title":"list_boxes_in_pipelineArguments","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_box":{"post":{"operationId":"get_box","summary":"Get one Streak box by key: name, notes, stage, custom field values, followers and counts. Use for \"Show Streak box agptY","description":"Get one Streak box by key: name, notes, stage, custom field values, followers and counts. Use for \"Show Streak box agptYWRh-DA\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"box_key":{"description":"Streak box key (a box is one deal, candidate or record), from list_boxes_in_pipeline or search.","maxLength":200,"title":"Box Key","type":"string"}},"required":["box_key"],"title":"get_boxArguments","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_box_tasks":{"post":{"operationId":"list_box_tasks","summary":"List the tasks attached to a Streak box with text, status, due date and assignees. Use for \"What tasks are on Streak box","description":"List the tasks attached to a Streak box with text, status, due date and assignees. Use for \"What tasks are on Streak box agptYWRh-DA\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"box_key":{"description":"Streak box key (a box is one deal, candidate or record), from list_boxes_in_pipeline or search.","maxLength":200,"title":"Box Key","type":"string"}},"required":["box_key"],"title":"list_box_tasksArguments","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_box_comments":{"post":{"operationId":"list_box_comments","summary":"List the comments on a Streak box with message and time. Use for \"What comments are on Streak box agptYWRh-DA\".","description":"List the comments on a Streak box with message and time. Use for \"What comments are on Streak box agptYWRh-DA\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"box_key":{"description":"Streak box key (a box is one deal, candidate or record), from list_boxes_in_pipeline or search.","maxLength":200,"title":"Box Key","type":"string"}},"required":["box_key"],"title":"list_box_commentsArguments","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":{"post":{"operationId":"search","summary":"Search Streak boxes, contacts and organizations by text, optionally limited to one pipeline or stage. Use for \"Search St","description":"Search Streak boxes, contacts and organizations by text, optionally limited to one pipeline or stage. Use for \"Search Streak for Batman\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Search text.","maxLength":200,"title":"Query","type":"string"},"pipeline_key":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only search boxes of this pipeline.","title":"Pipeline Key"},"stage_key":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only search boxes in this stage (for example '5001').","title":"Stage Key"}},"required":["query"],"title":"searchArguments","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_contact":{"post":{"operationId":"get_contact","summary":"Get one Streak contact by key: email addresses and creation date. Use for \"Show Streak contact VGVhbUNvbnRhY3Q\".","description":"Get one Streak contact by key: email addresses and creation date. Use for \"Show Streak contact VGVhbUNvbnRhY3Q\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"contact_key":{"description":"Streak contact key.","maxLength":200,"title":"Contact Key","type":"string"}},"required":["contact_key"],"title":"get_contactArguments","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_organization":{"post":{"operationId":"get_organization","summary":"Get one Streak organization by key: name, domains, industry, size, addresses and social handles. Use for \"Show Streak or","description":"Get one Streak organization by key: name, domains, industry, size, addresses and social handles. Use for \"Show Streak organization VGV2xvb\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_key":{"description":"Streak organization key.","maxLength":200,"title":"Organization Key","type":"string"}},"required":["organization_key"],"title":"get_organizationArguments","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}}}}