---
title: "Resolve Creator Invite Endpoint"
method: GET
path: "/api/v1/remy/creator-invite/{token}"
tags: ["remy"]
---

# Resolve Creator Invite Endpoint

`GET /api/v1/remy/creator-invite/{token}`

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/remy/creator-invite/{token}`
- Auth: API key in header `X-Internal-Api-Key`

Exchange the token in /creator-partnership/{token} for the form prefill behind it.

The token is an opaque id, so the landing page cannot read it — it has to ask. Same shared
static x-api-key gate as the intake routes, since the page calling this has no session.
The answer is built fresh on every call, not served from a snapshot taken when the link was
minted — current_plan moves the moment the creator joins or upgrades, so a creator who opened
the link, joined at Registered and came back would otherwise still be told they held nothing.

404s once the Redis TTL has passed; there is nothing else to expire.

Rate limited because the x-api-key it is gated on ships in the landing page's own source and
cannot be a secret. Guessing a token is hopeless either way — 32 random bytes — but the cap
costs nothing. Generous enough that a creator reloading the page never trips it.

## Path parameters

- `token` string, required

## Response `200`

Successful Response

- CreatorInvitePrefillResponseDTO: Resolved by the landing page from the token in its own URL — the answer to "who is this and what do we already know", nothing more. Every field is whatever we hold in Remy; the ones we have no value for come back null/empty so the form just leaves them blank.
  - `creator_id` string, required
  - `plan` string, required
  - `current_plan` string, nullable
  - `name` string, nullable
  - `email` string, nullable
  - `profile_link` string, nullable
  - `platform` string, nullable
  - `profile_pic_url` string, nullable
  - `niche` string[]
  - `country` string, nullable
  - `language` string[]
  - `brands_worked_with` string[]
  - `published_rate` number, nullable
  - `campaigns` object[]
  - `recent_posts` object[]
  - `connected_account` object, nullable
  - `connected_platforms` string[]
  - `has_brand_kit_proof` boolean
  - `city` string, nullable
  - `metrics` object

## Other responses

- `422`: Validation Error

## Changes

> 37 revisions in range; 1 not diffed.

- **2026-11-02** `f84fc05f417b`: 2 info
  - added the optional property `platform` to the response with the `200` status
  - added the optional property `profile_pic_url` to the response with the `200` status
- **2026-10-19** `6d8b6d320543`: 3 info
  - added the optional property `city` to the response with the `200` status
  - added the optional property `has_brand_kit_proof` to the response with the `200` status
  - added the optional property `metrics` to the response with the `200` status
- **2026-10-13** `c7202552278d`: 1 info
  - added the optional property `connected_platforms` to the response with the `200` status
- **2026-09-21** `a6cea1834b97`: 1 info
  - added the optional property `connected_account` to the response with the `200` status
- **2026-09-11** `163530d84bc1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/remy/creator-invite/:token/get.md)

---

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