The easiest way to integrate with the GLS API

Add GLS shipping to your WMS, ERP, or e-commerce backend through a single Sendcloud integration. No GLS API set-up, no breaking changes to chase.

The easiest way to integrate with the GLS API

Add GLS shipping to your WMS, ERP, or e-commerce backend through a single Sendcloud integration. No GLS API set-up, no breaking changes to chase.

The easiest way to integrate with the GLS API

Add GLS shipping to your WMS, ERP, or e-commerce backend through a single Sendcloud integration. No GLS API set-up, no breaking changes to chase.

Easy to use and thoroughly documented

Tested on millions of shipments

Available on all plans

Why integrate GLS via the Sendcloud API?

Skip the GLS contract negotiation

Ship under Sendcloud's negotiated GLS rates from day one, or bring your own contract when you're ready.

Pan-European network across 30+ countries

GLS Parcel Europe covers cross-border shipments under a single service code. Sendcloud also handles domestic GLS products per country without a separate contract per market.

Integrate with 170+ couriers at once

Stop maintaining and integrating different couriers and use one API for all.

GDPR Compliance

We comply with the GDPR rules to protect data and privacy in Europe.

API uptime of 99.99%

Reliable shipping software built on AWS and with leading market technologies.

ISO 27001 Certified

The world’s most rigorous standards for information security.

The complete shipping API for any system

Shipping API

Get rates, create shipments, download labels, configure webhooks and so much more.

Checkout API

Retrieve the list of active couriers, query service points by GPS location, and check their availability.

Pickup API

Schedule pickups to take place at the address of your choice.

Tracking API

Track parcels in real time, retrieve delivery time stamps, and consolidate statuses in an easy-to-read format.

Returns API

Build your own returns portal, find the nearest service point, create return shipments, and download return labels.

Contracts API

Create and update Sendcloud's shipping contracts or your own courier contracts via API.

"Sendcloud allows us to connect to a lot of different couriers seamlessly."

Oscar Ziegler

Founder and CEO

-

Hive

API integration examples

API Integration

See a basic example of an API integration using Python.

Service Point Picker

See how to integrate the Service Point Picker into a custom application.

Where do you start?

1

Set up your account

2

Get your free API key

3

Start sending requests to the GLS API

Questions & answers

Why integrate the GLS API via Sendcloud instead of directly?

Direct GLS API integration means handling GLS Europe authentication, country-specific rate codes, and per-product shipment payloads on your end. Through Sendcloud, you authenticate once with your Sendcloud API key and use a single REST schema for GLS alongside every other courier in your account.

Sendcloud absorbs upstream changes from GLS Europe, including the recent unified European API rollout that replaced country-specific GLS Belgium credentials. If you don't have a GLS contract, Sendcloud's negotiated rates work in markets including the Netherlands, Belgium, and Spain.

What happens when GLS updates or breaks their API?

GLS Europe is in the middle of a multi-year API consolidation: new contracts run through unified GLS Europe credentials (API Key, API Secret, Contact ID, country), while older country-specific GLS Belgium contracts have to migrate. Direct integrators absorb the cost: re-authenticating, updating field mappings, re-testing payloads.

Through the Sendcloud REST API, the abstraction layer takes the hit. Sendcloud's engineering monitors the GLS Europe Developer Portal and adjusts the courier connector internally. The recent GLS Belgium migration to unified GLS Europe shipped with zero merchant-side code changes for accounts using Sendcloud's GLS API.

Can I use my own GLS contract?

Yes. Sendcloud supports both Sendcloud-negotiated GLS rates and your own GLS contract.

Sendcloud rates are available in the Netherlands, Belgium, Spain and other markets on Lite, Growth or Premium plans, so you can start shipping GLS without negotiating a contract.

For your own contract: go to Shipping > Couriers > My Contracts, find GLS Europe, click Add Contract, and enter API Key (Username), API Secret (Password), Contact-ID and country from your GLS account manager. Italy is the exception: GLS shipments from Italy require a direct contract.

See the GLS Europe contract activation Help Centre article.

Which GLS products are supported through the API?

Through Sendcloud, you can ship the full GLS Europe product line:

  • BusinessParcel: national parcel up to 40 kg with next-working-day delivery

  • EconomyParcel: economy delivery, letterbox-style where supported

  • ExpressParcel: next day before close of business

  • ShopDeliveryParcel: delivery to GLS ParcelShops

  • EuroBusinessParcel: 30+ European destinations including the UK, Switzerland and Norway

  • GlobalBusinessParcel: shipments outside Europe

The shipping methods enabled for your account are in the Sendcloud shipping-methods endpoint. See the GLS NL shipping conditions Help Centre article for full method details.

Which GLS-specific features does the API expose?

GLS-specific features exposed through the integration:

  • FlexDeliveryService: end customer can re-route delivery in real time

  • ShopReturnService: drop-off at GLS ParcelShops

  • Pick&ReturnService: pick-up at the customer's address, scheduled for the next working day

  • SaturdayService: weekend delivery in supported markets

  • CashService: cash on delivery (own-contract only)

  • Multi-parcel shipments and ParcelShop network access for failed-delivery redirects

Tracking on GLS requires separate activation by your GLS account manager. Without it, parcels remain in "Ready to send" status in Sendcloud.

How do I track GLS parcels?

Tracking on GLS requires separate activation by your GLS account manager. Without it, parcels stay in "Ready to send" status in Sendcloud. Once activation is on, every event flows through the standard webhook stream, including ParcelShop redirects when a delivery fails.

All events are normalised to Sendcloud's status taxonomy through GET https://panel.sendcloud.sc/api/v2/tracking/{tracking_number}, with the chronological history under statuses and each event mapped to parent_status. Subscribe to the parcel-status-changed webhook for push updates. Reference: Tracking parcels.

How do I create GLS return labels?

GLS exposes two return services: Pick&ReturnService picks up the parcel at the customer's address, scheduled for the next working day, with a 60-day return window from the outbound date. ShopReturnService covers drop-off at any GLS ParcelShop in the network.

All return labels are created through Sendcloud's standalone v3 Returns API (synchronous or asynchronous; async is recommended for higher throughput). No outgoing parcel lookup or JWT tokens are required. Reference: Returns API overview.

How does Sendcloud's multi-carrier API compare to connecting couriers individually?

The Sendcloud REST API gives you access to 170+ couriers, including GLS, through one credential set, one schema, one webhook stream, and one error model. Connecting couriers individually means handling separate authentication, payload formats, and tracking systems for each, and redoing the work every time a courier ships breaking changes upstream.

With Sendcloud, you ship GLS alongside DHL, UPS, PostNL, and DPD, or any other courier in your account using the same code. Route shipments between couriers based on rules (weight, destination, service level, cost) without writing courier-specific routing logic. Fall back to alternative couriers automatically if GLS's upstream system has issues.

Adding a new courier later means adding it to your Sendcloud account, not building a new integration.

Questions & answers

Why integrate the GLS API via Sendcloud instead of directly?

Direct GLS API integration means handling GLS Europe authentication, country-specific rate codes, and per-product shipment payloads on your end. Through Sendcloud, you authenticate once with your Sendcloud API key and use a single REST schema for GLS alongside every other courier in your account.

Sendcloud absorbs upstream changes from GLS Europe, including the recent unified European API rollout that replaced country-specific GLS Belgium credentials. If you don't have a GLS contract, Sendcloud's negotiated rates work in markets including the Netherlands, Belgium, and Spain.

What happens when GLS updates or breaks their API?

GLS Europe is in the middle of a multi-year API consolidation: new contracts run through unified GLS Europe credentials (API Key, API Secret, Contact ID, country), while older country-specific GLS Belgium contracts have to migrate. Direct integrators absorb the cost: re-authenticating, updating field mappings, re-testing payloads.

Through the Sendcloud REST API, the abstraction layer takes the hit. Sendcloud's engineering monitors the GLS Europe Developer Portal and adjusts the courier connector internally. The recent GLS Belgium migration to unified GLS Europe shipped with zero merchant-side code changes for accounts using Sendcloud's GLS API.

Can I use my own GLS contract?

Yes. Sendcloud supports both Sendcloud-negotiated GLS rates and your own GLS contract.

Sendcloud rates are available in the Netherlands, Belgium, Spain and other markets on Lite, Growth or Premium plans, so you can start shipping GLS without negotiating a contract.

For your own contract: go to Shipping > Couriers > My Contracts, find GLS Europe, click Add Contract, and enter API Key (Username), API Secret (Password), Contact-ID and country from your GLS account manager. Italy is the exception: GLS shipments from Italy require a direct contract.

See the GLS Europe contract activation Help Centre article.

Which GLS products are supported through the API?

Through Sendcloud, you can ship the full GLS Europe product line:

  • BusinessParcel: national parcel up to 40 kg with next-working-day delivery

  • EconomyParcel: economy delivery, letterbox-style where supported

  • ExpressParcel: next day before close of business

  • ShopDeliveryParcel: delivery to GLS ParcelShops

  • EuroBusinessParcel: 30+ European destinations including the UK, Switzerland and Norway

  • GlobalBusinessParcel: shipments outside Europe

The shipping methods enabled for your account are in the Sendcloud shipping-methods endpoint. See the GLS NL shipping conditions Help Centre article for full method details.

Which GLS-specific features does the API expose?

GLS-specific features exposed through the integration:

  • FlexDeliveryService: end customer can re-route delivery in real time

  • ShopReturnService: drop-off at GLS ParcelShops

  • Pick&ReturnService: pick-up at the customer's address, scheduled for the next working day

  • SaturdayService: weekend delivery in supported markets

  • CashService: cash on delivery (own-contract only)

  • Multi-parcel shipments and ParcelShop network access for failed-delivery redirects

Tracking on GLS requires separate activation by your GLS account manager. Without it, parcels remain in "Ready to send" status in Sendcloud.

How do I track GLS parcels?

Tracking on GLS requires separate activation by your GLS account manager. Without it, parcels stay in "Ready to send" status in Sendcloud. Once activation is on, every event flows through the standard webhook stream, including ParcelShop redirects when a delivery fails.

All events are normalised to Sendcloud's status taxonomy through GET https://panel.sendcloud.sc/api/v2/tracking/{tracking_number}, with the chronological history under statuses and each event mapped to parent_status. Subscribe to the parcel-status-changed webhook for push updates. Reference: Tracking parcels.

How do I create GLS return labels?

GLS exposes two return services: Pick&ReturnService picks up the parcel at the customer's address, scheduled for the next working day, with a 60-day return window from the outbound date. ShopReturnService covers drop-off at any GLS ParcelShop in the network.

All return labels are created through Sendcloud's standalone v3 Returns API (synchronous or asynchronous; async is recommended for higher throughput). No outgoing parcel lookup or JWT tokens are required. Reference: Returns API overview.

How does Sendcloud's multi-carrier API compare to connecting couriers individually?

The Sendcloud REST API gives you access to 170+ couriers, including GLS, through one credential set, one schema, one webhook stream, and one error model. Connecting couriers individually means handling separate authentication, payload formats, and tracking systems for each, and redoing the work every time a courier ships breaking changes upstream.

With Sendcloud, you ship GLS alongside DHL, UPS, PostNL, and DPD, or any other courier in your account using the same code. Route shipments between couriers based on rules (weight, destination, service level, cost) without writing courier-specific routing logic. Fall back to alternative couriers automatically if GLS's upstream system has issues.

Adding a new courier later means adding it to your Sendcloud account, not building a new integration.

Questions & answers

Why integrate the GLS API via Sendcloud instead of directly?

Direct GLS API integration means handling GLS Europe authentication, country-specific rate codes, and per-product shipment payloads on your end. Through Sendcloud, you authenticate once with your Sendcloud API key and use a single REST schema for GLS alongside every other courier in your account.

Sendcloud absorbs upstream changes from GLS Europe, including the recent unified European API rollout that replaced country-specific GLS Belgium credentials. If you don't have a GLS contract, Sendcloud's negotiated rates work in markets including the Netherlands, Belgium, and Spain.

What happens when GLS updates or breaks their API?

GLS Europe is in the middle of a multi-year API consolidation: new contracts run through unified GLS Europe credentials (API Key, API Secret, Contact ID, country), while older country-specific GLS Belgium contracts have to migrate. Direct integrators absorb the cost: re-authenticating, updating field mappings, re-testing payloads.

Through the Sendcloud REST API, the abstraction layer takes the hit. Sendcloud's engineering monitors the GLS Europe Developer Portal and adjusts the courier connector internally. The recent GLS Belgium migration to unified GLS Europe shipped with zero merchant-side code changes for accounts using Sendcloud's GLS API.

Can I use my own GLS contract?

Yes. Sendcloud supports both Sendcloud-negotiated GLS rates and your own GLS contract.

Sendcloud rates are available in the Netherlands, Belgium, Spain and other markets on Lite, Growth or Premium plans, so you can start shipping GLS without negotiating a contract.

For your own contract: go to Shipping > Couriers > My Contracts, find GLS Europe, click Add Contract, and enter API Key (Username), API Secret (Password), Contact-ID and country from your GLS account manager. Italy is the exception: GLS shipments from Italy require a direct contract.

See the GLS Europe contract activation Help Centre article.

Which GLS products are supported through the API?

Through Sendcloud, you can ship the full GLS Europe product line:

  • BusinessParcel: national parcel up to 40 kg with next-working-day delivery

  • EconomyParcel: economy delivery, letterbox-style where supported

  • ExpressParcel: next day before close of business

  • ShopDeliveryParcel: delivery to GLS ParcelShops

  • EuroBusinessParcel: 30+ European destinations including the UK, Switzerland and Norway

  • GlobalBusinessParcel: shipments outside Europe

The shipping methods enabled for your account are in the Sendcloud shipping-methods endpoint. See the GLS NL shipping conditions Help Centre article for full method details.

Which GLS-specific features does the API expose?

GLS-specific features exposed through the integration:

  • FlexDeliveryService: end customer can re-route delivery in real time

  • ShopReturnService: drop-off at GLS ParcelShops

  • Pick&ReturnService: pick-up at the customer's address, scheduled for the next working day

  • SaturdayService: weekend delivery in supported markets

  • CashService: cash on delivery (own-contract only)

  • Multi-parcel shipments and ParcelShop network access for failed-delivery redirects

Tracking on GLS requires separate activation by your GLS account manager. Without it, parcels remain in "Ready to send" status in Sendcloud.

How do I track GLS parcels?

Tracking on GLS requires separate activation by your GLS account manager. Without it, parcels stay in "Ready to send" status in Sendcloud. Once activation is on, every event flows through the standard webhook stream, including ParcelShop redirects when a delivery fails.

All events are normalised to Sendcloud's status taxonomy through GET https://panel.sendcloud.sc/api/v2/tracking/{tracking_number}, with the chronological history under statuses and each event mapped to parent_status. Subscribe to the parcel-status-changed webhook for push updates. Reference: Tracking parcels.

How do I create GLS return labels?

GLS exposes two return services: Pick&ReturnService picks up the parcel at the customer's address, scheduled for the next working day, with a 60-day return window from the outbound date. ShopReturnService covers drop-off at any GLS ParcelShop in the network.

All return labels are created through Sendcloud's standalone v3 Returns API (synchronous or asynchronous; async is recommended for higher throughput). No outgoing parcel lookup or JWT tokens are required. Reference: Returns API overview.

How does Sendcloud's multi-carrier API compare to connecting couriers individually?

The Sendcloud REST API gives you access to 170+ couriers, including GLS, through one credential set, one schema, one webhook stream, and one error model. Connecting couriers individually means handling separate authentication, payload formats, and tracking systems for each, and redoing the work every time a courier ships breaking changes upstream.

With Sendcloud, you ship GLS alongside DHL, UPS, PostNL, and DPD, or any other courier in your account using the same code. Route shipments between couriers based on rules (weight, destination, service level, cost) without writing courier-specific routing logic. Fall back to alternative couriers automatically if GLS's upstream system has issues.

Adding a new courier later means adding it to your Sendcloud account, not building a new integration.

One API for all your shipping needs

No set-up fees

Same-day integration

Ship with Europe’s top couriers