---
title: "Creator Partnership Brand Kit Endpoint"
method: POST
path: "/api/v1/remy/creator-partnership/brand-kit"
tags: ["remy"]
---

# Creator Partnership Brand Kit Endpoint

`POST /api/v1/remy/creator-partnership/brand-kit`

## 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-partnership/brand-kit`
- Auth: API key in header `X-Internal-Api-Key`

Public brandbooster.ai/creator-partnership Recognized/Elite form — same base fields as the
Registered route, plus the T2 brand-kit questions (audience, niche, country, language,
engagement, past collabs, rate per video). Same shared static x-api-key gate as the
Registered route, not a Bearer token.

## Request body

- CreatorPartnershipBrandKitSignupRequestDTO: Submitted from the public brandbooster.ai/creator-partnership Recognized/Elite form — same base fields as the Registered intake, plus the T2 brand-kit questions.
  - `name` string, required
  - `email` string, email, required
  - `profile_link` string, required
  - `plan` 'registered' | 'recognized' | 'elite', required
  - `invite_token` string, nullable
  - `niche` string[]
  - `country` string, nullable
  - `city` string, nullable
  - `language` string[]
  - `brand_kit` CreatorPartnershipBrandKitDataDTO, required: Creator-declared brand-kit values plus optional native-app proof. The landing page normally sends screenshots for private analytics. Integrations such as a Google Forms Apps Script may already provide structured values, so those fields are accepted too; the service fills missing data directly and sends genuine conflicts through GPT-4o-mini.
    - `engagement_rate` number, nullable
    - `audience_demographic` object, nullable
    - `profile_visits` integer, nullable
    - `last_30_days_post_performance` object, nullable
    - `followers` integer, nullable
    - `published_rates` object[], nullable
    - `engagement_rate_screenshot` ScreenshotUploadDTO: One creator-submitted proof file, sent either inline or by link. content_base64 is what the landing-page form sends: it holds the file in the browser, so it can post the bytes straight into the request. source_url is for the intake paths that only ever have a link — a Google Form's Apply Script hands over a Drive file, and re-downloading it in the browser just to re-upload it would be silly. Either way the file ends up on our own bucket, so nothing downstream depends on the original link staying reachable.
      - `filename` string, nullable
      - `content_base64` string, nullable
      - `source_url` string, nullable
      - `content_type` string, nullable
    - `audience_demographic_screenshot` ScreenshotUploadDTO: One creator-submitted proof file, sent either inline or by link. content_base64 is what the landing-page form sends: it holds the file in the browser, so it can post the bytes straight into the request. source_url is for the intake paths that only ever have a link — a Google Form's Apply Script hands over a Drive file, and re-downloading it in the browser just to re-upload it would be silly. Either way the file ends up on our own bucket, so nothing downstream depends on the original link staying reachable.
      - `filename` string, nullable
      - `content_base64` string, nullable
      - `source_url` string, nullable
      - `content_type` string, nullable
    - `profile_visits_screenshot` ScreenshotUploadDTO: One creator-submitted proof file, sent either inline or by link. content_base64 is what the landing-page form sends: it holds the file in the browser, so it can post the bytes straight into the request. source_url is for the intake paths that only ever have a link — a Google Form's Apply Script hands over a Drive file, and re-downloading it in the browser just to re-upload it would be silly. Either way the file ends up on our own bucket, so nothing downstream depends on the original link staying reachable.
      - `filename` string, nullable
      - `content_base64` string, nullable
      - `source_url` string, nullable
      - `content_type` string, nullable
    - `last_30_days_post_performance_screenshot` ScreenshotUploadDTO: One creator-submitted proof file, sent either inline or by link. content_base64 is what the landing-page form sends: it holds the file in the browser, so it can post the bytes straight into the request. source_url is for the intake paths that only ever have a link — a Google Form's Apply Script hands over a Drive file, and re-downloading it in the browser just to re-upload it would be silly. Either way the file ends up on our own bucket, so nothing downstream depends on the original link staying reachable.
      - `filename` string, nullable
      - `content_base64` string, nullable
      - `source_url` string, nullable
      - `content_type` string, nullable
    - `followers_screenshot` ScreenshotUploadDTO: One creator-submitted proof file, sent either inline or by link. content_base64 is what the landing-page form sends: it holds the file in the browser, so it can post the bytes straight into the request. source_url is for the intake paths that only ever have a link — a Google Form's Apply Script hands over a Drive file, and re-downloading it in the browser just to re-upload it would be silly. Either way the file ends up on our own bucket, so nothing downstream depends on the original link staying reachable.
      - `filename` string, nullable
      - `content_base64` string, nullable
      - `source_url` string, nullable
      - `content_type` string, nullable
    - `brands_worked_with` string[], nullable
    - `published_rate` number, nullable
    - `published_rate_pdf` ScreenshotUploadDTO: One creator-submitted proof file, sent either inline or by link. content_base64 is what the landing-page form sends: it holds the file in the browser, so it can post the bytes straight into the request. source_url is for the intake paths that only ever have a link — a Google Form's Apply Script hands over a Drive file, and re-downloading it in the browser just to re-upload it would be silly. Either way the file ends up on our own bucket, so nothing downstream depends on the original link staying reachable.
      - `filename` string, nullable
      - `content_base64` string, nullable
      - `source_url` string, nullable
      - `content_type` string, nullable
    - `best_performing_reel_url` string, nullable
    - `brand_names` string[], nullable
    - `avg_views` integer, nullable
    - `avg_shares` number, nullable
    - `audience_job_titles` string[], nullable
    - `audience_regions` string[], nullable
  - `intake` 'instagram' | 'manual' | 'linkedin'

## Response `202`

Successful Response

- CreatorPartnershipJobStartedResponseDTO: Accepted creator-partnership upgrade; processing continues in a Remy job.
  - `job_id` string, required
  - `status` string, required
  - `operation` string, required
  - `requested_plan` string, required
  - `status_url` string, required

## Other responses

- `422`: Validation Error

## Changes

> 37 revisions in range; 1 not diffed.

- **2026-11-02** `f84fc05f417b`: 3 info
  - added the new optional request property `brand_kit/audience_job_titles`
  - added the new optional request property `brand_kit/audience_regions`
  - added the new `linkedin` enum value to the request property `intake/anyOf[subschema #1: CreatorIntake]/`
- **2026-10-19** `6d8b6d320543`: 4 info
  - added the new optional request property `brand_kit/avg_shares`
  - added the new optional request property `brand_kit/avg_views`
  - added the new optional request property `city`
  - added the new optional request property `intake`
- **2026-09-16** `dda5cf04b73d`: 1 breaking, 7 info
  - removed the success response with the status `200`
  - added the new optional request property `brand_kit/audience_demographic`
  - added the new optional request property `brand_kit/engagement_rate`
  - added the new optional request property `brand_kit/followers`
  - …4 more
- **2026-09-11** `163530d84bc1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/remy/creator-partnership/brand-kit/post.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)
