> ## 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.

# Get customer membership

Returns the customer's loyalty membership summary including points balance, current VIP tier, and progress toward the next tier.

**GET /public/customers/memberships**

#### **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.

#### **Query Parameters**

**customer\_id**

**string**

**required**

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

Example:

`"9049402769586"`

#### **Response**

**200 - application/json**

**data**

**object**

Hide child attributes

**data.status**

**string**

The customer's loyalty membership status. Always `"active"`.

Example:

`"active"`

**data.member\_since**

**string\<date-time>**

The date and time the customer joined the loyalty programme.

Example:

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

**data.points**

**object**

The customer's current 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.current\_tier**

**object | null**

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

Hide child attributes

**data.current\_tier.id**

**string\<uuid>**

Example:

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

**data.current\_tier.name**

**string**

Example:

`"Silver"`

**data.current\_tier.threshold\_value**

**integer**

Example:

`500`

**data.current\_tier.multiplier**

**number**

Example:

`1.5`

**data.current\_tier.icon\_url**

**string | null**

Example:

`null`

**data.current\_tier.benefits**

**object\[]**

The benefits associated with this tier.

**data.next\_tier**

**object | null**

The next VIP tier the customer can reach. `null` if the customer is already at the highest tier.

Hide child attributes

**data.next\_tier.id**

**string\<uuid>**

Example:

`"8ac40d96-4b4e-5358-9444-3f16bab9bf39"`

**data.next\_tier.name**

**string**

Example:

`"Gold"`

**data.next\_tier.threshold\_value**

**integer**

Example:

`1000`

**data.next\_tier.multiplier**

**number**

Example:

`2.0`

**data.next\_tier.benefits**

**object\[]**

The benefits associated with the next tier.

**data.progress\_to\_next\_tier**

**object | null**

The customer's progress toward the next tier. `null` if the customer is at the highest tier.

Hide child attributes

**data.progress\_to\_next\_tier.current\_value**

**integer**

The customer's current qualifying value (points earned, spend, etc.).

Example:

`650`

**data.progress\_to\_next\_tier.required\_value**

**integer**

The value required to reach the next tier.

Example:

`1000`

**data.progress\_to\_next\_tier.remaining\_value**

**integer**

The remaining value needed to reach the next tier.

Example:

`350`

**data.progress\_to\_next\_tier.progress\_percentage**

**number**

The percentage of the way to the next tier, capped at 100.

Example:

`65.0`

**data.progress\_to\_next\_tier.threshold\_type**

**string**

The metric used to determine tier progression.

Available options:

`total_earned_points`,

`total_amount_spents`

Example:

`"total_earned_points"`

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://api.yukoapp.com/api/v1/public/customers/memberships?customer_id=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/memberships?customer_id=${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/memberships?customer_id={$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": {
      "status": "active",
      "member_since": "2024-06-01T10:00:00.000Z",
      "points": {
        "balance": 350,
        "earned": 500,
        "redeemed": 150
      },
      "current_tier": {
        "id": "7fb39c85-3a3f-4247-8333-2e05a9c8ae28",
        "name": "Silver",
        "threshold_value": 500,
        "multiplier": 1.5,
        "icon_url": null,
        "benefits": [
          {
            "name": "5% Discount on every order",
            "benefit_type": "percentage_discount",
            "benefit_value": { "value": 5 }
          }
        ],
        "created_at": "2025-09-12T15:44:44.000Z"
      },
      "next_tier": {
        "id": "8ac40d96-4b4e-5358-9444-3f16bab9bf39",
        "name": "Gold",
        "threshold_value": 1000,
        "multiplier": 2.0,
        "icon_url": null,
        "benefits": [
          {
            "name": "10% Discount on every order",
            "benefit_type": "percentage_discount",
            "benefit_value": { "value": 10 }
          }
        ],
        "created_at": "2025-09-12T15:44:44.000Z"
      },
      "progress_to_next_tier": {
        "current_value": 650,
        "required_value": 1000,
        "remaining_value": 350,
        "progress_percentage": 65.0,
        "threshold_type": "total_earned_points"
      }
    }
  }
  ```

  ```json 200 (no tier yet) theme={null}
  {
    "data": {
      "status": "active",
      "member_since": "2026-01-10T08:00:00.000Z",
      "points": {
        "balance": 120,
        "earned": 120,
        "redeemed": 0
      },
      "current_tier": null,
      "next_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"
      },
      "progress_to_next_tier": {
        "current_value": 120,
        "required_value": 500,
        "remaining_value": 380,
        "progress_percentage": 24.0,
        "threshold_type": "total_earned_points"
      }
    }
  }
  ```

  ```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>
