openapi: 3.1.0 info: title: Integrations contact: name: Sendcloud API Support email: contact@sendcloud.com url: https://www.sendcloud.dev version: 2.0.0 license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html description: >- The Integrations API allows you to retrieve, update and add orders to custom webshop integrations. servers: - url: https://panel.sendcloud.sc/api/v2 description: Sendcloud Production tags: - name: Integrations - name: Shipments paths: /integrations: get: summary: Retrieve a list of integrations operationId: sc-public-v2-orders-get-retrieve_a_list_of_integrations security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/retrieve-a-list-of-integrations content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). The information returned includes the shop name and URL, the date, and the time of the last order fetch. The response indicates whether service point delivery is enabled for this integration, and for which carriers. description: >- Retrieve information about all the shop integrations currently connected to your Sendcloud account. parameters: - schema: type: string in: query name: ordering description: Specifies the field used to order the resulting response responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Integration' examples: RetrieveIntegrationList: summary: Retrieve a list of integrations value: - id: 123 shop_name: 'Integration #1' shop_url: https://example.com system: api / amazon / magento failing_since: '2019-08-24T14:15:22Z' last_fetch: '2019-08-24T14:15:22Z' last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com tags: - Integrations /integrations/{id}: get: summary: Retrieve an integration operationId: sc-public-v2-orders-get-retrieve_an_integration security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/retrieve-an-integration content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). The information returned includes the shop name and URL, the date and the time of the last order fetch. The response will also indicate whether service point delivery is enabled for this integration, and for which carriers. description: Retrieve information about a specific integration using its `id`. tags: - Integrations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Integration' examples: RetrieveIntegration: summary: Retrieve an integration value: id: 123 shop_name: 'Integration #1' shop_url: https://example.com system: api / amazon / magento failing_since: '2019-08-24T14:15:22Z' last_fetch: '2019-08-24T14:15:22Z' last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com '404': $ref: '#/components/responses/404-Integrations' put: summary: Update an integration operationId: sc-public-v2-orders-put-update_an_integration x-mint: href: /api/v2/integrations/update-an-integration content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). Using this endpoint, you can change the webshop name and URL, edit the list of carriers you want to enable for service point delivery and enable or disable service point delivery by setting `service_point_enabled` to `true` or `false`. Unlike the [Partially update an integration](/api/v2/integrations/partially-update-an-integration) endpoint, you must send all fields, even those you don't want to change. You can obtain an integration `id` via the [Retrieve a list of integrations](/api/v2/integrations/retrieve-a-list-of-integrations) endpoint. security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] description: Update settings for a specific integration using its `id`. responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an integration value: shop_name: 'Integration #1' shop_url: https://example.com last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com description: OK '400': $ref: '#/components/responses/400-Integration' '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an Integration value: shop_name: 'Integration #1' shop_url: https://example.com service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com description: '' patch: operationId: sc-public-v2-orders-patch-partial_update_an_integration security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/partially-update-an-integration content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). Using this endpoint, you can change the webshop name and URL, edit the list of carriers you want to enable for service point delivery and enable or disable service point delivery by setting `service_point_enabled` to `true` or `false`. Unlike the [Update an integration](/api/v2/integrations/update-an-integration) endpoint, you can send only the fields you want to update. You can obtain an integration `id` via the [Retrieve a list of integrations](/api/v2/integrations/retrieve-a-list-of-integrations) endpoint. description: Partially update settings for a specific integration using its `id`. responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an Integration value: shop_name: 'Integration #1' shop_url: https://example.com last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com partial_update: summary: Partial update of an Integration value: service_point_enabled: true service_point_carriers: - ups description: OK '400': $ref: '#/components/responses/400-Integration' '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations summary: Partially update an integration requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an integration value: shop_name: 'Integration #1' shop_url: https://example.com last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com partial_update: summary: Partial update of an Integration value: service_point_enabled: true service_point_carriers: - ups delete: summary: Delete an integration operationId: sc-public-v2-orders-delete-delete_an_integration security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/delete-an-integration content: |- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). description: Delete a shop integration from the Sendcloud system. responses: '204': description: No Content '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations parameters: - schema: type: integer name: id in: path required: true description: The id of the integration /integrations/{id}/shipments: get: operationId: sc-public-v2-orders-get-retrieve_a_list_of_shipments security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/retrieve-a-list-of-shipments content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). Note that the orders **are not** affected by [shipping rules](https://support.sendcloud.com/hc/en-us/articles/360025143571-Automate-your-workflow-using-Sendcloud-Shipping-Rules) at the time of retrieval, unless enabled explicitly. This endpoint is paginated, meaning that you can navigate through the `results` via the URLs provided within the `next` and `previous` fields. x-sendcloud-paginated: true x-sendcloud-paginated-discriminator: results description: >- Retrieve a list of orders that were imported from a specific webshop integration. parameters: - $ref: '#/components/parameters/cursor-parameter' - name: start_date in: query required: false description: >- Displays orders from the given `start_date`, including the set date. It defaults to one year ago. schema: type: string format: date - name: end_date in: query required: false description: >- Displays orders up to the given `end_date`, including the set date. It defaults to the current date. schema: type: string format: date - name: external_order_ids in: query required: false description: >- Filters results to shipments where their `external_order_id` matches one of the user provided ones. schema: type: array items: type: string - name: external_shipment_ids in: query required: false description: >- Filters results to shipments where their `external_shipments_id` matches one of the user provided ones. schema: type: array items: type: string - name: shipping_rules in: query required: false description: >- Enable shipping rules when retrieving orders. This will have an impact on the `allowed_shipping_methods`. schema: type: boolean - name: order_number in: query required: false description: Filters results to shipments on `order_number`. schema: type: string - name: sender_address in: query required: false description: >- Allows to specify a sender address id to display proper `allowed_shipping_methods`. schema: type: integer responses: '200': description: OK content: application/json: schema: type: object properties: next: type: string format: uri description: >- Cursor based pagination url to go forward. By following this URL you can get a next batch of shipments previous: type: string format: uri description: >- Cursor based pagination url to go backwards. By following this URL you can get a previous batch of shipments results: type: array items: $ref: '#/components/schemas/ShipmentBlobOrder' examples: RetrieveShipmentList: summary: Retrieve a list of shipments value: next: https://example.com previous: https://example.com results: - address: Lansdown Glade address_2: string allowed_shipping_methods: - 0 barcode: string city: Oss company_name: string country: AW created_at: '2019-08-24T14:15:22Z' currency: EUR customs_invoice_nr: '120' customs_shipment_type: 0 email: user@example.com external_order_id: '555413' external_shipment_id: '777413' house_number: '15' integration: 0 name: John Doe order_number: OXSDFGHTD-12 order_status: id: fulfilled message: Fulfilled parcel_items: - description: Very orange color hs_code: '01013000' origin_country: AW product_id: '1458734634' properties: size: small colour: red quantity: 2 sku: WW-DR-GR-XS-001 value: '3.5' weight: '1' mid_code: NLOZR92MEL material_content: 100% Cotton intended_use: Personal use payment_status: id: paid message: Paid postal_code: '5341' sender_address: 12345 shipment_uuid: 6b436cb2-65a4-482c-9d25-38be7868ff00 shipping_method: 12345 shipping_method_checkout_name: string telephone: string to_post_number: string to_service_point: 0 to_state: string total_order_value: string updated_at: '2019-08-24T14:15:22Z' weight: string checkout_payload: sender_address_id: 0 shipping_product: code: postnl:standard name: PostNL Standard selected_functionalities: age_check: 18 last_mile: home_delivery first_mile: pickup_dropoff multicollo: true form_factor: parcel service_area: domestic weekend_delivery: saturday delivery_deadline: best_effort direct_contract_only: false delivery_method_type: string delivery_method_data: delivery_date: '2019-08-24T14:15:22Z' formatted_delivery_date: string parcel_handover_date: '2019-08-24T14:15:22Z' width: string height: string length: string customs_details: discount_granted: '3.99' insurance_costs: '9.99' freight_costs: '5.99' other_costs: '2.99' tax_numbers: sender: - tax_number: name: VAT country: NL value: NL987654321B02 receiver: - tax_number: name: VAT country: DE value: DE123456789B03 importer_of_records: - tax_number: name: VAT country: NL value: NL975318642B01 shipment_created_at: '2019-09-25T14:15:22Z' shipment_updated_at: '2019-09-25T14:15:22Z' '404': $ref: '#/components/responses/404-Shipments' summary: Retrieve a list of shipments tags: - Shipments post: operationId: sc-public-v2-orders-post-create_a_list_of_shipments security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/create-a-list-of-shipments content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). This endpoint is only available for official Sendcloud partners. This endpoint allows you to insert shipments (or 'orders') into an API integration from your shop system, and have them appear in your Sendcloud account. Imported orders will appear in the Sendcloud platform under the **Incoming order overview** with the status "Ready to process". This allows you to easily generate parcels and create shipping labels via the API or directly from the Sendcloud platform. The validation for this endpoint is more relaxed, therefore we recommend this method over the [Create a parcel or parcels](/api/v2/parcels/create-a-parcel-or-parcels) endpoint for third-party integrators. This is an **UPSERT** endpoint which attempts to be idempotent given specific fields to ensure that orders are not duplicated. If there's an existing match in our database for specific fields (`external_order_id` and `external_shipment_id`), then the shipment will be updated. The system will only update orders that have had their `updated_at` (ISO 8601 DateTime) timestamp changed. The `external_shipment_id` field is used to split orders across multiple shipments, however, this field is not supported by all shop systems. If your shop system supports the distribution of product items within an order across multiple shipments, you can use the shipment data to create multiple entries. If your shop does not support this feature, you can set the `external_shipment_id` value to `null`. Batches are limited to 100 orders at once. This endpoint should accept most values in any of the available fields, but in the case of erroneous data, an error message will be returned directly. Your requests should almost always succeed unless the field structure is not correct. description: >- Insert shipments (or 'orders') into an API integration from your shop system, and have them appear in your Sendcloud account. responses: '200': description: >- List with references to created shipments, or the errors that occurred while creating the shipment. When a shipment can't be created, the response will contain an entry for the object with the errors. This object will have a path to each field containing errors, listing the error(s) it contains. content: application/json: schema: type: array items: oneOf: - $ref: '#/components/schemas/ShipmentCreateUpdateLog' - $ref: '#/components/schemas/ShipmentErrorLog' examples: CreateUpdateShipments: summary: Create or update a list of shipments value: - external_order_id: '1175584' external_shipment_id: '777413' shipment_uuid: 6b436cb2-65a4-482c-9d25-38be7868ff00 status: created - error: checkout_payload: delivery_method_data: delivery_date: - This field is required. external_order_id: '1184635' external_shipment_id: '' status: error '400': description: Bad Request '404': $ref: '#/components/responses/404-Shipments' summary: Create or update a list of shipments tags: - Shipments requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/ShipmentBlobOrderCreate' examples: CreateUpdateShipments: summary: Create or update a list of shipments value: - address: Lansdown Glade address_2: string city: Oss company_name: string country: AW created_at: '2019-08-24T14:15:22Z' currency: EUR customs_invoice_nr: '120' customs_shipment_type: 0 email: user@example.com external_order_id: '555413' external_shipment_id: '777413' house_number: '15' name: John Doe order_number: OXSDFGHTD-12 order_status: id: fulfilled message: Fulfilled parcel_items: - description: Very orange color hs_code: '01013000' origin_country: AW product_id: '1458734634' properties: size: small colour: red quantity: 2 sku: WW-DR-GR-XS-001 value: '3.5' weight: '1' mid_code: NLOZR92MEL material_content: 100% Cotton intended_use: Personal use payment_status: id: paid message: Paid postal_code: '5341' shipping_method: 12345 shipping_method_checkout_name: string telephone: string to_post_number: string to_service_point: 0 to_state: string total_order_value: string updated_at: '2019-08-24T14:15:22Z' weight: string checkout_payload: sender_address_id: 0 shipping_product: code: postnl:standard name: PostNL Standard selected_functionalities: age_check: 18 last_mile: home_delivery first_mile: pickup_dropoff multicollo: true form_factor: parcel service_area: domestic weekend_delivery: saturday delivery_deadline: best_effort direct_contract_only: false delivery_method_type: string delivery_method_data: delivery_date: '2019-08-24T14:15:22Z' formatted_delivery_date: string parcel_handover_date: '2019-08-24T14:15:22Z' width: string height: string length: string customs_details: discount_granted: '3.99' insurance_costs: '9.99' freight_costs: '5.99' other_costs: '2.99' tax_numbers: sender: - tax_number: name: VAT country: NL value: NL987654321B02 receiver: - tax_number: name: VAT country: DE value: DE123456789B03 importer_of_records: - tax_number: name: VAT country: NL value: NL975318642B01 description: '' parameters: - name: id in: path required: true schema: type: integer description: The id of the integration to which the shipments belong /integrations/{id}/shipments/delete: post: tags: - Shipments summary: Delete a shipment operationId: sc-public-v2-orders-post-delete_a_shipment security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/delete-a-shipment content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). The `order_status` and `payment_status` fields we retrieve from integrations are not mapped in our system, meaning that orders will not be automatically updated or deleted if the values for these fields change after an order is placed. You can delete an order by providing either a `shipment_uuid`, or a combination of the `external_order_id` and `external_shipment_id` properties. description: >- Allows you to delete a shipment from Sendcloud, e.g. if it has been canceled or deleted in your shop system. requestBody: description: >- You must provide either a shipment_uuid or the combination of external_order_id and external_shipment_id to this endpoint. content: application/json: schema: oneOf: - type: object properties: shipment_uuid: type: string format: uuid description: Autogenerated Sendcloud's internal ID required: - shipment_uuid - type: object properties: external_order_id: type: string description: External order ID assigned by shop system external_shipment_id: type: string description: External shipment ID assigned by shop system required: - external_order_id - external_shipment_id examples: DeleteByUUID: summary: Delete a shipment (via UUID) value: shipment_uuid: 39874b59-2a68-4a3d-8e00-aeb9e0540d00 DeleteByOrderIdShipmentId: summary: Delete a shipment (via `order_id` and `shipment_id`) value: external_order_id: '123457' external_shipment_id: S00002 responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: type: object properties: error: type: object properties: code: type: integer request: type: string message: type: string examples: RequiredFieldMissing: summary: Missing required fields value: error: code: 400 request: api/v2/integrations/1234/shipments/delete message: >- Missing shipment_uuid or the pair external_order_id and external_shipment_id invalid_uuid: summary: Invalid UUID value: error: code: 400 request: api/v2/integrations/1234/shipments/delete message: Must be a valid UUID. '404': $ref: '#/components/responses/404-Shipments' parameters: - schema: type: integer name: id in: path required: true description: The id of the integration to which the shipments belong /integrations/logs: get: summary: Retrieve all integration exception logs operationId: sc-public-v2-orders-get-retrieve_integrations_logs security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-sendcloud-paginated: true x-sendcloud-paginated-discriminator: results x-mint: href: /api/v2/integrations/retrieve-all-integration-exception-logs content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). Integration exception logs might be generated, for example: - if some resource cannot be found - if API credentials are no longer valid Each log record may contain information about the request and response, the status code and code exception, and can be used as a reference to identify issues between Sendcloud and a webshop. description: >- Retrieve all integration exception logs. These logs are created when integrations have problems making API requests to shop systems. tags: - Integrations responses: '200': description: OK content: application/json: schema: type: object properties: next: type: string format: uri description: >- Cursor based pagination url to go forward. By following this URL you can get a next batch of logs previous: type: string format: uri description: >- Cursor based pagination url to go backwards. By following this URL you can get a previous batch of logs results: type: array items: $ref: '#/components/schemas/IntegrationLog' examples: RetrieveIntegrationLogs: summary: Retrieve a list of integration logs value: next: https://example.com previous: https://example.com results: - id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: | SSL Certificate Error request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred protected: false - id: 124 integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 404 response: {} request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: {} created_at: '2023-03-01T02:02:00+01:00' exception: PageNotFound protected: false /integrations/{id}/logs: get: summary: Retrieve exception logs for a specific integration operationId: sc-public-v2-orders-get-retrieve_integration_logs security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: >- /api/v2/integrations/retrieve-exception-logs-for-a-specific-integration content: >- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). Integration exception logs might be generated, for example: - if some resource cannot be found - if API credentials are no longer valid Each log record may contain information about the request and response, the status code and code exception, and can be used as a reference to identify issues between Sendcloud and a webshop. x-sendcloud-paginated: true x-sendcloud-paginated-discriminator: results description: >- Retrieve exception logs for a specific integration. These logs are created when integrations have problems making API requests to shop systems. tags: - Integrations responses: '200': description: OK content: application/json: schema: type: object properties: next: type: string format: uri description: >- Cursor based pagination url to go forward. By following this URL you can get a next batch of logs previous: type: string format: uri description: >- Cursor based pagination url to go backwards. By following this URL you can get a previous batch of logs results: type: array items: $ref: '#/components/schemas/IntegrationLog' examples: RetrieveIntegrationLogs: summary: Retrieve a list of integration logs value: next: https://example.com previous: https://example.com results: - id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: | SSL Certificate Error request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred protected: false - id: 124 integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 404 response: {} request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: {} created_at: '2023-03-01T02:02:00+01:00' exception: PageNotFound protected: false '404': $ref: '#/components/responses/404-Integrations' post: summary: Create integration exceptions logs operationId: sc-public-v2-orders-post-create_integration_logs security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/create-integration-exception-logs content: |- **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3). description: >- Create integration exception logs, which will appear in the connection issue log screen of the user's integration. responses: '201': content: application/json: schema: $ref: '#/components/schemas/IntegrationLog' examples: CreateIntegrationLog: summary: Create an integration log value: id: 123 integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: | SSL Certificate Error request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred protected: false description: OK '400': $ref: '#/components/responses/400-IntegrationLog' '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationLog' examples: CreateIntegrationLog: summary: Create an integration log value: integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: | SSL Certificate Error request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred parameters: - schema: type: integer name: id in: path required: true description: The id of the integration to which the shipments belong components: schemas: Integration: type: object title: Integration Object properties: id: type: integer title: ID description: ID of an integration minimum: 1 example: 123 readOnly: true shop_name: type: string title: Name maxLength: 250 minLength: 1 description: Name of the shop example: 'Integration #1' readOnly: true shop_url: type: - string - 'null' title: Shop url description: URL of the shop the integration connects to format: uri minLength: 1 system: type: string title: System maxLength: 50 minLength: 1 example: api / amazon / magento description: Type of shop/system the integration connects to readOnly: true failing_since: type: - string - 'null' title: Failing since description: >- Timestamp from when the integration is failing to fetch orders or to send feedback format: date-time readOnly: true last_fetch: type: - string - 'null' title: Last fetch description: >- The last time we managed to fetch data from this integration, used for rate limiting purposes format: date-time readOnly: true last_updated_at: type: string title: Last updated at format: date-time description: Timestamp when the integration was last updated readOnly: true service_point_enabled: type: boolean title: Service point enabled description: Flag for denoting if delivery to service points is enabled service_point_carriers: title: Service point carriers type: array description: A list of carriers available for the service point picker items: type: string example: ups readOnly: true webhook_active: type: boolean title: Webhook active description: >- Flag indicating if updates for parcels should be send via the webhook webhook_url: type: - string - 'null' title: Webhook url format: uri description: A URL to which Sendcloud communicates updates to a parcel minLength: 1 required: - shop_name - system - last_updated_at IntegrationLog: type: - object title: Integration Log Object properties: id: type: - integer title: ID description: ID of an log record minimum: 1 example: 123 readOnly: true integration_id: type: - integer - 'null' description: ID of an integration to which this log belongs minimum: 1 example: 123 writeOnly: true user_id: type: - integer description: ID of a user to which this log belongs minimum: 1 example: 123 writeOnly: true base_url: description: Base shop URL type: - string example: https://example.com minLength: 1 full_url: description: Full path to resource where error happened type: - string - 'null' example: https://example.com/order-note.json method: type: - string description: HTTP method caused an error example: POST response_code: type: - integer - 'null' description: Standard HTTP error code example: 495 minimum: 0 response: type: - object - 'null' title: Response object description: Response JSON containing response body and headers properties: headers: title: HTTP headers description: HTTP headers which were sent within a response examples: - headerExample: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive type: - object - 'null' body: title: HTTP response body description: HTTP response body example: | SSL Certificate Error type: - string - object - 'null' request: type: - object - 'null' title: Request object description: Request JSON containing request body and headers properties: headers: title: HTTP headers description: HTTP headers which were sent within a request type: - object - string - 'null' examples: - headerExample: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: title: HTTP request body description: HTTP request body type: - object - string - 'null' examples: - order_note: note: Success created_at: type: - string format: date-time description: >- Timestamp indicating when an exception occurred. If the fields is not presented in the request, current date will be set example: '2023-03-01T02:02:00+01:00' exception_type: type: - string - 'null' description: >- Internal field to store Python exception type. We use this field to suggest our users the ways how they can fix issues. example: requests.exceptions.SSLError exception: type: - string - 'null' title: Exception text description: Human readable description of exception example: An SSL error occurred protected: type: - boolean description: An indication whether or not request/response is obfuscated example: false readOnly: true required: - base_url description: '' IntegrationUpdate: title: Integration Update Object description: An updated integration response object properties: shop_name: type: string title: Name maxLength: 250 minLength: 1 description: Name of the shop example: 'Integration #1' readOnly: true shop_url: type: string title: Shop url description: URL of the shop the integration connects to format: uri minLength: 1 last_updated_at: type: string title: Last updated at format: date-time description: Timestamp when the integration was last updated readOnly: true service_point_enabled: type: boolean title: Service point enabled description: Flag for denoting if delivery to service points is enabled service_point_carriers: type: array title: Service point carriers description: >- A list of carriers available for the service point picker. At least one carrier must be provided if the service point delivery is enabled. items: type: string example: ups webhook_active: type: boolean title: Webhook active description: >- Flag indicating if updates for parcels should be send via the webhook webhook_url: type: string title: Webhook url format: uri description: A URL to which Sendcloud communicates updates in a parcel minLength: 1 CheckoutPayload: title: Checkout Payload Object type: object properties: sender_address_id: title: >- The [sender address unique identifier](../sender-addresses/openapi.yaml) associated with the order type: integer description: The sender_address_id associated with the order shipping_product: title: Shipping product type: object description: >- The shipping product with the associated functionalities of the order. See example payload. The `code`, `name` and `selected_functionalities` fields are **all required**. This data follows from the chosen `delivery_method` (by the end-consumer). delivery_method_type: title: Delivery method type type: string minLength: 1 description: >- The type of the delivery method. Needs to be either `standard_delivery`, `nominated_day_delivery` or `same_day_delivery`. delivery_method_data: type: object properties: delivery_date: title: Delivery date type: string format: date-time description: The delivery date required by the end-consumer formatted_delivery_date: type: string title: Formatted delivery date minLength: 1 example: February 21, 2012 parcel_handover_date: title: Parcel handover date type: string format: date-time description: Date at which the parcel needs to be handed over to the carrier required: - delivery_date - formatted_delivery_date - parcel_handover_date required: - sender_address_id - shipping_product - delivery_method_type CostsObject: properties: value: type: - string - 'null' pattern: '[\d]+(\.[\d]+)?' example: '3.99' currency: type: - string - 'null' example: EUR TaxNumber: type: object title: Tax Number properties: name: type: - string - 'null' title: Tax ID name example: VAT country_code: type: - string - 'null' title: The country code of the country in the address example: NL value: type: - string - 'null' title: The value of the Tax ID example: NL987654321B02 CustomsInformation: type: - object - 'null' title: Customs Information description: Customs information related to this shipment properties: discount_granted: type: - object - 'null' title: Discount Granted description: Discount granted on the total order $ref: '#/components/schemas/CostsObject' insurance_costs: type: - object - 'null' title: Insurance Cost description: Amount the order is insured for $ref: '#/components/schemas/CostsObject' freight_costs: type: - object - 'null' title: Freight Cost description: Shipping cost of the order $ref: '#/components/schemas/CostsObject' other_costs: type: - object - 'null' title: Other Costs description: Any other costs (for eg, wrapping costs) associated with the order $ref: '#/components/schemas/CostsObject' tax_numbers: type: - object - 'null' title: Tax information about sender, receiver, and importer of records properties: sender: type: array title: Sender's Tax Information minItems: 0 items: $ref: '#/components/schemas/TaxNumber' receiver: type: array title: Receiver's Tax Information minItems: 0 items: $ref: '#/components/schemas/TaxNumber' importer_of_records: type: array title: Receiver's Tax Information minItems: 0 items: $ref: '#/components/schemas/TaxNumber' ShipmentBlobOrder: title: Shipment Blob Order Object type: object properties: address: title: Address type: string minLength: 1 address_2: title: Address 2 type: string allowed_shipping_methods: type: array items: type: integer readOnly: true barcode: title: Barcode type: string minLength: 1 description: Barcode value of the label readOnly: true city: title: City type: string minLength: 1 company_name: title: Company name type: string country: $ref: '#/components/schemas/country-codes' created_at: type: string title: Created at format: date-time description: >- Timestamp indicating when the shipment was created in the Sendcloud system example: '2022-05-07T15:08:12.152000Z' currency: type: - string - 'null' title: Currency minLength: 1 description: ISO 4217 currency code enum: - EUR - USD - GBP customs_invoice_nr: type: string title: Customs invoice nr description: Your own commercial invoice number example: '120' customs_shipment_type: type: - integer - 'null' title: Customs shipment type enum: - 0 - 1 - 2 - 3 - 4 description: | Type of shipment for customs purposes: - `0` - Gift - `1` - Documents - `2` - Commercial Goods - `3` - Commercial Sample - `4` - Returned Goods minimum: 0 maximum: 4 email: title: Customer email address type: string format: email external_order_id: title: External order id type: string minLength: 1 description: External order ID assigned by the shop system external_shipment_id: title: External shipment id type: - string - 'null' minLength: 1 description: External shipment ID assigned by the shop system house_number: title: House number type: string integration: title: Integration type: integer description: Sendcloud Integration ID readOnly: true name: title: Name type: string minLength: 1 order_number: title: Order number type: string minLength: 1 description: Unique order number generated manualy or by the shop system order_status: $ref: '#/components/schemas/ShipmentBlobStatus' parcel_items: type: - array - 'null' description: List of items the parcel contains items: $ref: '#/components/schemas/ParcelItems' payment_status: $ref: '#/components/schemas/ShipmentBlobStatus' postal_code: title: Postal code type: string minLength: 1 sender_address: title: Sender address type: - integer - 'null' description: ID of a sender address in the Sendcloud system readOnly: true shipment_uuid: type: string title: Shipment uuid minLength: 1 format: uuid description: Automatically generated Sendcloud's internal ID readOnly: true shipping_method: type: - integer - 'null' title: Shipping method description: Foreign key indicating shipping method used example: 1234 shipping_method_checkout_name: title: Shipping method checkout name type: string maxLength: 100 description: Human readable shipping method name telephone: title: Telephone type: string to_post_number: title: To post number type: string to_service_point: title: To service point type: - integer - 'null' to_state: title: To state type: - string - 'null' minLength: 1 total_order_value: title: Total order value type: - string - 'null' format: decimal description: The total price of an order updated_at: type: string title: Updated at format: date-time description: Timestamp for when the shipment was updated in the Sendcloud system example: '2022-05-07T15:08:12.152000Z' weight: type: - string - 'null' title: Weight format: decimal description: Total weight of the order. Cannot be smaler than 0.001 example: '10.2' maxLength: 10 checkout_payload: $ref: '#/components/schemas/CheckoutPayload' width: type: - string - 'null' title: Width description: Volumetric weight width format: decimal maxLength: 10 example: '10.2' height: type: - string - 'null' title: Height description: Volumetric weight height format: decimal maxLength: 10 example: '10.2' length: type: - string - 'null' title: Length description: Volumetric weight length format: decimal maxLength: 10 example: '10.2' customs_details: $ref: '#/components/schemas/CustomsInformation' shipment_created_at: type: string format: date-time description: >- Timestamp indicating when the shipment was created in the shop system example: '2022-07-07T15:08:12.152000Z' readOnly: true shipment_updated_at: type: string format: date-time description: Timestamp for when the shipment was updated in the shop system example: '2022-07-07T15:08:12.152000Z' readOnly: true required: - address - address_2 - city - company_name - country - created_at - currency - customs_invoice_nr - customs_shipment_type - email - external_order_id - external_shipment_id - house_number - name - order_number - order_status - parcel_items - payment_status - postal_code - shipping_method_checkout_name - telephone - to_post_number - to_service_point - to_state - updated_at - shipment_created_at - shipment_updated_at ShipmentBlobStatus: title: Shipment Blob Status Object type: - object - 'null' properties: id: title: Id type: string minLength: 1 description: Custom internal shop status, can be used for filtering message: title: Message type: string minLength: 1 description: User-defined human readable status required: - id - message ParcelItems: title: Parcel Items Object type: object properties: description: type: string title: Description minLength: 1 description: Description of the type of product example: Bag hs_code: description: Harmonized System Code type: string title: HS code example: '01013000' maxLength: 12 origin_country: type: - string - 'null' title: Origin country enum: - AW - AF - AO - AI - AX - AL - AD - AE - AR - AM - AS - AQ - TF - AG - AU - AT - AZ - BI - BE - BJ - BQ - BF - BD - BG - BH - BS - BA - BL - BY - BZ - BM - BO - BR - BB - BN - BT - BV - BW - CF - CA - CC - CH - CL - CN - CI - CM - CD - CG - CK - CO - KM - CV - CR - CU - CW - CX - KY - CY - CZ - DE - DJ - DM - DK - DO - DZ - EC - EG - ER - EH - ES - EE - ET - FI - FJ - FK - FR - FO - FM - GA - GB - GE - GG - GH - GI - GN - GP - GM - GW - GQ - GR - GD - GL - GT - GF - GU - GY - HK - HM - HN - HR - HT - HU - ID - IM - IN - IO - IE - IR - IQ - IS - IL - IT - JM - JE - JO - JP - KZ - KE - KG - KH - KI - KN - KR - KW - LA - LB - LR - LY - LC - LI - LK - LS - LT - LU - LV - MO - MF - MA - MC - MD - MG - MV - MX - MH - MK - ML - MT - MM - ME - MN - MP - MZ - MR - MS - MQ - MU - MW - MY - YT - NA - NC - NE - NF - NG - NI - NU - NL - 'NO' - NP - NR - NZ - OM - PK - PA - PN - PE - PH - PW - PG - PL - PR - KP - PT - PY - PS - PF - QA - RE - RO - RU - RW - SA - SD - SN - SG - GS - SH - SJ - SB - SL - SV - SM - SO - PM - RS - SS - ST - SR - SK - SI - SE - SZ - SX - SC - SY - TC - TD - TG - TH - TJ - TK - TM - TL - TO - TT - TN - TR - TV - TW - TZ - UG - UA - UM - UY - US - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - YE - ZA - ZM - ZW - IC - XK description: >- Country code from where the products were originally produced (ISO 3166-1 alpha-2) minLength: 2 maxLength: 2 product_id: type: string title: Product id description: Internal ID of the product example: '1458734634' properties: title: Properties type: object additionalProperties: type: - string - 'null' description: >- An object containing any additional properties of the product, e.g. `color: Black` quantity: type: integer title: Quantity minimum: 1 description: Number of units of a given item example: 2 sku: type: string title: Sku description: >- Internal stock keeping unit, used by retailers to assign to products, in order to keep track of stock levels internally. example: WW-DR-GR-XS-001 value: title: Value type: string format: decimal description: Price of an item weight: title: Weight type: - string - 'null' format: decimal description: Weight of an item mid_code: title: MID Code type: - string - 'null' description: >- MID code is short for Manufacturer's Identification code and must be shown on the commercial invoice. It's used as an alternative to the full name and address of a manufacturer, shipper or exporter and is always required for U.S. formal customs entries. example: NLOZR92MEL material_content: title: Material Content type: - string - 'null' description: A description of materials of the order content. example: 100% Cotton intended_use: title: Intended Use type: - string - 'null' description: >- Intended use of the order contents. The intended use may be personal or commercial. example: Personal use required: - description - quantity - value ShipmentBlobOrderCreate: title: Shipment Blob Order Create Object type: object properties: address: title: Address type: string minLength: 1 address_2: title: Address 2 type: string minLength: 0 city: title: City type: string minLength: 1 company_name: title: Company name type: string minLength: 0 country: $ref: '#/components/schemas/country-codes' created_at: type: string title: Created at format: date-time description: >- Timestamp indicating when the shipment was created in the shop system. This value will be saved and accessible through `shipment_created_at` field in GET response. example: '2022-05-07T15:08:12.152000Z' currency: type: - string - 'null' title: Currency minLength: 1 description: ISO 4217 currency code enum: - EUR - USD - GBP customs_invoice_nr: type: string title: Customs invoice nr minLength: 0 description: Your own commercial invoice number example: '120' customs_shipment_type: type: - integer - 'null' title: Customs shipment type enum: - 0 - 1 - 2 - 3 - 4 description: | Type of shipment for customs purposes: - `0` - Gift - `1` - Documents - `2` - Commercial Goods - `3` - Commercial Sample - `4` - Returned Goods minimum: 0 maximum: 4 email: title: Customer email address type: string format: email minLength: 0 external_order_id: title: External order id type: string minLength: 1 description: External order ID assigned by the shop system external_shipment_id: title: External shipment id type: - string - 'null' minLength: 1 description: External shipment ID assigned by the shop system house_number: title: House number type: string minLength: 0 name: title: Name type: string minLength: 1 order_number: title: Order number type: string minLength: 1 description: Unique order number generated manualy or by the shop system order_status: $ref: '#/components/schemas/ShipmentBlobStatus' parcel_items: type: - array - 'null' description: List of items the parcel contains items: $ref: '#/components/schemas/ParcelItems' payment_status: $ref: '#/components/schemas/ShipmentBlobStatus' postal_code: title: Postal code type: string minLength: 1 shipping_method: type: - integer - 'null' title: Shipping method description: Foreign key indicating shipping method used example: 1234 shipping_method_checkout_name: title: Shipping method checkout name type: string minLength: 0 maxLength: 100 description: Human readable shipping method name telephone: title: Telephone type: string minLength: 0 to_post_number: title: To post number type: string minLength: 0 to_service_point: title: To service point type: - integer - 'null' to_state: title: To state type: - string - 'null' minLength: 1 total_order_value: title: Total order value type: - string - 'null' format: decimal description: The total price of an order updated_at: type: string title: Updated at format: date-time description: >- Timestamp indicating when the shipment was updated in the shop system. This value will be saved and accessible through `shipment_updated_at` field in GET response. example: '2022-05-07T15:08:12.152000Z' weight: type: - string - 'null' title: Weight format: decimal description: Total weight of the order. Cannot be smaler than 0.001 example: '10.2' maxLength: 10 checkout_payload: $ref: '#/components/schemas/CheckoutPayload' width: type: - string - 'null' title: Width description: Volumetric weight width format: decimal maxLength: 10 example: '10.2' height: type: - string - 'null' title: Height description: Volumetric weight height format: decimal maxLength: 10 example: '10.2' length: type: - string - 'null' title: Length description: Volumetric weight length format: decimal maxLength: 10 example: '10.2' customs_details: $ref: '#/components/schemas/CustomsInformation' required: - address - address_2 - city - company_name - country - created_at - currency - customs_invoice_nr - customs_shipment_type - email - external_order_id - external_shipment_id - house_number - name - order_number - order_status - parcel_items - payment_status - postal_code - shipping_method_checkout_name - telephone - to_post_number - to_service_point - to_state - updated_at ShipmentCreateUpdateLog: title: Shipment Creation or Update information log type: object properties: external_order_id: title: External Order ID type: string minLength: 1 external_shipment_id: title: External Shipment ID type: string minLength: 1 shipment_uuid: title: Shipment UUID type: string format: uuid minLength: 1 status: title: Status type: string enum: - created - updated ShipmentErrorLog: title: Shipment create/update error log type: object properties: error: title: Error(s) type: object external_order_id: title: External Order ID type: string external_shipment_id: title: External Shipment ID type: string status: title: Status type: string enum: - error country-codes: type: string title: Country Code Object enum: - AW - AF - AO - AI - AX - AL - AD - AE - AR - AM - AS - AQ - TF - AG - AU - AT - AZ - BI - BE - BJ - BQ - BF - BD - BG - BH - BS - BA - BL - BY - BZ - BM - BO - BR - BB - BN - BT - BV - BW - CF - CA - CC - CH - CL - CN - CI - CM - CD - CG - CK - CO - KM - CV - CR - CU - CW - CX - KY - CY - CZ - DE - DJ - DM - DK - DO - DZ - EC - EG - ER - EH - ES - EE - ET - FI - FJ - FK - FR - FO - FM - GA - GB - GE - GG - GH - GI - GN - GP - GM - GW - GQ - GR - GD - GL - GT - GF - GU - GY - HK - HM - HN - HR - HT - HU - ID - IM - IN - IO - IE - IR - IQ - IS - IL - IT - JM - JE - JO - JP - KZ - KE - KG - KH - KI - KN - KR - KW - LA - LB - LR - LY - LC - LI - LK - LS - LT - LU - LV - MO - MF - MA - MC - MD - MG - MV - MX - MH - MK - ML - MT - MM - ME - MN - MP - MZ - MR - MS - MQ - MU - MW - MY - YT - NA - NC - NE - NF - NG - NI - NU - NL - 'NO' - NP - NR - NZ - OM - PK - PA - PN - PE - PH - PW - PG - PL - PR - KP - PT - PY - PS - PF - QA - RE - RO - RU - RW - SA - SD - SN - SG - GS - SH - SJ - SB - SL - SV - SM - SO - PM - RS - SS - ST - SR - SK - SI - SE - SZ - SX - SC - SY - TC - TD - TG - TH - TJ - TK - TM - TL - TO - TT - TN - TR - TV - TW - TZ - UG - UA - UM - UY - US - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - YE - ZA - ZM - ZW - IC - XK description: A country represented by its ISO 3166-1 alpha-2 code example: NL responses: 404-Integrations: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer description: HTTP response status code default: 404 request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: NotFound: summary: Integration not found value: error: code: 404 request: api/v2/integrations/ message: No Integration matches the given query. 404-Shipments: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer description: HTTP response status code example: 404 request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: ShipmentNotFound: summary: Shipment not found value: error: code: 404 request: api/v2/integrations/1/shipments/ message: No ShipmentBlob matches the given query. IntegrationNotFound: summary: Integration not found value: error: code: 404 request: api/v2/integrations/1/shipments/ message: No Integration matches the given query. 400-Integration: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer default: 400 description: HTTP response status code request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: WrongFieldValue: summary: Wrong field value value: error: code: 400 request: api/v2/integrations/ message: >- {'settings': ['webhook_active: This field may not be null.', 'webhook_url: This field may not be null.']} 400-IntegrationLog: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer default: 400 description: HTTP response status code request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: WrongFieldValue: summary: Wrong field value value: error: code: 400 request: api/v2/integrations/12/logs message: '{''exception'': [''This field may not be null.'', ]}' requestBodies: {} securitySchemes: HTTPBasicAuth: type: http description: >- Basic Authentication using API key and secrets is currently the main authentication mechanism. scheme: basic OAuth2ClientCreds: type: oauth2 description: >- OAuth2 is a standardized protocol for authorization that allows users to share their private resources stored on one site with another site without having to provide their credentials. OAuth2 Client Credentials Grant workflow. This workflow is typically used for server-to-server interactions that require authorization to access specific resources. flows: clientCredentials: tokenUrl: https://account.sendcloud.com/oauth2/token/ scopes: api: Default OAuth scope required to access Sendcloud API. parameters: cursor-parameter: name: cursor in: query description: > The cursor query string will be used as the pivot value to filter results. If no value is provided, the service must return the first page. The value is Base64 encoded GET parameters. example: For a cursor string there are 3 possible parameters to encode: - o: Offset - r: Reverse - p: Position Combine into GET parameters. Example: r=1&p=300 Base 64 encoded it would become: cj0xJnA9MzAw GET parameter in url would be https://some.url.com/api/endpoint/?cursor=cj0xJnA9MzAw schema: type: string example: cj0xJnA9MzAw