---
title: "Get Offers By User"
method: GET
path: "/v2/issuers/{organizationId}/users/{userId}/offers"
tags: ["users > Rewards"]
---

# Get Offers By User

`GET /v2/issuers/{organizationId}/users/{userId}/offers`

## Request

- Base URL: `https://rewards-api.getkard.com`
- URL: `https://rewards-api.getkard.com/v2/issuers/{organizationId}/users/{userId}/offers`
- Auth: HTTP bearer

Retrieve national brand offers that a specified user is eligible for. Call this endpoint to build out your
[targeted offers UX experience](/2024-10-01/api/getting-started#b-discover-a-lapsed-customer-clo). Local offers details
can be found by calling the [Get Eligible Locations](/2024-10-01/api/rewards/locations).<br/>
<b>Required scopes:</b> `rewards:read`

## Path parameters

- `organizationId` string, required: Your issuer organization ID, provided by Kard
- `userId` string, required: The ID of the user as defined on the issuers system

## Query parameters

- `page[size]` integer
- `page[after]` string
- `page[before]` string
- `filter[search]` string
- `filter[purchaseChannel]` CommonsPurchaseChannel[]
- `filter[category]` 'Arts & Entertainment' | 'Baby, Kids & Toys' | 'Books & Digital Media' | 'Clothing, Shoes & Accessories' | 'Computers, Electronics & Software' | 'Convenience' | 'Gas' | 'Department Stores' | 'Food & Beverage' | 'Health & Beauty' | 'Home & Garden' | 'Miscellaneous' | 'Occasions & Gifts' | 'Pets' | 'Sports & Outdoors' | 'Supplies & Services' | 'Travel': Category of merchant. Please use URL Encode for non single word categories. (Food & Beverage should be Food%20%26%20Beverage)
- `filter[isTargeted]` boolean
- `sort` 'startDate' | '-startDate' | 'expirationDate' | '-expirationDate' | 'name' | '-name'
- `include` string
- `supportedComponents` 'shortDescription' | 'longDescription' | 'baseReward' | 'boostedReward' | 'cta' | 'tags' | 'detailTags' | 'logoFlare' | 'progressBar': Available UI component types for offers

## Response `200`

Response with status 200

- UsersRewardsOffersResponseObject
  - `data` UsersRewardsOfferDataUnion[], required
    - `type` 'standardOffer', required: Discriminator value: standardOffer
    - `id` string, required: The unique identifier for a document in the database
    - `attributes` UsersRewardsStandardOfferFields, required
      - `terms` string, required: Terms and conditions on offer
      - `maxRedemptions` integer: Maximum times cardholder can redeem offer, if applicable
      - `name` string, required: Name of offer
      - `purchaseChannel` CommonsPurchaseChannel[], required
      - `userReward` UsersRewardsCommission, required
        - `type` 'FLAT' | 'PERCENT', required: Type of commission on offer (% or a flat $)
        - `value` number, double, required
      - `assets` UsersRewardsAsset[], required: Assets associated with offer
        - `type` string, required: What the asset shows. `IMG_VIEW` is the merchant logo, `BANNER_VIEW` a promotional banner, and `LOCATION_IMG_VIEW` a photo of the location. New values may be added over time.
        - `url` string, required: URL of the asset containing an attribution token
        - `alt` string, required: Alt text of the asset
      - `startDate` string, date-time, required: Beginning date of offer (UTC)
      - `expirationDate` string, date-time, required: Expiration date of offer if applicable (UTC)
      - `isTargeted` boolean, required: True returns only targeted offers, false returns only non-targeted offers
      - `minTransactionAmount` UsersRewardsAmount
        - `type` 'CENTS', required
        - `value` integer, required
      - `maxTransactionAmount` UsersRewardsAmount
        - `type` 'CENTS', required
        - `value` integer, required
      - `minRewardAmount` UsersRewardsAmount
        - `type` 'CENTS', required
        - `value` integer, required
      - `maxRewardAmount` UsersRewardsAmount
        - `type` 'CENTS', required
        - `value` integer, required
      - `websiteUrl` string: URL to the website of the offer provider
      - `description` string: Description of the offer
      - `components` CommonsOfferComponents: UI component data for rendering offer details
        - `shortDescription` string: Short description for the offer
        - `longDescription` string: Long description for the offer
        - `baseReward` string: Formatted reward string
        - `boostedReward` string: Formatted boosted reward string
        - `cta` CommonsCtaComponent: Call-to-action button component for offers
          - `buttonText` string, required: Text to display on the button
          - `buttonStyle` 'PRIMARY' | 'SECONDARY' | 'DISABLED', required: Available button styles for CTA components
          - `action` CommonsCtaAction: Action configuration for CTA button
            - `url` string, required: URL endpoint to call when button is clicked
            - `method` string, required: HTTP method to use (e.g., POST)
          - `startIcon` string: Icon identifier to display on the button
        - `tags` string[]: Tags for the offer
        - `detailTags` string[]: Detail tags for the offer
        - `logoFlare` CommonsLogoFlare: Logo flare configuration for offer display
          - `borderColor` 'PRIMARY' | 'SECONDARY', required: Available border color options for logo flare
          - `badge` CommonsLogoFlareBadge: Badge configuration for logo flare
            - `icon` string, required: Icon identifier for the badge
            - `position` 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT', required: Available positions for the logo flare badge
        - `progressBar` CommonsProgressBar: Progress bar component for tracking offer redemption progress
          - `total` integer, required: Total number of redemptions allowed
          - `currentProgress` integer, required: Number of redemptions the user has completed
          - `label` string, required: Formatted label for the progress bar
          - `segmented` boolean, required: Whether the progress bar should be displayed as segmented
          - `segments` CommonsProgressBarSegments: Segment configuration for the progress bar in different layouts
            - `details` CommonsProgressBarSegment: Segment configuration for a specific layout
              - …
            - `default` CommonsProgressBarSegment, required: Segment configuration for a specific layout
              - …
            - `progress` CommonsProgressBarSegmentProgress[], required: Per-segment fill state: one entry per segment node, index-aligned with the nodes (length equals the progress bar total). Reached nodes report 1 of 1 and not-yet-reached nodes 0 of 1; for a punch-card offer the in-progress node reports qualifying-purchase progress toward the next reward (Q mod N of N).
              - …
          - `labels` CommonsProgressBarLabels, required: Labels to render around the progress bar in different layouts
            - `details` CommonsProgressBarLabelPair: Left and right label configuration for a specific layout
              - …
            - `default` CommonsProgressBarLabelPair, required: Left and right label configuration for a specific layout
              - …
    - `relationships` UsersRewardsEligibilityOfferRelationship
      - `category` UsersRewardsCategoryRelationship, required
        - `data` UsersRewardsCategoryData[], required
          - `id` string, required: id of the category
          - `type` 'category', required
      - `locations` CommonsRelationshipMultiple
        - `data` CommonsRelationshipData[], required
          - `type` string, required: Type of document returned
          - `id` string, required: The ID of the related resource
  - `links` CommonsLinks, required: Related links to the API call
    - `self` string, required
    - `prev` string
    - `next` string
  - `included` UsersRewardsEligibilityOfferIncluded[]
    - `id` string, required: id of the category
    - `type` 'category', required
    - `attributes` UsersRewardsCategoryFields, required
      - `name` 'Arts & Entertainment' | 'Baby, Kids & Toys' | 'Books & Digital Media' | 'Clothing, Shoes & Accessories' | 'Computers, Electronics & Software' | 'Convenience' | 'Gas' | 'Department Stores' | 'Food & Beverage' | 'Health & Beauty' | 'Home & Garden' | 'Miscellaneous' | 'Occasions & Gifts' | 'Pets' | 'Sports & Outdoors' | 'Supplies & Services' | 'Travel', required: Category of merchant. Please use URL Encode for non single word categories. (Food & Beverage should be Food%20%26%20Beverage)
  - `meta` UsersRewardsOffersMeta: Metadata about the full result set across all pages
    - `availableCategories` UsersRewardsCategoryIncluded[]: All distinct categories available across the entire filtered result set, not just the current page
      - `id` string, required: id of the category
      - `type` 'category', required
      - `attributes` UsersRewardsCategoryFields, required
        - `name` 'Arts & Entertainment' | 'Baby, Kids & Toys' | 'Books & Digital Media' | 'Clothing, Shoes & Accessories' | 'Computers, Electronics & Software' | 'Convenience' | 'Gas' | 'Department Stores' | 'Food & Beverage' | 'Health & Beauty' | 'Home & Garden' | 'Miscellaneous' | 'Occasions & Gifts' | 'Pets' | 'Sports & Outdoors' | 'Supplies & Services' | 'Travel', required: Category of merchant. Please use URL Encode for non single word categories. (Food & Beverage should be Food%20%26%20Beverage)
    - `placementName` string: Display name of the placement, resolved server-side from its id. Populated only on the Get Placement Content endpoint; absent on the Get Offers By User endpoint.

## Other responses

- `400`: Error response with status 400
- `401`: Error response with status 401
- `404`: Error response with status 404
- `429`: The issuer's traffic grew faster than its allowed rate, or the endpoint's own limit was reached. If the response includes a `Retry-After` header, wait that many seconds before retrying. See [Rate Limits](/2024-10-01/api/integration-guides/rate-limits).
- `500`: Error response with status 500

## Changes

- **2026-10-22** `4e87fc8b018b`: 2 info
  - added the non-success response with the status `429`
  - added the optional property `data/items/oneOf[subschema #1]/relationships/oneOf[subschema #1: CategoryRelationshipObject]/locations` to the response with the `200` status

[Operation history](https://skmtc.dev/getkard/apis/getkard-2/changes/v2/issuers/:organizationId/users/:userId/offers/get.md)

---

[API](https://skmtc.dev/getkard/apis/getkard-2.md) - [All operations](https://skmtc.dev/getkard/apis/getkard-2/llms.txt) - [OpenAPI document](https://skmtc.dev/getkard/apis/getkard-2/revisions/bd47764afa21?raw)
