---
title: 'Check promo code claim status'
description: 'Check whether codes of an Enter a Code rule have been claimed or are still available. Requires an API key. Pass 1 to 10 codes per request.'
openapi: GET /api/loyalty/promo_codes
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.snagsolutions.io/llms.txt). Append `.md` to any page URL for its markdown version.

`GET /api/loyalty/promo_codes` — query parameters: `organizationId`, `websiteId`, `loyaltyRuleId`, `promoCode`

`GET https://admin.snagsolutions.io/api/loyalty/promo_codes`

Check whether codes of an Enter a Code rule have been claimed or are still available. Requires an API key. Pass 1 to 10 codes per request.

## Authentication

- `apiKeyAuth` — apiKey in header: `X-API-KEY`

## Query parameters

- `organizationId` (string, required) — Unique identifier for the organization
- `websiteId` (string, required) — Unique identifier for the website
- `loyaltyRuleId` (string, required) — The Enter a Code rule whose codes to check
- `promoCode` (string, required) — Codes to check, 1 to 10. Repeat the parameter for each code (promoCode=a&promoCode=b). Matching is case-insensitive.

## Response 200

200
  - response (object) — Schema for the response of checking loyalty promo codes
    - `data` (array, required) — Matching promo codes. A requested code missing from the list does not exist on the website.
      - `items` (object) — A code of an Enter a Code loyalty rule and its claim status
        - `id` (string, uuid, required) — Unique identifier for the promo code
        - `promoCode` (string, required) — The code as stored on the rule
        - `loyaltyRuleId` (string, uuid, required) — The Enter a Code rule the code belongs to
        - `status` (string, required, one of: available, claimed) — claimed once a user has redeemed the code, available otherwise. A rule with a single shared code never marks it claimed, so that code is always available.
        - `claimedAt` (string, date-time, required) — When the code was claimed, null if it is available
        - `claimedByUserId` (string, uuid, required) — The user who claimed the code, null if it is available

## Response 400

400
  - response (object) — Schema for bad request response
    - `message` (string, required) — Error message

## Response 403

403
  - response (object) — Schema for forbidden response
    - `message` (string, required) — Error message

## Response 429

429
  - response (object) — Schema for too many request response
    - `message` (string, required) — Error message

## Response 500

500
  - response (object) — Schema for internal server error response
    - `success` (boolean, required) — Indicates operation success
    - `message` (string, required) — Error message
    - `debugInfo` (string) — Optional debug information


---

📦 **OpenAPI specs:** Every OpenAPI specification referenced by this documentation is available as a single download — https://docs.snagsolutions.io/api-specs.zip
