---
title: "List partner links"
method: GET
path: "/partners/links"
tags: ["Partners"]
---

# List partner links

`GET /partners/links`

Returns the authenticated user's standard referral URL and a page of their balance reward links, newest first. Expired and fully claimed rewards are included by default; deleted rewards are excluded. Filter status to narrow the promotion links. Users do not need to be enrolled to retrieve their links.

## Query parameters

- `status` string[]
- `first` integer
- `after` string
- `last` integer
- `before` string

## Response `200`

partner links listed

- object
  - `base_referral_url` string, required — The partner's standard shareable referral URL.
  - `data` PartnerRewardLink[], required
    - `expires_at` string, nullable, required — When the reward stops accepting new claims and qualifying volume, as an ISO 8601 timestamp. Null when it does not expire.
    - `id` string, required — Onboarding reward ID, prefixed `onbr_`.
    - `max_redemptions` integer, nullable, required — How many businesses can earn this reward in total. Null when unlimited.
    - `name` string, nullable, required — Promotion name used in the reward link. Null when the reward has no slug.
    - `partner_reward_amount` Money, required
      - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `qualification_amount` Money, required
      - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `qualification_income_source` 'sales' | 'ad_spend' | 'null', nullable, required — Income source whose volume qualifies the business. Null for an immediate reward.
    - `redemptions` integer, required — Number of businesses that have claimed this reward. Rewards with a qualification count when the reward is granted; immediate rewards count when the business is attributed.
    - `referral_url` string, nullable, required — Shareable partner URL that applies this promotion to a referred business. Null when the reward has no slug.
    - `referred_business_reward_amount` Money, required
      - `amount` string, required — The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
      - `currency` string, required — Three-letter ISO 4217 currency code, lowercase.
      - `decimals` integer, required — How many decimal places the amount CARRIES — the precision the charge itself runs at.
      - `display_decimals` integer, required — How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
    - `reward_type` 'ad_credit' | 'balance_credit', required — How the reward is delivered.
    - `status` 'available' | 'fully_claimed' | 'expired' | 'unavailable', required — Whether the reward can still be claimed: `available`, `fully_claimed`, `expired`, or `unavailable`.
  - `page_info` object, required
    - `end_cursor` string, nullable, required
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `start_cursor` string, nullable, required

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `403` — Forbidden

## Changes

> 64 revisions in range; 1 not diffed.

- **2026-09-19** `d629b0d5d839` — 2 info
  - the security scope `partner:basic:read` was added to the endpoint's security scheme `bearerAuth`
  - the security scope `referral:basic:read` was removed from the endpoint's security scheme `bearerAuth`
- **2026-09-18** `355991ab86d5` — 2 info
  - the security scope `partner:basic:read` was added to the endpoint's security scheme `bearerAuth`
  - the security scope `referral:basic:read` was removed from the endpoint's security scheme `bearerAuth`
- **2026-09-17** `076176906e3f` — 2 info
  - the security scope `partner:basic:read` was added to the endpoint's security scheme `bearerAuth`
  - the security scope `referral:basic:read` was removed from the endpoint's security scheme `bearerAuth`
- **2026-09-17** `ef86d14ef691` — 2 info
  - the security scope `partner:basic:read` was added to the endpoint's security scheme `bearerAuth`
  - the security scope `referral:basic:read` was removed from the endpoint's security scheme `bearerAuth`
- **2026-09-16** `ff3a76573563` — 2 info
  - the security scope `partner:basic:read` was added to the endpoint's security scheme `bearerAuth`
  - the security scope `referral:basic:read` was removed from the endpoint's security scheme `bearerAuth`

[Full history](https://skmtc.dev/whop/apis/whop-api/changes/partners/links/get.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) · [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/d629b0d5d839?raw)
