Skip to main content

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.

Retrieves the customer’s points balance and the full reward catalogue with affordability info per reward. Intended as the primary endpoint for rendering a loyalty redemption UI. GET /public/customers/rewards/redeemable

Authorizations

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

Required Scope

rewards:read This endpoint requires the rewards 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.points_balance integer The customer’s current redeemable points balance. Example: 650 data.rewards object[] The active reward catalogue for this organisation, enriched with affordability fields for this customer. Hide child attributes data.rewards[].id string<uuid> Example: "90424fa7-e8a9-4ef4-b43a-72c9b2028db5" data.rewards[].name string Example: "$5 off your next order" data.rewards[].description string | null Example: "Redeem 500 points for a $5 discount." data.rewards[].reward_type enum<string> Available options: fixed_discount, percentage_discount, free_shipping, free_product, store_credit Example: "fixed_discount" data.rewards[].points_cost integer The number of points required to redeem this reward. Example: 500 data.rewards[].reward_rule object The rule configuration for this reward. Structure varies by reward_type. Example: { "points_required": 500, "discount_value": 5 } data.rewards[].can_redeem boolean Whether the customer currently has enough points to redeem this reward. Example: true data.rewards[].points_needed integer The additional points needed to redeem this reward. 0 if can_redeem is true. Example: 0 data.customer_rewards object[] The customer’s previously redeemed coupons and discounts, sorted by created_at descending. Hide child attributes data.customer_rewards[].id string<uuid> Example: "1fd80ced-326f-4082-951b-21a38632a603" data.customer_rewards[].reward_type string | null Example: "fixed_discount" data.customer_rewards[].status enum<string> Available options: active, used, inactive, expired, deleted, revert Example: "active" data.customer_rewards[].discount_code string | null Example: "YUKO-TVJ-BL1" data.customer_rewards[].points_used integer Example: 500 data.customer_rewards[].expires_at string<date-time> | null Example: "2026-06-01T00:00:00+00:00" data.customer_rewards[].used_at string<date-time> | null Example: null data.customer_rewards[].created_at string<date-time> Example: "2026-02-15T08:30:00+00:00"
curl --request GET \
  --url "https://api.yukoapp.com/api/v1/public/customers/rewards/redeemable?customer_id=9049402769586" \
  --header "Authorization: Bearer py_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
{
  "data": {
    "points_balance": 650,
    "rewards": [
      {
        "id": "90424fa7-e8a9-4ef4-b43a-72c9b2028db5",
        "name": "$5 off your next order",
        "description": "Redeem 500 points for a $5 discount.",
        "reward_type": "fixed_discount",
        "points_cost": 500,
        "reward_rule": {
          "points_required": 500,
          "discount_value": 5
        },
        "can_redeem": true,
        "points_needed": 0
      },
      {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "name": "10% off your next order",
        "description": "Redeem 1000 points for 10% off.",
        "reward_type": "percentage_discount",
        "points_cost": 1000,
        "reward_rule": {
          "points_required": 1000,
          "discount_percentage": 10
        },
        "can_redeem": false,
        "points_needed": 350
      }
    ],
    "customer_rewards": [
      {
        "id": "1fd80ced-326f-4082-951b-21a38632a603",
        "reward_type": "fixed_discount",
        "status": "active",
        "discount_code": "YUKO-TVJ-BL1",
        "points_used": 500,
        "expires_at": "2026-06-01T00:00:00+00:00",
        "used_at": null,
        "created_at": "2026-02-15T08:30:00+00:00"
      }
    ]
  }
}