---
title: Build your shipping integration
description: Discover services, preview prices, manage addresses, and book shipments with the Customer API.
---

The Customer API connects your system to your Bookogsend account. Discover shipping services, preview prices, manage sender and receiver addresses, create shipment drafts, and request booking. Read shipment status, tracking, and existing PDF labels.

## Make your first request

1. Ask Bookogsend to enable Customer API access. Your account must be active and use invoice billing.
2. [Create and copy a key](/guides/api-access) in your customer dashboard. Store it in your integration, outside browser code and source control.
3. Set `API_BASE_URL` to the URL below and replace the key placeholder. Run this command in your HTTP client:

<pre>
  <code>
    {new URL("/api/v1/customer", process.env.NEXT_PUBLIC_WEBSITE_BASE_URL).href}
  </code>
</pre>

```bash
CUSTOMER_API_KEY="<customer-api-key>"

curl "$API_BASE_URL/services" \
  --header "Authorization: Bearer $CUSTOMER_API_KEY"
```

A successful request returns HTTP `200` with `data.services`. Each service includes its code, enabled package types, contact requirements, and package limits. Any valid Customer API key can discover services.

The base URL above belongs to this documentation's configured website environment. For another environment, use its website origin and account key. There is no separate sandbox hostname documented here.

## Build an integration

1. Discover available services and package requirements.
2. Save a sender and receiver, or use an inline receiver.
3. Preview the price, then create a `PENDING` draft.
4. Request booking for a carrier draft. A `PROCESSING` response confirms acceptance; background processing completes booking.
5. Read shipment status and tracking, then download an existing label when ready.

Use [API reference](/reference) for endpoint parameters, payload fields, supported values, schemas, and copyable cURL/TypeScript examples. Samples use GLS Business Parcel with one package and illustrative prices. Replace credentials, resource IDs, dates, and service/package choices with values valid for your account. Services and prices depend on your account and route.

Read the [shipment lifecycle](/guides/shipments) and [retry rules](/guides/retries) before implementing mutations. Run the examples in your integration or HTTP client.
