{"openapi":"3.1.0","info":{"title":"Tabby (BYOK) API","version":"0.1.0","description":"Tabby (BYOK) lets an AI assistant read your own Tabby data through the Tabby API with a key you supply (secret key (sk_...)). Read-only: 4 tools (list_payments, get_payment, list_disputes, get_dispute). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.tabby.ai. Unofficial connector by Unify Dynamics LLC: not...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tabby.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tabby/docs"},"termsOfService":"https://connectorbay.com/byok-tabby/terms"},"servers":[{"url":"https://byok-tabby.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tabby/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_payments":{"post":{"operationId":"list_payments","summary":"List successful Tabby payments (authorized or closed by default), newest first, with amount, currency, status, order ref","description":"List successful Tabby payments (authorized or closed by default), newest first, with amount, currency, status, order reference, captures and refunds. Buyer and address details are not returned. Use for \"Which Tabby payments were captured this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"created_at_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Payments created on or after this date, for example 2026-01-23 (starts at 00:00:00 UTC).","title":"Created At Gte"},"created_at_lte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Payments created on or before this ISO 8601 date or date-time.","title":"Created At Lte"},"status":{"anyOf":[{"enum":["authorized","closed","rejected","new","captured","refunded","cancelled"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this status: authorized, closed, rejected, new, captured, refunded or cancelled.","title":"Status"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many payments to return (maximum 20).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, starting at 0.","title":"Offset"}},"title":"list_paymentsArguments","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_payment":{"post":{"operationId":"get_payment","summary":"Get one Tabby payment by id with status, amount, order reference, captures and refunds. Buyer and address details are no","description":"Get one Tabby payment by id with status, amount, order reference, captures and refunds. Buyer and address details are not returned. Use for \"Show Tabby payment details for id 6e9e1c2d-0000-0000-0000-000000000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_id":{"description":"Tabby payment id (UUID).","maxLength":200,"title":"Payment Id","type":"string"}},"required":["payment_id"],"title":"get_paymentArguments","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_disputes":{"post":{"operationId":"list_disputes","summary":"List the 100 most recent disputes with status, reason, amount, deadline and the order number; filter by status or creati","description":"List the 100 most recent disputes with status, reason, amount, deadline and the order number; filter by status or creation time. Live keys only. Page with next_page_token. Use for \"Which Tabby disputes are still waiting for my evidence\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"statuses":{"anyOf":[{"enum":["new","declined","cancelled","refunded","in_progress","evidence_merchant","evidence_customer"],"type":"string"},{"type":"null"}],"default":null,"description":"Only disputes in this status.","title":"Statuses"},"created_at_gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Disputes created at or after this ISO 8601 time, for example 2022-12-01T00:00:00Z.","title":"Created At Gte"},"created_at_lte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Disputes created at or before this ISO 8601 time.","title":"Created At Lte"},"page_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Value of next_page_token from the previous answer, for the next page.","title":"Page Token"}},"title":"list_disputesArguments","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_dispute":{"post":{"operationId":"get_dispute","summary":"Get one Tabby dispute by id with status, reason, amount, expiry date, days left and the merchant comment. Use for \"Show ","description":"Get one Tabby dispute by id with status, reason, amount, expiry date, days left and the merchant comment. Use for \"Show Tabby dispute 0a1b2c3d-0000-0000-0000-000000000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dispute_id":{"description":"Dispute id from list_disputes.","maxLength":200,"title":"Dispute Id","type":"string"}},"required":["dispute_id"],"title":"get_disputeArguments","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}}}}