{"openapi":"3.1.0","info":{"title":"Gist (BYOK) API","version":"0.1.0","description":"Gist (BYOK) lets an AI assistant read your own Gist data through the Gist API with a key you supply (Gist workspace API key (Settings > Integrations > API)). Read-only: 9 tools (list_contacts, get_contact, get_conversation, list_tags, list_segments, list_forms, list_campaigns, list_events, get_workspace_info). 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-gist.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-gist/docs"},"termsOfService":"https://connectorbay.com/byok-gist/terms"},"servers":[{"url":"https://byok-gist.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-gist/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_contacts":{"post":{"operationId":"list_contacts","summary":"List Gist contacts (users and leads) with email, name, phone, activity times, location, tags, segments and custom proper","description":"List Gist contacts (users and leads) with email, name, phone, activity times, location, tags, segments and custom properties. Use for \"Who are the newest contacts in Gist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc by order_by (default desc).","title":"Order"},"order_by":{"anyOf":[{"enum":["last_seen_at","created_at","updated_at","signed_up_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: last_seen_at, created_at (default), updated_at or signed_up_at.","title":"Order By"},"status":{"anyOf":[{"enum":["active","unsubscribed","bounced"],"type":"string"},{"type":"null"}],"default":null,"description":"Email subscription status: active, unsubscribed or bounced.","title":"Status"},"created_since":{"anyOf":[{"maximum":36500,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only contacts created in the last this many days.","title":"Created Since"},"email_like":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only contacts whose email contains this text.","title":"Email Like"},"segment_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only contacts in this segment id (from list_segments).","title":"Segment Id"},"tag_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only contacts with this tag id (from list_tags).","title":"Tag Id"},"campaign_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only contacts subscribed to this campaign id (from list_campaigns).","title":"Campaign Id"},"form_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only contacts who submitted this form id (from list_forms).","title":"Form Id"},"per_page":{"anyOf":[{"maximum":60,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 60, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_contactsArguments","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 Gist contact by id. Use for \"Show Gist contact 179351\".","description":"Get one Gist contact by id. Use for \"Show Gist contact 179351\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"contact_id":{"description":"Gist contact id.","maximum":999999999999,"minimum":1,"title":"Contact Id","type":"integer"}},"required":["contact_id"],"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_conversation":{"post":{"operationId":"get_conversation","summary":"Get one Gist conversation: channel, state, assignee, participants, tags, priority, rating and statistics. Use for \"Show ","description":"Get one Gist conversation: channel, state, assignee, participants, tags, priority, rating and statistics. Use for \"Show Gist conversation 1911149811\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Gist conversation id.","maximum":99999999999999,"minimum":1,"title":"Conversation Id","type":"integer"}},"required":["conversation_id"],"title":"get_conversationArguments","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 the tags defined in the Gist workspace. Use for \"Which tags exist in Gist\".","description":"List the tags defined in the Gist workspace. Use for \"Which tags exist in Gist\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":60,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 60, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"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_segments":{"post":{"operationId":"list_segments","summary":"List Gist segments with name and, when asked, the number of contacts in each. Use for \"How many contacts are in each Gis","description":"List Gist segments with name and, when asked, the number of contacts in each. Use for \"How many contacts are in each Gist segment\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_count":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the contact count of each segment.","title":"Include Count"},"per_page":{"anyOf":[{"maximum":60,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 60, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_segmentsArguments","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_forms":{"post":{"operationId":"list_forms","summary":"List Gist forms with title, type, status and field definitions. Use for \"Which Gist forms are live\".","description":"List Gist forms with title, type, status and field definitions. Use for \"Which Gist forms are live\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_formsArguments","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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List Gist email campaigns with status, email count, subscriber counts and open and click rates. Use for \"How are my Gist","description":"List Gist email campaigns with status, email count, subscriber counts and open and click rates. Use for \"How are my Gist campaigns performing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":60,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 60, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_campaignsArguments","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_events":{"post":{"operationId":"list_events","summary":"List the tracked event names defined in the Gist workspace. Use for \"Which events does Gist track\".","description":"List the tracked event names defined in the Gist workspace. Use for \"Which events does Gist track\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":"all","description":"Which events to list; the docs example uses all.","title":"Event Type"},"per_page":{"anyOf":[{"maximum":60,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records per page (1 to 60, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_eventsArguments","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_workspace_info":{"post":{"operationId":"get_workspace_info","summary":"Show the workspace the key belongs to: workspace id, app id, token scope and creation time. Use for \"Which Gist workspac","description":"Show the workspace the key belongs to: workspace id, app id, token scope and creation time. Use for \"Which Gist workspace is my key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_workspace_infoArguments","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}}}}