{"openapi":"3.1.0","info":{"title":"Yandex Market (BYOK) API","version":"0.1.0","description":"Yandex Market (BYOK) lets an AI assistant read your own Yandex Market data through the Yandex Market API with a key you supply (Yandex Market API key). Read-only: 12 tools (list_campaigns, get_campaign, get_campaign_settings, list_business_orders, get_order, list_returns, list_offer_prices, list_offer_mappings, list_stock_balances, list_goods_feedback, list_goods_questions, search_regions). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-yandexmarket.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-yandexmarket/docs"},"termsOfService":"https://connectorbay.com/byok-yandexmarket/terms"},"servers":[{"url":"https://byok-yandexmarket.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-yandexmarket/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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List the stores (campaigns) the key can use, with domain, campaign id, business id and name, placement model (FBS, FBY, ","description":"List the stores (campaigns) the key can use, with domain, campaign id, business id and name, placement model (FBS, FBY, DBS, LAAS) and whether API access is enabled. Use for \"Which Yandex Market stores does my key give access to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"}},"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/get_campaign":{"post":{"operationId":"get_campaign","summary":"Get one Yandex Market store: domain, business, placement model and API availability. Use for \"Is API access enabled for ","description":"Get one Yandex Market store: domain, business, placement model and API availability. Use for \"Is API access enabled for Yandex Market campaign 12345678\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Yandex Market campaign (store) id; list_campaigns returns it.","maximum":9999999999,"minimum":1,"title":"Campaign Id","type":"integer"}},"required":["campaign_id"],"title":"get_campaignArguments","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_campaign_settings":{"post":{"operationId":"get_campaign_settings","summary":"Get a store's settings: shop name, country region id, local region, VAT scheme and display options. Use for \"What VAT se","description":"Get a store's settings: shop name, country region id, local region, VAT scheme and display options. Use for \"What VAT setting does my Yandex Market store use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Yandex Market campaign (store) id; list_campaigns returns it.","maximum":9999999999,"minimum":1,"title":"Campaign Id","type":"integer"}},"required":["campaign_id"],"title":"get_campaign_settingsArguments","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_business_orders":{"post":{"operationId":"list_business_orders","summary":"List orders across a business (all stores), with status, dates, payment type, delivery type, prices and items. Read only","description":"List orders across a business (all stores), with status, dates, payment type, delivery type, prices and items. Read only; max range between dates is 30 days. Newer replacement of the per-store order list. Use for \"Which Yandex Market orders were created this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"business_id":{"description":"Yandex Market business (cabinet) id; list_campaigns returns it as business.id.","maximum":9999999999,"minimum":1,"title":"Business Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Limit"},"creation_date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest order creation date, YYYY-MM-DD (inclusive). Maximum 30 days to creation_date_to. Defaults to 30 days ago.","title":"Creation Date From"},"creation_date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest order creation date, YYYY-MM-DD (not inclusive). Defaults to today.","title":"Creation Date To"},"update_date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest order update date, YYYY-MM-DD.","title":"Update Date From"},"update_date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Latest order update date, YYYY-MM-DD.","title":"Update Date To"},"fake":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only test orders, false for real orders only. Leave out for the API default.","title":"Fake"}},"required":["business_id"],"title":"list_business_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}},"/v1/tools/get_order":{"post":{"operationId":"get_order","summary":"Get one order of a store by id: status, dates, currency, totals, payment, delivery type and the ordered items. Use for \"","description":"Get one order of a store by id: status, dates, currency, totals, payment, delivery type and the ordered items. Use for \"Show Yandex Market order 1001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Yandex Market campaign (store) id; list_campaigns returns it.","maximum":9999999999,"minimum":1,"title":"Campaign Id","type":"integer"},"order_id":{"description":"Order id from the order list.","maximum":9999999999999,"minimum":1,"title":"Order Id","type":"integer"}},"required":["campaign_id","order_id"],"title":"get_orderArguments","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_returns":{"post":{"operationId":"list_returns","summary":"List unredeemed orders and returns of a store with refund status, shipment status, dates and amounts. Filter by type or ","description":"List unredeemed orders and returns of a store with refund status, shipment status, dates and amounts. Filter by type or update date. Use for \"Which Yandex Market returns are waiting for a decision\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Yandex Market campaign (store) id; list_campaigns returns it.","maximum":9999999999,"minimum":1,"title":"Campaign Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"type":{"anyOf":[{"enum":["UNREDEEMED","RETURN"],"type":"string"},{"type":"null"}],"default":null,"description":"UNREDEEMED for orders the buyer never picked up, RETURN for returns. Leave out for both.","title":"Type"},"from_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries updated from this date, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries updated up to this date, YYYY-MM-DD.","title":"To Date"}},"required":["campaign_id"],"title":"list_returnsArguments","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_offer_prices":{"post":{"operationId":"list_offer_prices","summary":"List the prices you set on products in a store, by offer id, with market SKU and update time. Use for \"What prices are s","description":"List the prices you set on products in a store, by offer id, with market SKU and update time. Use for \"What prices are set on my Yandex Market products\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"Yandex Market campaign (store) id; list_campaigns returns it.","maximum":9999999999,"minimum":1,"title":"Campaign Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (1 to 500).","title":"Limit"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list archived products only.","title":"Archived"}},"required":["campaign_id"],"title":"list_offer_pricesArguments","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_offer_mappings":{"post":{"operationId":"list_offer_mappings","summary":"List the products of a business catalog with offer id, name, category, vendor, price, card status and archive flag. The ","description":"List the products of a business catalog with offer id, name, category, vendor, price, card status and archive flag. The answer carries the full product records, so keep the limit small. Use for \"Show my Yandex Market product catalog\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"business_id":{"description":"Yandex Market business (cabinet) id; list_campaigns returns it as business.id.","maximum":9999999999,"minimum":1,"title":"Business Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return (1 to 100).","title":"Limit"},"language":{"anyOf":[{"enum":["RU","UZ"],"type":"string"},{"type":"null"}],"default":null,"description":"Language of names and descriptions.","title":"Language"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for archived products only, false for active products only. Leave out for the API default.","title":"Archived"}},"required":["business_id"],"title":"list_offer_mappingsArguments","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_stock_balances":{"post":{"operationId":"list_stock_balances","summary":"List stock counts (available, frozen, quarantined and so on) per offer on a partner warehouse of a business. Use for \"Ho","description":"List stock counts (available, frozen, quarantined and so on) per offer on a partner warehouse of a business. Use for \"How much stock do I have on Yandex Market warehouse 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"business_id":{"description":"Yandex Market business (cabinet) id; list_campaigns returns it as business.id.","maximum":9999999999,"minimum":1,"title":"Business Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 100).","title":"Limit"},"partner_warehouse_id":{"anyOf":[{"maximum":9999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Your own warehouse id as registered in Yandex Market. Leave out for all warehouses.","title":"Partner Warehouse Id"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived products only.","title":"Archived"}},"required":["business_id"],"title":"list_stock_balancesArguments","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_goods_feedback":{"post":{"operationId":"list_goods_feedback","summary":"List customer reviews of your products with rating, text, offer id, order id and whether a reaction is needed. Use for \"","description":"List customer reviews of your products with rating, text, offer id, order id and whether a reaction is needed. Use for \"Which Yandex Market product reviews still need a reaction\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"business_id":{"description":"Yandex Market business (cabinet) id; list_campaigns returns it as business.id.","maximum":9999999999,"minimum":1,"title":"Business Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Limit"},"reaction_status":{"anyOf":[{"enum":["ALL","NEED_REACTION"],"type":"string"},{"type":"null"}],"default":null,"description":"ALL for every review, NEED_REACTION for reviews that still need an answer.","title":"Reaction Status"},"date_time_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the period, not inclusive, ISO 8601 such as 2026-09-01T00:00:00+03:00. Maximum span 6 months.","title":"Date Time From"},"date_time_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the period, not inclusive, ISO 8601.","title":"Date Time To"}},"required":["business_id"],"title":"list_goods_feedbackArguments","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_goods_questions":{"post":{"operationId":"list_goods_questions","summary":"List buyer questions about your products, newest or oldest first, optionally only those still unanswered. Use for \"Which","description":"List buyer questions about your products, newest or oldest first, optionally only those still unanswered. Use for \"Which questions about my Yandex Market products are unanswered\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"business_id":{"description":"Yandex Market business (cabinet) id; list_campaigns returns it as business.id.","maximum":9999999999,"minimum":1,"title":"Business Id","type":"integer"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 50).","title":"Limit"},"need_answer":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only questions without an answer.","title":"Need Answer"},"sort":{"anyOf":[{"enum":["CREATED_AT_DESC","CREATED_AT_ASC"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time.","title":"Sort"}},"required":["business_id"],"title":"list_goods_questionsArguments","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_regions":{"post":{"operationId":"search_regions","summary":"Search Yandex Market regions by name (capitalised first letter, rest lower case) to get region ids with type and parent ","description":"Search Yandex Market regions by name (capitalised first letter, rest lower case) to get region ids with type and parent region. Use for \"What is the Yandex Market region id for Tashkent\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Region name; first letter capital, others lower case, for example Tashkent.","maxLength":100,"title":"Name","type":"string"},"page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Page token from paging.nextPageToken of the previous answer; leave out for the first page.","title":"Page Token"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return (1 to 20).","title":"Limit"}},"required":["name"],"title":"search_regionsArguments","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}}}}