# Customers

## 1. Customer Request API Basic Information
### Request Method
GET
### Security Control
Add allocated token verification permission, token is placed in the Authorization field of the header, and permission verification is performed when requesting the interface.
### Request Parameters
| Parameter Name | Description | Example/Default Value |
| ---- | ---- | ---- |
| since_id | Initial customer_id, used for pagination, each page queries data with customer_id > since_id and sorts in ascending order | 0 (first page) |
| limit | Page size | 100 |
| created_at_min | Minimum time for customer creation time query | 2025-09-01 00:00:00 |
| created_at_max | Maximum time for customer creation time query | 2025-09-05 23:59:59 |
| updated_at_min | Minimum time for customer update time query | 2025-09-01 00:00:00 |
| updated_at_max | Maximum time for customer update time query | 2025-09-05 23:59:59 |

Request Parameter Example:
```json
{
  "since_id": 0,
  "limit": "100",
  "created_at_min": "2025-09-01 00:00:00",
  "created_at_max": "2025-09-05 23:59:59",
  "updated_at_min": "2025-09-01 00:00:00",
  "updated_at_max": "2025-09-05 23:59:59"
}
```
### Response Result
**Status Code Rule**: `status_code == 200` indicates that the request is successful and data is returned.
Response Result Structure:
```json
{
  "customers": [
    "customer"
  ]
}
```

## 2. Customer Basic Structure (customer)
```json
{
  "id": "Required, unique customer identifier, numeric type",
  "email": "Required, customer's email address",
  "created_at": "Required, customer creation time, ISO 8601 format",
  "updated_at": "Required, customer update time, ISO 8601 format",
  "first_name": "Required, customer's first name",
  "last_name": "Required, customer's last name",
  "orders_count": "Required, number of orders placed by customer, numeric type",
  "state": "Required, customer status (e.g., disabled, enabled)",
  "total_spent": "Required, total amount spent by customer, string type",
  "last_order_id": "Optional, last order ID, null if none",
  "verified_email": "Required, whether email is verified, boolean type",
  "tags": "Required, customer tags, empty string if none",
  "currency": "Required, customer currency code",
  "phone": "Optional, customer phone number, null if none",
  "addresses": "Required, customer addresses list, array",
  "email_marketing_consent": {
    "state": "Required, email marketing consent state",
    "opt_in_level": "Required, email marketing opt-in level",
  },
  "default_address": {
    "id": "Required, default address unique identifier, numeric type",
    "customer_id": "Required, associated customer ID, numeric type",
    "first_name": "Required, default address first name",
    "last_name": "Required, default address last name",
    "company": "Optional, default address company name, null if none",
    "address1": "Required, default address line 1",
    "address2": "Optional, default address line 2, null if none",
    "city": "Required, default address city",
    "province": "Required, default address province",
    "country": "Required, default address country",
    "zip": "Required, default address postal code",
    "phone": "Optional, default address phone number, null if none",
    "name": "Required, default address full name",
    "province_code": "Required, default address province code",
    "country_code": "Required, default address country code",
    "country_name": "Required, default address country name",
    "default": "Required, whether default address, boolean type"
  }
}
```

## 3. Customer Address Structure (address)
```json
{
  "id": "Required, address unique identifier, numeric type",
  "customer_id": "Required, associated customer ID, numeric type",
  "first_name": "Required, address first name",
  "last_name": "Required, address last name",
  "company": "Optional, address company name, null if none",
  "address1": "Required, address line 1",
  "address2": "Optional, address line 2, null if none",
  "city": "Required, address city",
  "province": "Required, address province",
  "country": "Required, address country",
  "zip": "Required, address postal code",
  "phone": "Optional, address phone number, null if none",
  "name": "Required, address full name",
  "province_code": "Required, address province code",
  "country_code": "Required, address country code",
  "country_name": "Required, address country name",
  "default": "Required, whether default address, boolean type"
}
```

## 4. Customer Sample Data
```json
{
  "id": 8190737842432,
  "email": "AdanaKalona@example.com",
  "created_at": "2025-04-24T00:34:53-07:00",
  "updated_at": "2025-04-24T00:34:55-07:00",
  "first_name": "Adana",
  "last_name": "Kalona",
  "orders_count": 0,
  "state": "disabled",
  "total_spent": "0.00",
  "last_order_id": null,
  "note": null,
  "verified_email": true,
  "multipass_identifier": null,
  "tax_exempt": false,
  "tags": "",
  "last_order_name": null,
  "currency": "USD",
  "phone": null,
  "addresses": [
    {
      "id": 9481735307520,
      "customer_id": 8190737842432,
      "first_name": "Adana",
      "last_name": "Kalona",
      "company": null,
      "address1": "2095 East 1300 South",
      "address2": null,
      "city": "Salt Lake City",
      "province": "Utah",
      "country": "United States",
      "zip": "84108",
      "phone": null,
      "name": "Adana Kalona",
      "province_code": "UT",
      "country_code": "US",
      "country_name": "United States",
      "default": true
    }
  ],
  "tax_exemptions": [],
  "email_marketing_consent": {
    "state": "not_subscribed",
    "opt_in_level": "single_opt_in",
    "consent_updated_at": null
  },
  "sms_marketing_consent": null,
  "admin_graphql_api_id": "gid://shopify/Customer/8190737842432",
  "default_address": {
    "id": 9481735307520,
    "customer_id": 8190737842432,
    "first_name": "Adana",
    "last_name": "Kalona",
    "company": null,
    "address1": "2095 East 1300 South",
    "address2": null,
    "city": "Salt Lake City",
    "province": "Utah",
    "country": "United States",
    "zip": "84108",
    "phone": null,
    "name": "Adana Kalona",
    "province_code": "UT",
    "country_code": "US",
    "country_name": "United States",
    "default": true
  }
}
```
