Get all customers
/customers-apiThe Customers API manages customer accounts, addresses, attributes, and form fields. V3 is the primary API for customer operations, though Customer Groups remain V2-only. The Segmentation API (Enterpr
<overview> The CustomersAPI manages customer accounts, addresses, attributes, and form fields. V3 is the primaryAPI for customer operations, although Customer Groups remain V2-only. The SegmentationAPI (Enterprise only) enables advanced customer targeting. </overview > <apiversions > <v3customers > API s primarily for: - Customer accounts - Customer addresses - Customer attributes - Customer form fields - Customer consent - Stored instruments (payment methods) Base:https://api.bigcommerce.com/stores/{store_hash}/v3/customers </v3customers > <v2customer_groups > V2 is still required for: - Customer Groups (pricing tiers, access restrictions) Base:https://api.bigcommerce.com/stores/{store_hash}/v2/customer_groups Migration of Customer Groups to V3 is planned but not yet available. </v2customergroups > </apiversions > <customersv3 > <get_customers > ``bash # Get all customers GET /v3/customers # Get single customer by ID GET /v3/customers?id:in=123 # Filter customers GET /v3/customers?email:in=john@example.com GET /v3/customers?customer_group_id:in=5,6 GET /v3/customers?date_created:min=2024-01-01 GET /v3/customers?company:like=Acme GET /v3/customers?name:like=John </get_customers> <create_customer> bash POST /v3/customers [ { "email": "john@example.com", "first_name": "John", "last_name": "Doe", "company": "Acme Corp", "phone": "512-555-1234", "customer_group_id": 1, "addresses": [ { "first_name": "John", "last_name": "Doe", "address1": "123 Main St", "city": "Austin", "state_or_province": "Texas", "postal_code": "78701", "country_code": "US", "address_type": "residential" } ], "authentication": { "force_password_reset": true, "new_password": "temporaryPassword123!" } } ] **Note:** V3 accepts an array even for single customer creation. </create_customer> <update_customer> bash PUT /v3/customers [ { "id": 123, "first_name": "Jonathan", "customer_group_id": 5 } ] </update_customer> <delete_customer> bash DELETE /v3/customers?id:in=123,124,125 </delete_customer> <include_subresources> bash GET /v3/customers?include=addresses,storecredit,attributes,formfields Response includes nested address array (limited to 10 per customer in response). </include_subresources> </customers_v3> <customer_addresses> <get_addresses> bash GET /v3/customers/addresses GET /v3/customers/addresses?customer_id:in=123 GET /v3/customers/addresses?id:in=456 Max limit: 250 addresses per request Default sort: address ID ascending </get_addresses> <create_address> bash POST /v3/customers/addresses [ { "customer_id": 123, "first_name": "John", "last_name": "Doe", "address1": "456 Oak Ave", "address2": "Suite 100", "city": "Austin", "state_or_province": "Texas", "postal_code": "78702", "country_code": "US", "phone": "512-555-5678", "address_type": "commercial" } ] **address_type:** residential or commercial </create_address> <update_address> bash PUT /v3/customers/addresses [ { "id": 456, "address1": "789 New Street" } ] </update_address> </customer_addresses> <customer_groups_v2> <get_groups> bash GET /v2/customer_groups GET /v2/customer_groups/{group_id} </get_groups> <create_group> bash POST /v2/customer_groups { "name": "Wholesale Customers", "discount_rules": [ { "type": "all", "method": "percent", "amount": "15.00" } ], "is_default": false, "is_group_for_guests": false } </create_group> <discount_rule_types> - all - Discount on all products - product - Discount on specific product - category - Discount on category **Methods:** percent, fixed, price </discount_rule_types> <category_access> Restrict category access by customer group: bash PUT /v2/customer_groups/{group_id} { "category_access": { "type": "specific", "categories": [23, 45, 67] } } **type:** all, specific, none` </categoryaccess > <planavailability > Customer Groups are only available on specific BigCommerce platforms