{"openapi":"3.1.0","info":{"title":"Gumroad (BYOK) API","version":"0.1.0","description":"Gumroad (BYOK) lets an AI assistant read your own Gumroad data through the Gumroad API with a key you supply (Gumroad access token (view_sales and view_payouts scopes recommended)). Read-only: 9 tools (get_user, list_products, get_product, list_sales, get_sale, list_subscribers, list_payouts, get_payout, get_earnings). 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-gumroad.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-gumroad/docs"},"termsOfService":"https://connectorbay.com/byok-gumroad/terms"},"servers":[{"url":"https://byok-gumroad.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-gumroad/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_user":{"post":{"operationId":"get_user","summary":"Get the authenticated account: user id, name, bio and profile URL. Use for \"Which Gumroad account is this token for\".","description":"Get the authenticated account: user id, name, bio and profile URL. Use for \"Which Gumroad account is this token for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_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_products":{"post":{"operationId":"list_products","summary":"List your products with name, price, status, short URL, category, tags, membership recurrences, sales count and variants","description":"List your products with name, price, status, short URL, category, tags, membership recurrences, sales count and variants. Use for \"Which Gumroad products do I sell and how many sold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_productsArguments","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_product":{"post":{"operationId":"get_product","summary":"Get one product with name, price, status, short URL, category, tags, membership options, sales count and variants. Use f","description":"Get one product with name, price, status, short URL, category, tags, membership options, sales count and variants. Use for \"Show my Gumroad product A-m3CDDC5dlrSdKZp0RFhA==\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Product id from list_products.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_productArguments","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_sales":{"post":{"operationId":"list_sales","summary":"List successful sales (newest first) with product, price, fees, tax, currency, refund, chargeback and subscription flags","description":"List successful sales (newest first) with product, price, fees, tax, currency, refund, chargeback and subscription flags; filter by product, order and dates. Buyer details are not returned. Use for \"What did I sell on Gumroad in September\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only sales after this date, YYYY-MM-DD.","title":"After"},"before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only sales before this date, YYYY-MM-DD.","title":"Before"},"product_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only sales of this product id.","title":"Product Id"},"order_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only this order id.","title":"Order Id"},"page_key":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Value of next_page_key from the previous answer, for the next page.","title":"Page Key"}},"title":"list_salesArguments","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_sale":{"post":{"operationId":"get_sale","summary":"Get one sale by id with product, price, fees, tax, currency and refund, chargeback and dispute flags. Buyer details are ","description":"Get one sale by id with product, price, fees, tax, currency and refund, chargeback and dispute flags. Buyer details are not returned. Use for \"Show Gumroad sale B28UKN-dvxYabdavG97Y-Q==\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Sale id from list_sales.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_saleArguments","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_subscribers":{"post":{"operationId":"list_subscribers","summary":"List the active subscribers of one membership product with status, billing recurrence and cancellation, failure and tria","description":"List the active subscribers of one membership product with status, billing recurrence and cancellation, failure and trial dates. Email and license key are not returned. Use for \"How many active subscribers does my Gumroad membership have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"product_id":{"description":"Product id from list_products.","maxLength":200,"title":"Product Id","type":"string"},"paginated":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true to limit the answer to 100 subscribers and get a next_page_key.","title":"Paginated"},"page_key":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Value of next_page_key from the previous answer, for the next page.","title":"Page Key"}},"required":["product_id"],"title":"list_subscribersArguments","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_payouts":{"post":{"operationId":"list_payouts","summary":"List payouts with amount, currency, status, creation and processing time and payment processor, optionally between two d","description":"List payouts with amount, currency, status, creation and processing time and payment processor, optionally between two dates. Bank and PayPal details are not returned. Use for \"When was my last Gumroad payout and how much\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only payouts after this date, YYYY-MM-DD.","title":"After"},"before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only payouts before this date, YYYY-MM-DD.","title":"Before"},"include_upcoming":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"false to leave out the upcoming payout.","title":"Include Upcoming"},"page_key":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Value of next_page_key from the previous answer, for the next page.","title":"Page Key"}},"title":"list_payoutsArguments","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_payout":{"post":{"operationId":"get_payout","summary":"Get one payout with amount, status, dates and the ids of the sales, refunded sales and disputed sales it covers. Use for","description":"Get one payout with amount, status, dates and the ids of the sales, refunded sales and disputed sales it covers. Use for \"Which sales were in Gumroad payout fEGTaEpuKDsnDvf_MfecTA==\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Payout id from list_payouts.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_payoutArguments","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_earnings":{"post":{"operationId":"get_earnings","summary":"Get the annual earnings breakdown for a tax year (gross, fees, taxes, affiliate credit, net) as in the Tax Center. US-ba","description":"Get the annual earnings breakdown for a tax year (gross, fees, taxes, affiliate credit, net) as in the Tax Center. US-based sellers only. Use for \"What were my Gumroad earnings in 2025\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"Four-digit tax year, from the account's creation year to last year.","maximum":2100,"minimum":2011,"title":"Year","type":"integer"}},"required":["year"],"title":"get_earningsArguments","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}}}}