Manage customer accounts and preferences
The Customers API allows you to create and manage customer records, addresses, and preferences for your fulfillment operations.
All Customers API endpoints require authentication using a Bearer token. Include your API key in the Authorization header.
/v1/customersCreates a new customer record with contact information and shipping addresses.
{
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": "+1-555-0123",
"company": "Acme Corp",
"shipping_addresses": [
{
"name": "John Doe",
"address_line1": "123 Main St",
"address_line2": "Suite 100",
"city": "New York",
"state": "NY",
"postal_code": "10001",
"country": "US",
"is_default": true
}
],
"metadata": {
"customer_type": "wholesale",
"account_manager": "jane@company.com"
}
}{
"id": "cus_abc123def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": "+1-555-0123",
"company": "Acme Corp",
"shipping_addresses": [
{
"id": "addr_xyz789",
"name": "John Doe",
"address_line1": "123 Main St",
"address_line2": "Suite 100",
"city": "New York",
"state": "NY",
"postal_code": "10001",
"country": "US",
"is_default": true,
"is_verified": true
}
],
"metadata": {
"customer_type": "wholesale",
"account_manager": "jane@company.com"
},
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}curl -X POST https://app.3plship.com/api/v1/customers \
-H "Authorization: Bearer zl_live_1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" \
-H "Content-Type: application/json" \
-d '{
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": "+1-555-0123"
}'const response = await fetch('https://app.3plship.com/api/v1/customers', {
method: 'POST',
headers: {
'Authorization': 'Bearer zl_live_1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'customer@example.com',
first_name: 'John',
last_name: 'Doe',
phone: '+1-555-0123'
})
});
const customer = await response.json();
console.log(customer);import requests
response = requests.post(
'https://app.3plship.com/api/v1/customers',
headers={
'Authorization': 'Bearer zl_live_1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
'Content-Type': 'application/json'
},
json={
'email': 'customer@example.com',
'first_name': 'John',
'last_name': 'Doe',
'phone': '+1-555-0123'
}
)
customer = response.json()
print(customer)/v1/customersRetrieves a paginated list of all customers with optional filtering.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Number of results per page (default: 50, max: 100) |
| page | integer | Page number (starts at 1, default: 1) |
| string | Filter by customer email | |
| created_after | string | ISO 8601 date - Filter customers created after this date |
{
"data": [
{
"id": "cus_abc123def456",
"email": "customer@example.com",
"first_name": "John",
"last_name": "Doe",
"phone": "+1-555-0123",
"company": "Acme Corp",
"created_at": "2025-01-15T10:30:00Z"
}
],
"pagination": {
"total": 245,
"page": 1,
"limit": 50,
"total_pages": 5,
"has_more": true
}
}/v1/customers/:idRetrieves detailed information about a specific customer including all addresses and order history.
/v1/customers/:idUpdates customer information. Only provided fields will be updated.