{"openapi":"3.1.0","info":{"title":"Easyship Couriers, Boxes and Shipping Rules (your token) API","version":"0.1.0","description":"Easyship Couriers, Boxes and Shipping Rules (your token) lets an AI assistant read your own Easyship Setup data through the Easyship Setup API with a key you supply (API access token (with read scopes)). Read-only: 9 tools (list_courier_services, list_boxes, list_countries, list_states, list_stores, list_tags, list_shipping_rules, get_shipping_rule, list_shipping_rule_actions). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-easyship-setup.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-easyship-setup/docs"},"termsOfService":"https://connectorbay.com/byok-easyship-setup/terms"},"servers":[{"url":"https://byok-easyship-setup.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-easyship-setup/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_courier_services":{"post":{"operationId":"list_courier_services","summary":"List the courier services available on Easyship with courier, service name, country, domestic or international flag, wha","description":"List the courier services available on Easyship with courier, service name, country, domestic or international flag, what each accepts (batteries, liquids, documents, returns) and tracking rating. Use for \"Which international courier services does Easyship offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Per Page"},"sort_by":{"anyOf":[{"enum":["origin_country_id","courier_name","created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: origin_country_id, courier_name or created_at (default).","title":"Sort By"},"sort_direction":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"ASC or DESC (default DESC).","title":"Sort Direction"},"umbrella_name":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only services of this courier brand, for example UPS.","title":"Umbrella Name"},"international":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to keep only international services.","title":"International"},"domestic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to keep only domestic services.","title":"Domestic"}},"title":"list_courier_servicesArguments","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_boxes":{"post":{"operationId":"list_boxes","summary":"List courier boxes and your custom boxes with name, slug, outer dimensions, weight and type; filter by courier country o","description":"List courier boxes and your custom boxes with name, slug, outer dimensions, weight and type; filter by courier country or brand. Use for \"Which box sizes does Easyship know for USPS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Per Page"},"courier_country_alpha2":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Only boxes of couriers in this country (two-letter code).","title":"Courier Country Alpha2"},"courier_umbrella_name":{"anyOf":[{"enum":["Australia Post MyPost Business","Aramex","FedEx","USPS","UPS"],"type":"string"},{"type":"null"}],"default":null,"description":"Only boxes of this courier brand.","title":"Courier Umbrella Name"}},"title":"list_boxesArguments","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_countries":{"post":{"operationId":"list_countries","summary":"List the countries Easyship supports with id, name and two-letter code. Use for \"Which countries does Easyship list\".","description":"List the countries Easyship supports with id, name and two-letter code. Use for \"Which countries does Easyship list\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Per Page"}},"title":"list_countriesArguments","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_states":{"post":{"operationId":"list_states","summary":"List states and provinces known to Easyship with abbreviation and country id. Use for \"Which states does Easyship know\".","description":"List states and provinces known to Easyship with abbreviation and country id. Use for \"Which states does Easyship know\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Per Page"}},"title":"list_statesArguments","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_stores":{"post":{"operationId":"list_stores","summary":"List the sales-channel stores connected to the account with platform, active flag and last sync time. Use for \"Which sto","description":"List the sales-channel stores connected to the account with platform, active flag and last sync time. Use for \"Which stores are connected to my Easyship account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Per Page"}},"title":"list_storesArguments","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_tags":{"post":{"operationId":"list_tags","summary":"List the shipment tags defined in the account, optionally filtered by a keyword. Use for \"Which shipment tags do I use i","description":"List the shipment tags defined in the account, optionally filtered by a keyword. Use for \"Which shipment tags do I use in Easyship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Per Page"},"keyword":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only tags whose name contains this text.","title":"Keyword"}},"title":"list_tagsArguments","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_shipping_rules":{"post":{"operationId":"list_shipping_rules","summary":"List the shipping rules (automatic courier choice) with name, priority, active flag and their conditions. Use for \"Which","description":"List the shipping rules (automatic courier choice) with name, priority, active flag and their conditions. Use for \"Which shipping rules are active in my Easyship account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_shipping_rulesArguments","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_shipping_rule":{"post":{"operationId":"get_shipping_rule","summary":"Get one shipping rule by id with priority, active flag and conditions. Use for \"Show Easyship shipping rule rule-1\".","description":"Get one shipping rule by id with priority, active flag and conditions. Use for \"Show Easyship shipping rule rule-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shipping_rule_id":{"description":"Shipping rule id from list_shipping_rules.","maxLength":80,"title":"Shipping Rule Id","type":"string"}},"required":["shipping_rule_id"],"title":"get_shipping_ruleArguments","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_shipping_rule_actions":{"post":{"operationId":"list_shipping_rule_actions","summary":"List the actions of one shipping rule (preferred or excluded couriers, incoterms, insurance, sorting). Use for \"What doe","description":"List the actions of one shipping rule (preferred or excluded couriers, incoterms, insurance, sorting). Use for \"What does Easyship shipping rule rule-1 do\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"shipping_rule_id":{"description":"Shipping rule id from list_shipping_rules.","maxLength":80,"title":"Shipping Rule Id","type":"string"}},"required":["shipping_rule_id"],"title":"list_shipping_rule_actionsArguments","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}}}}