{"openapi":"3.1.0","info":{"title":"CardTrader (BYOK) API","version":"0.1.0","description":"CardTrader (BYOK) lets an AI assistant read your own CardTrader data through the CardTrader API with a key you supply (CardTrader API token). Read-only: 11 tools (get_app_info, list_games, list_categories, list_expansions, list_blueprints, list_marketplace_products, list_wishlists, get_wishlist, list_my_expansions, list_my_products, list_my_orders). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cardtrader.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cardtrader/docs"},"termsOfService":"https://connectorbay.com/byok-cardtrader/terms"},"servers":[{"url":"https://byok-cardtrader.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cardtrader/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_app_info":{"post":{"operationId":"get_app_info","summary":"Show which CardTrader app and user the token belongs to (app id, app name, user id). Use for \"Which CardTrader account i","description":"Show which CardTrader app and user the token belongs to (app id, app name, user id). Use for \"Which CardTrader account is my API token connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_app_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}},"/v1/tools/list_games":{"post":{"operationId":"list_games","summary":"List the games CardTrader sells items for (Magic, Pokemon, Yu-Gi-Oh and others) with ids and names. Use for \"Which games","description":"List the games CardTrader sells items for (Magic, Pokemon, Yu-Gi-Oh and others) with ids and names. Use for \"Which games does CardTrader cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_gamesArguments","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_categories":{"post":{"operationId":"list_categories","summary":"List item categories (single cards, booster boxes, dice and more), optionally for one game, with the properties that des","description":"List item categories (single cards, booster boxes, dice and more), optionally for one game, with the properties that describe items. Use for \"What categories of items exist for Magic on CardTrader\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this game, by the id from list_games (for example 1 for Magic: the Gathering).","title":"Game Id"}},"title":"list_categoriesArguments","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_expansions":{"post":{"operationId":"list_expansions","summary":"List every expansion (set) across all games with its id, game id, short code and name. Use for \"Which expansions does Ca","description":"List every expansion (set) across all games with its id, game id, short code and name. Use for \"Which expansions does CardTrader have, and what is the id of Guilds of Ravnica\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_expansionsArguments","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_blueprints":{"post":{"operationId":"list_blueprints","summary":"List the blueprints (individual printings of cards or products) of one expansion with name, version, category and extern","description":"List the blueprints (individual printings of cards or products) of one expansion with name, version, category and external Scryfall, Cardmarket and TCGplayer ids. Use for \"Which cards are in CardTrader expansion 74\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"expansion_id":{"description":"Expansion (set) id from list_expansions.","minimum":1,"title":"Expansion Id","type":"integer"}},"required":["expansion_id"],"title":"list_blueprintsArguments","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_marketplace_products":{"post":{"operationId":"list_marketplace_products","summary":"Get the cheapest marketplace listings (up to 25 per blueprint) for an expansion or a single blueprint, filterable by foi","description":"Get the cheapest marketplace listings (up to 25 per blueprint) for an expansion or a single blueprint, filterable by foil and language. Give expansion_id or blueprint_id; the answer is keyed by blueprint id. Limited to 1 call per second. Use for \"What is the cheapest English foil listing of blueprint 10050 on CardTrader\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"expansion_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Expansion (set) id from list_expansions. Give this or blueprint_id.","title":"Expansion Id"},"blueprint_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Blueprint id from list_blueprints. Give this or expansion_id.","title":"Blueprint Id"},"foil":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for foil listings only, false for non-foil only; leave out for both.","title":"Foil"},"language":{"anyOf":[{"maxLength":5,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter language code of the item, for example en, it or fr.","title":"Language"}},"title":"list_marketplace_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/list_wishlists":{"post":{"operationId":"list_wishlists","summary":"List your CardTrader wishlists (name, game, whether public), optionally for one game. Use for \"What wishlists do I have ","description":"List your CardTrader wishlists (name, game, whether public), optionally for one game. Use for \"What wishlists do I have on CardTrader\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this game, by the id from list_games (for example 1 for Magic: the Gathering).","title":"Game Id"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Wishlists per page (1 to 100).","title":"Limit"}},"title":"list_wishlistsArguments","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_wishlist":{"post":{"operationId":"get_wishlist","summary":"Get one of your wishlists with its items (card name, set code, quantity, language, condition, foil). Use for \"What cards","description":"Get one of your wishlists with its items (card name, set code, quantity, language, condition, foil). Use for \"What cards are on my CardTrader wishlist 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wishlist_id":{"description":"Wishlist id from list_wishlists.","minimum":1,"title":"Wishlist Id","type":"integer"}},"required":["wishlist_id"],"title":"get_wishlistArguments","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_my_expansions":{"post":{"operationId":"list_my_expansions","summary":"List the expansions in which you currently have products for sale. Use for \"In which expansions do I have CardTrader inv","description":"List the expansions in which you currently have products for sale. Use for \"In which expansions do I have CardTrader inventory\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_my_expansionsArguments","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_my_products":{"post":{"operationId":"list_my_products","summary":"List the products you have for sale (price, quantity, properties), optionally for one expansion or blueprint. Large inve","description":"List the products you have for sale (price, quantity, properties), optionally for one expansion or blueprint. Large inventories can take a long time. Use for \"What do I have for sale on CardTrader from expansion 8\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"expansion_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Expansion (set) id from list_expansions.","title":"Expansion Id"},"blueprint_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Blueprint (one printing of one item) id from list_blueprints.","title":"Blueprint Id"}},"title":"list_my_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/list_my_orders":{"post":{"operationId":"list_my_orders","summary":"List your CardTrader orders as seller or buyer with state, size, payment and shipping dates and totals, filterable by da","description":"List your CardTrader orders as seller or buyer with state, size, payment and shipping dates and totals, filterable by date, id and state. Use for \"Which CardTrader orders did I receive in March 2019\".","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"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Orders per page (1 to 100).","title":"Limit"},"from_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders from this date, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders up to this date, YYYY-MM-DD.","title":"To Date"},"state":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders in this state, for example paid, sent or canceled.","title":"State"},"order_as":{"anyOf":[{"enum":["seller","buyer"],"type":"string"},{"type":"null"}],"default":null,"description":"Your role in the order: seller or buyer.","title":"Order As"},"sort":{"anyOf":[{"enum":["id.asc","id.desc","date.asc","date.desc"],"type":"string"},{"type":"null"}],"default":"date.desc","description":"Order of results as field.direction: id.asc, id.desc, date.asc or date.desc.","title":"Sort"}},"title":"list_my_ordersArguments","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}}}}