> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.trysend.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.trysend.com/_mcp/server.

# List parcel customers

GET https://api.trysend.com/v1/parcel-customers

List parcel customers for the authenticated business, newest first. Filtered by API key mode (test/live).

Use `key` to search by name, email, mobile, or address_suffix. Use `status` to filter by customer status.


Reference: https://docs.trysend.com/api-reference/send-parcels-api/parcel-customers/list-parcel-customers

## Authentication

- `X-Api-Key` header (required)

## Request

### Query parameters

- `key` (string, optional) — Search by name, email, mobile, or address_suffix
- `status` (enum, optional, default: active)
  - Allowed values: `active`, `inactive`, `all`
- `page` (integer, optional, default: 1)
- `per_page` (integer, optional, default: 25)

## Response

### 200

OK

- `data` (list of object, optional)
  - `parcel_customer_id` (string, optional) — Internal token for this customer
  - `first_name` (string, optional, nullable)
  - `last_name` (string, optional, nullable)
  - `email` (string, optional, nullable)
  - `mobile` (string, optional, nullable)
  - `address_suffix` (string, optional) — Unique customer ID (e.g. ACME-001)
  - `full_name` (string, optional)
  - `status` (enum, optional)
    - Allowed values: `active`, `inactive`
  - `mode` (enum, optional)
    - Allowed values: `test`, `live`
  - `origin_address` (string, optional, nullable)
  - `origin_city` (string, optional, nullable)
  - `origin_zip_code` (string, optional, nullable)
  - `origin_state` (string, optional, nullable)
  - `origin_country` (string, optional, nullable)
  - `created_at` (datetime, optional)
- `meta` (object, optional)
  - `current_page` (integer, optional)
  - `total_pages` (integer, optional)
  - `total_count` (integer, optional)
  - `per_page` (integer, optional)

## Examples

**Response**

```json
{
  "data": [
    {
      "parcel_customer_id": "string",
      "first_name": "string",
      "last_name": "string",
      "email": "string",
      "mobile": "string",
      "address_suffix": "string",
      "full_name": "string",
      "status": "active",
      "mode": "test",
      "origin_address": "string",
      "origin_city": "string",
      "origin_zip_code": "string",
      "origin_state": "string",
      "origin_country": "string",
      "created_at": "2024-01-15T09:30:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 1,
    "per_page": 1
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.trysend.com/v1/parcel-customers"

headers = {"X-Api-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.trysend.com/v1/parcel-customers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```