Skip to main content
Customer endpoints sit under /api/brands/{brand}/customers/ with moduleAccess:customers middleware. Authenticate with EF-Access-Key.
Customer records are built from conversion and tracking events (purchases, abandoned carts, chargebacks). They are stored in Elasticsearch and cannot be created via API directly — they are created automatically when conversions are recorded.

List Customers

per_page
number
Results per page (1–100, default: 25)
type
string
Filter by customer type: customer (purchases only) or abandon (abandoned carts only)
q
string
Search by email, name, or phone
sort
string
Sort field. Any of the sortable columns below.
sort_direction
string
asc or desc
columns
array
Subset of columns to return. Allowed values: customer_email, customer_name, customer_first_name, customer_last_name, customer_phone, customer_country, customer_state, customer_city, last_order_date, first_order_date, total_orders, total_revenue, total_refunds, total_chargebacks, lifetime_value, order_frequency, products_purchased, is_abandoned_customer, abandoned_value
cURL

Quick Access Stats

Returns customer counts by type — useful for dashboard badges.
cURL

Get Customer Details

Retrieve the full profile for a single customer by email address — includes lifetime stats, order history, subscriptions, and notes.
customerEmail
string
required
Customer’s email address (URL-encoded if it contains special characters)
include_orders
boolean
Include full order history (default: true)
include_subscriptions
boolean
Include active subscriptions (default: true)
cURL
Python

Export Customers

Queue a CSV export of customer records. An email is sent when the export is ready.
filters
array
Filter conditions (same keys as the list endpoint ?type, ?q, etc.)
selected_emails
array
Limit export to specific email addresses
columns
array
Columns to include (subset of the allowed column list above)
cURL

Notes

  • Customer records are read-only — they are created automatically from conversion events
  • The {customerEmail} path parameter should be URL-encoded
  • Sorting and filtering use Elasticsearch under the hood; large result sets may be slightly delayed
  • The columns parameter controls both what is fetched and what is returned, reducing response size for large lists