{"openapi":"3.1.0","info":{"title":"Salla (BYOK) API","version":"0.1.0","description":"Salla (BYOK) lets an AI assistant read your own Salla data through the Salla API with a key you supply (Salla merchant access token (read scopes such as orders.read and products.read)). Read-only: 11 tools (get_store_info, list_orders, get_order, list_order_statuses, list_products, get_product, list_categories, list_brands, list_shipments, list_branches, list_instant_settlements). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-salla.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-salla/docs"},"termsOfService":"https://connectorbay.com/byok-salla/terms"},"servers":[{"url":"https://byok-salla.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-salla/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_store_info":{"post":{"operationId":"get_store_info","summary":"Show the store the token belongs to: id, name, entity type, plan, live or demo type, status, verification, currency, dom","description":"Show the store the token belongs to: id, name, entity type, plan, live or demo type, status, verification, currency, domain and description. Use for \"Which Salla store is this token for and what plan is it on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_store_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_orders":{"post":{"operationId":"list_orders","summary":"List store orders newest first with reference id, status, total, date, payment method and source. Filter by date range a","description":"List store orders newest first with reference id, status, total, date, payment method and source. Filter by date range and sort; page sequentially from page 1 (30 per page). Use for \"Which Salla orders were placed in January 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items created on or after this date (YYYY-MM-DD).","title":"From Date"},"to_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items created on or before this date (YYYY-MM-DD).","title":"To Date"},"reference_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only the order with this reference id.","title":"Reference Id"},"sort_by":{"anyOf":[{"enum":["id","total","updated_at","created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Sort By"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1 (the API returns an empty page if you skip ahead).","title":"Page"}},"title":"list_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 by id: reference id, status, dates, currency, amount breakdown, payment method, shipping status, type and ","description":"Get one order by id: reference id, status, dates, currency, amount breakdown, payment method, shipping status, type and source (no customer contact details). Use for \"What are the details of Salla order 5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"description":"Numeric id of the order from list_orders.","title":"Order Id","type":"integer"},"format":{"anyOf":[{"const":"light","type":"string"},{"type":"null"}],"default":null,"description":"Use 'light' for a lighter answer.","title":"Format"}},"required":["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_order_statuses":{"post":{"operationId":"list_order_statuses","summary":"List the order statuses of the store (original and custom) with id, name, type, slug, sort order and whether each is act","description":"List the order statuses of the store (original and custom) with id, name, type, slug, sort order and whether each is active. Use for \"Which order statuses does my Salla store use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_order_statusesArguments","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 store products with name, SKU, type, status, price, sale price, stock quantity, sold quantity, rating and last upda","description":"List store products with name, SKU, type, status, price, sale price, stock quantity, sold quantity, rating and last update. Filter by keyword, status and category; page with page and per_page. Use for \"Which Salla products are out of stock\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against product name and SKU.","title":"Keyword"},"status":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Product status such as sale, out or hidden.","title":"Status"},"category":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only products in this category id.","title":"Category"},"per_page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page (leave empty for the default).","title":"Per Page"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1 (the API returns an empty page if you skip ahead).","title":"Page"}},"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 by id: name, SKU, type, status, prices, quantity, weight, shipping need, url, rating, categories and bra","description":"Get one product by id: name, SKU, type, status, prices, quantity, weight, shipping need, url, rating, categories and brand. Use for \"What are the details of Salla product 9\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"product":{"description":"Numeric id of the product from list_products.","title":"Product","type":"integer"}},"required":["product"],"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_categories":{"post":{"operationId":"list_categories","summary":"List product categories with id, name, parent, status, sort order and last update. Use for \"Which product categories doe","description":"List product categories with id, name, parent, status, sort order and last update. Use for \"Which product categories does my Salla store have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against the category name.","title":"Keyword"},"status":{"anyOf":[{"enum":["active","hidden"],"type":"string"},{"type":"null"}],"default":null,"description":"Category status.","title":"Status"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1 (the API returns an empty page if you skip ahead).","title":"Page"}},"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_brands":{"post":{"operationId":"list_brands","summary":"List product brands with id, name, status, description and logo. Use for \"Which brands are set up in my Salla store\".","description":"List product brands with id, name, status, description and logo. Use for \"Which brands are set up in my Salla store\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against the brand name.","title":"Keyword"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1 (the API returns an empty page if you skip ahead).","title":"Page"}},"title":"list_brandsArguments","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_shipments":{"post":{"operationId":"list_shipments","summary":"List shipments with courier, shipping and tracking numbers, status, payment method (prepaid or cash on delivery), source","description":"List shipments with courier, shipping and tracking numbers, status, payment method (prepaid or cash on delivery), source and tracking link (no delivery addresses). Filter by order, courier, status, type and dates. Use for \"Which Salla shipments are still in transit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only shipments of this order id.","title":"Order Id"},"courier_slug":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only shipments of this courier slug.","title":"Courier Slug"},"status":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only shipments with this status.","title":"Status"},"shipment_type":{"anyOf":[{"enum":["shipment","return"],"type":"string"},{"type":"null"}],"default":null,"description":"Shipment or return.","title":"Shipment Type"},"payment_method":{"anyOf":[{"enum":["pre_paid","cod"],"type":"string"},{"type":"null"}],"default":null,"description":"Prepaid or cash on delivery.","title":"Payment Method"},"from_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items created on or after this date (YYYY-MM-DD).","title":"From Date"},"to_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only items created on or before this date (YYYY-MM-DD).","title":"To Date"},"per_page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page (leave empty for the default).","title":"Per Page"}},"title":"list_shipmentsArguments","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_branches":{"post":{"operationId":"list_branches","summary":"List store branches and warehouses with id, name, type, status, short address and postal code. Use for \"Which branches a","description":"List store branches and warehouses with id, name, type, status, short address and postal code. Use for \"Which branches and warehouses does my Salla store have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keyword":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against the branch name.","title":"Keyword"},"branch_code":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only the branch with this code.","title":"Branch Code"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1 (the API returns an empty page if you skip ahead).","title":"Page"}},"title":"list_branchesArguments","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_instant_settlements":{"post":{"operationId":"list_instant_settlements","summary":"List instant settlements (early payouts of order balances) with id, order reference id, amount and status. Use for \"What","description":"List instant settlements (early payouts of order balances) with id, order reference id, amount and status. Use for \"What instant settlements does my Salla store have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"reference_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only the settlement of this order reference id.","title":"Reference Id"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1 (the API returns an empty page if you skip ahead).","title":"Page"}},"title":"list_instant_settlementsArguments","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}}}}