> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sendcloud

> Connect Sendcloud to your Atako agents — 12 read and 2 write actions.

Let your agents follow your Sendcloud shipments — list, read, cancel and track parcels, push orders without buying a label, compare shipping options, find service points and list returns.

## Connection

* **Authentication**: API key (Public key:Secret key).

<Note>
  Sendcloud → Settings → Integrations → find "Sendcloud API" → Connect → enter a name → Save. A Public Key and a Secret Key are generated. Paste them as public\_key:secret\_key (both values, separated by a colon). Leave "Use OAuth2 authentication" off (this connector uses Basic authentication) and enable "Service Points" to search service points. The keys give access to the whole account — there are no scopes to choose.

  See [Sendcloud's documentation](https://app.sendcloud.com/v2/settings/integrations/manage).
</Note>

## Read actions (12)

| Action | Description |
| - | - |
| `get_order` | Get one order by its Sendcloud id (integer, the "id" returned by list\_orders). |
| `get_return` | Get one return by its id (integer, from list\_returns). |
| `get_shipment` | Get one shipment by its id (from list\_shipments): parcels, status, tracking numbers, addresses. |
| `get_tracking` | Get the current status and tracking events of a parcel by its carrier tracking number. |
| `list_integrations` | List the shop and API integrations of the account with their id — the integration id needed by create\_order and list\_orders. |
| `list_orders` | List orders — first page only (page\_size up to 200): narrow it with integration (integer id from list\_integrations), order\_number, order\_id, status, and the order\_created\_at / order\_updated\_at filters (YYYY-MM-DD, with \_min/\_max variants). |
| `list_parcel_statuses` | List every parcel status code with its description (values usable as parcel\_status in list\_shipments). |
| `list_returns` | List the returns created in a date window: from\_date and to\_date are required ISO 8601 date-times; optional parent\_parcel\_status (e.g. "announced", "delivered"), page\_size (up to 40) and cursor (the cursor value of the "next" link returned in the body). |
| `list_sender_addresses` | List the sender addresses saved in the account — first page only (page\_size up to 100). |
| `list_service_points` | Find service points (pick-up points, lockers, post offices) in a country, around an address, a postal code or coordinates. country\_code (2 letters) is required; carrier\_code and general\_shop\_type ("servicepoint"\|"locker"\|"post\_office"\|"carrier\_depot") are arrays of strings; radius in meters (100–50000); limit up to 200. |
| `list_shipments` | List the shipments (parcels) created or imported in the account — first page only (page\_size up to 100): narrow it with the filters (tracking\_number, order\_number, parcel\_status, updated\_after/before and announced\_after/before as ISO 8601 date-times, ids = comma-separated parcel ids). |
| `list_shipping_options` | List the shipping options (carrier + service, with their shipping\_option\_code) available for a route — a read-only query, nothing is created. from\_address / to\_address: \{ country\_code: 2 letters (required), postal\_code?, city?, address\_line\_1?, state\_province\_code? }. parcels: array of \{ weight: \{ value: STRING (e.g. "1.5"), unit: "kg"\|"g"\|"lbs"\|"oz" }, dimensions?: \{ length, width, height: STRINGS, unit: "cm"\|"mm"\|"m"\|"yd"\|"ft"\|"in" } }. Optional filters: carrier\_code, shipping\_option\_code, shipping\_product\_code (strings), contract\_id (integer); calculate\_quotes (boolean) also returns the quotes. |

## Write actions (2)

| Action | Description |
| - | - |
| `cancel_shipment` | Cancel an announced shipment, if its carrier supports cancellation. Argument: id (string, shipment id from list\_shipments). No other argument. |
| `create_order` | Create an order in Sendcloud's Incoming orders WITHOUT requesting a label (no carrier cost; the API v3 replacement for v2 parcels with request\_label: false). Re-sending an existing order\_id for the same integration updates that order. Required: order\_id (string, your shop id), order\_number (string), order\_details \{ integration: \{ id: integer from list\_integrations }, status: \{ code: string, message?: string }, order\_created\_at: ISO 8601 date-time string, order\_items: array of objects \{ name: string, quantity: integer, total\_price: \{ value: number, currency: 3-letter ISO 4217 string, e.g. "EUR" }, sku?, item\_id?, product\_id?, variant\_id?, description?, hs\_code?, country\_of\_origin? (2 letters), ean?, unit\_price? }, notes?: string, tags?: array of strings }, payment\_details \{ total\_price: \{ value: number, currency: string }, status: \{ code: string, message?: string }, is\_cash\_on\_delivery?: boolean, subtotal\_price?, estimated\_shipping\_price?, estimated\_tax\_price? (price objects) }. Optional: customer\_details \{ name: string, email?, phone\_number? }, shipping\_address and billing\_address \{ name, address\_line\_1, postal\_code, city, country\_code (strings, required), company\_name?, house\_number?, address\_line\_2?, state\_province\_code?, email?, phone\_number? }, shipping\_details \{ is\_local\_pickup?: boolean, delivery\_indicator?: string, measurement?: \{ weight: \{ value: number, unit: "kg"\|"g"\|"lbs"\|"oz" } }, ship\_with?: \{ type: "shipping\_option\_code", properties: \{ shipping\_option\_code: string from list\_shipping\_options, contract\_id?: integer } } }. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.