Skip to main content
Use Service Points API v3 to find service points and integrate them into your own flow, whether a customer selects one or your system does. This guide covers two parts of that flow: searching for service points and checking that a selected service point is still available before creating a shipment.
Service Points API v3 does not support client-side authentication. It uses regular API credentials, which must not be exposed in client-side code. Call the API from your backend instead.
If you don’t want to build and maintain your own service point selection interface, integrate Sendcloud’s hosted service point picker instead.

Configure carriers in your integration settings

If you plan to search using the carriers configured for your integration, enable service point delivery and the carriers you want to use:
  1. In the Sendcloud platform, go to your integration settings
  2. Find your API integration and click Configure
  3. Enable service point delivery
  4. Enable the carriers you want to use for service point delivery and save your changes
You can skip this step if you plan to provide carrier codes explicitly in the request.

Search for service points

Use the Retrieve a list of service points endpoint to find service points near a location. A country_code is required. You also need to specify which carriers to search and provide the location to search around.
  • Set use_integration_carriers=true to use the carriers configured for your integration.
  • Provide one or more carrier_code parameters to search specific carriers directly.
These two options are mutually exclusive: use either use_integration_carriers or carrier_code, but not both.
If you use use_integration_carriers, make sure service points and the required carriers are configured as described in Configure carriers in your integration settings. Carriers provided with carrier_code do not need to be enabled in your integration settings.

Provide a search location

You can search around an address or known coordinates. Provide the full address in address or its individual parts using the address_* parameters. The API geocodes the address into a reference location and returns the closest matching service points first. If you already know the location’s coordinates, provide latitude and longitude instead.
Only one reference point can be used per request: address, the address_* parameters, and latitude/longitude are mutually exclusive.
When using the structured address parameters, combine address_house_number with address_street or address_postal_code. A house number on its own is not specific enough to locate an address.

Send the request

For example, to search around an address using the carriers configured for your integration:
Example request method and URL
To search the same location using specific carriers instead:
Example request method and URL
See the Retrieve a list of service points endpoint for all supported search parameters.
If you only need a few nearby service points, use limit to reduce the number of results returned. This reduces the response size and the amount of data your integration needs to process.

Handle the response

The closest matching service points are returned first:
Example response body
When searching by address, check data.geocoding to see how the address was resolved:
  • status tells you whether the address was matched, partially matched, or not found.
  • precision indicates how precisely the location was resolved.
  • formatted_address shows the address the search was based on.
A partially_matched result can still return service points, while precision indicates how closely the resolved location matches the address you provided. Use the returned service points according to your flow. In a customer-facing flow, you can present them to the customer for selection. In an automated flow, your system can select one directly. Whichever approach you use, keep the Sendcloud id of the selected service point. You’ll need it to check availability and create the shipment.

No service points found

An empty results list does not necessarily mean the address could not be found. When searching by address, check data.geocoding.status to distinguish between an address that was resolved successfully and one that could not be resolved. If the status is matched or partially_matched, the location was resolved but no service points matched the search:
Example response - no matching service points
In this case, try making the search less restrictive. You can increase the radius or expand the bounding box, or remove these limits entirely to return the closest matching service points regardless of how far away they are. If data.geocoding.status is not_found, the address itself could not be resolved:
Example response - address not found
In a customer-facing flow, you can ask the customer to review the address and try again. In other flows, handle the unresolved address according to your integration’s fallback logic.

Check that a service point is still available

Service point availability can change over time. The search endpoint may return service points based on recently updated data, but that does not guarantee they are still available for delivery. Before creating the shipment, check the selected service point using the Check availability of a service point endpoint. The hosted service point picker already checks availability when the customer makes their selection, but availability can change between checkout and fulfillment, so check again before you create the shipment. Use the Sendcloud id of the selected service point:
Example request method and URL
Example response body
How availability is determined depends on the carrier. For some carriers, this involves a live check with the carrier. For others, the result is based on the best available information at the time of the request. If is_available is false, do not continue with that service point. Your flow should select a different service point before creating the shipment.

Next step

With an available service point selected, continue with creating the shipment.

Create a shipment with service point delivery

Use the selected service point to find a compatible shipping option, then create and announce the shipment.