> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yuko.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve a customer

Retrieves a single customer by their platform customer ID, enriched with current VIP tier and loyalty membership status.

**GET /public/customers/\{id}**

#### **Authorizations**

**Authorization**

**string**

**header**

**required**

Bearer authentication header of the form `Bearer <token>`, where `<token>` is your REST API token.

#### **Required Scope**

**`customers:read`**

This endpoint requires the `customers` scope with **Read Access**. Configure token scopes in Settings → Integrations → REST API.

#### **Path Parameters**

**id**

**string**

**required**

The platform customer ID (e.g. Shopify customer ID)

Example:

`"9049402769586"`

#### **Response**

**200 - application/json**

The customer was successfully retrieved.

**data**

**object**

Hide child attributes

**data.id**

**string\<uuid>**

Unique UUID identifier for the customer in Yuko.

Example:

`"63a2c89a-9936-4bc0-9d5f-93db46110b76"`

**data.first\_name**

**string | null**

The customer's first name.

Example:

`"Jane"`

**data.last\_name**

**string | null**

The customer's last name.

Example:

`"Smith"`

**data.email**

**string**

The customer's email address.

Example:

`"jane.smith@example.com"`

**data.phone**

**string | null**

The customer's phone number.

Example:

`"+14155552671"`

**data.platform**

**string**

The ecommerce platform the customer was synced from.

Example:

`"shopify"`

**data.platform\_customer\_id**

**string | null**

The customer's unique identifier in the external platform.

Example:

`"7823491023"`

**data.points**

**object**

The customer's loyalty points summary.

Hide child attributes

**data.points.balance**

**integer**

The customer's current redeemable points balance.

Example:

`350`

**data.points.earned**

**integer**

Total points ever earned by the customer.

Example:

`500`

**data.points.redeemed**

**integer**

Total points redeemed by the customer.

Example:

`150`

**data.tier**

**object | null**

The customer's current VIP tier. `null` if the customer has not reached any tier threshold.

Hide child attributes

**data.tier.id**

**string\<uuid>**

Example:

`"7fb39c85-3a3f-4247-8333-2e05a9c8ae28"`

**data.tier.name**

**string**

Example:

`"Silver"`

**data.tier.threshold\_value**

**integer**

Example:

`500`

**data.tier.multiplier**

**number**

Example:

`1.5`

**data.membership**

**object**

Loyalty membership summary.

Hide child attributes

**data.membership.status**

**string**

Always `"active"`.

Example:

`"active"`

**data.membership.member\_since**

**string\<date-time>**

The date the customer joined the loyalty programme.

Example:

`"2024-06-01T10:00:00.000Z"`

**data.created\_at**

**string\<date-time>**

The date and time when the customer was created in Yuko.

Example:

`"2024-06-01T10:00:00.000Z"`

**data.updated\_at**

**string\<date-time>**

The date and time when the customer was last updated in Yuko.

Example:

`"2026-02-15T08:30:00.000Z"`

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://api.yukoapp.com/api/v1/public/customers/9049402769586" \
    --header "Authorization: Bearer py_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  ```

  ```javascript JavaScript theme={null}
  const customerId = "9049402769586";

  const response = await fetch(
    `https://api.yukoapp.com/api/v1/public/customers/${customerId}`,
    {
      method: "GET",
      headers: {
        Authorization: "Bearer py_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      },
    }
  );

  const data = await response.json();
  ```

  ```php PHP theme={null}
  $customerId = "9049402769586";

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "https://api.yukoapp.com/api/v1/public/customers/{$customerId}");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer py_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  $data = json_decode($response, true);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "id": "63a2c89a-9936-4bc0-9d5f-93db46110b76",
      "first_name": "Jane",
      "last_name": "Smith",
      "email": "jane.smith@example.com",
      "phone": "+14155552671",
      "platform": "shopify",
      "platform_customer_id": "9049402769586",
      "points": {
        "balance": 350,
        "earned": 500,
        "redeemed": 150
      },
      "tier": {
        "id": "7fb39c85-3a3f-4247-8333-2e05a9c8ae28",
        "name": "Silver",
        "threshold_value": 500,
        "multiplier": 1.5,
        "icon_url": null,
        "benefits": [],
        "created_at": "2025-09-12T15:44:44.000Z"
      },
      "membership": {
        "status": "active",
        "member_since": "2024-06-01T10:00:00.000Z"
      },
      "created_at": "2024-06-01T10:00:00.000Z",
      "updated_at": "2026-02-15T08:30:00.000Z"
    }
  }
  ```

  ```json 404 theme={null}
  {
    "error": {
      "code": "not_found",
      "message": "Customer not found"
    }
  }
  ```

  ```json 401 theme={null}
  {
    "error": {
      "code": "invalid_token",
      "message": "Invalid or revoked API token"
    }
  }
  ```
</ResponseExample>
