Overview
Every endpoint in the legacy v1 API, in one table. All paths are relative to:
https://app.shipos.co.il/apiLegacy reference
v1 is maintained for existing integrations and gains no new capabilities. New work belongs on v2. Route-by-route equivalents are in Migrating to v2.
Shipments and labels
These sit under the shipping prefix and share three pieces of middleware: request logging, response normalisation, and the hasLicense check that reads license_key and domain from the payload. See Authentication.
| Method | Path | What it does | Page |
|---|---|---|---|
POST | /shipping/open_new_order | Create a shipment from an order. Replays its own response for an hour on retry. | Shipments |
POST | /shipping/get_order_details | Read one shipment by its shipping_code. | Shipments |
POST | /shipping/get_shipping_status | Read the carrier status of one shipment. | Shipments |
POST | /shipping/change_order_status | Cancel or change a shipment's status at the carrier. | Shipments |
POST | /shipping/order | List every shipment belonging to an order. | Shipments |
POST | /shipping/{shipment}/status | Status by path parameter. Outside the hasLicense group — different auth. | Shipments |
POST | /shipping/label | Label URL for one shipment. | Labels |
POST | /shipping/order-label | Label URL per shipment for a whole order. | Labels |
POST | /shipping/bulk-label | One combined label URL for many shipments. | Labels |
POST | /shipping/pickup_locations | The caller carrier's pickup network. Takes no parameters of its own. | Pickup locations |
Express and same-day
Also under the shipping prefix and the same hasLicense check, but these are GET with query-string parameters — the only such endpoints in v1.
| Method | Path | What it does | Page |
|---|---|---|---|
GET | /shipping/get_express_delivery_enabled | Whether express is available for the license. | Express delivery |
GET | /shipping/same_day_delivery_quote | Price/feasibility quote for a same-day delivery. | Express delivery |
GET | /shipping/create_shipping_promise | Commit to a quoted same-day slot. | Express delivery |
GET | /shipping/get_express_delivery_status | Status of an express delivery. | Express delivery |
Licenses
Note the split: user-by-license is inside the hasLicense group, while the two /license/* routes are not — they take a license key but are not guarded by the middleware, and they do not use the standard v1 envelope.
| Method | Path | What it does | Page |
|---|---|---|---|
GET | /shipping/user-by-license | The account owning a license. Guarded by hasLicense. | Licenses |
GET | /license/check_license | Validate a license key. Ungated, flat response body. | Licenses |
GET | /license/activate_license | Bind a license to a domain. Ungated, flat response body. | Licenses |
Recipient app
A first-party surface for the consumer-facing delivery app, gated by a shared application secret rather than a license. Merchant integrations do not use it.
| Method | Path | What it does | Page |
|---|---|---|---|
GET | /get_app_user | Look up an app user. | App users |
POST | /create_app_user | Register an app user. | App users |
GET | /shipping/phone_number | Shipments for the authenticated recipient. | App users |
Not documented here
routes/api.php also carries the wix/* and shopify/* route groups. Those are the private backends for the Wix and Shopify admin UIs — they authenticate with platform session tokens, change shape with the front end, and carry no compatibility promise. They are not part of the v1 integration surface and are deliberately left out of this reference.
Cross-cutting behaviour
- Envelope —
{data, message, success, warning}on nearly every route, withsuccessrather than the HTTP status carrying the verdict. Several routes deviate; each deviation is called out on its own page and summarised in Errors. - Rate limiting — 500 requests per minute, keyed on the authenticated user when there is one and the client IP otherwise. Exceeding it returns
429. - Logging — every request through the
shippingprefix is written toapi_request_logs, including the normalised response body (truncated at 60,000 bytes). This is the only record of outbound carrier calls, so support requests are answerable from it.