Get a recruitment application
One application with everything its details view shows: the standard answers (socials, experience, niches, goals), the answers to the brand's own questions, and the applicant's social stats and latest posts once they've been collected.
bearerAuth recruitment:readAuthorizationBearer <token>Personal access token. Scopes: account:read, creator:read, creator:earnings, managed:read, coach:read, brand:read, creators:read, videos:read, analytics:read, recruitment:read, engagement:read, support:read, integrations:read, payouts:read, funds:read, billing:read.
Scope: recruitment:read
brandId*stringA brand id from GET /me or GET /creator/brands.
1 <= lengthsubmissionId*stringAn id from GET /brands/{brandId}/recruitment/submissions.
1 <= lengthSuccess.
application/json- response
id*stringstatus*string"draft" (started, not sent), "submitted" (awaiting review), "approved", "rejected" or "rejected_coach" (an older automatic block).
name*string|nullemail*string|nullhasAccount*booleanThe applicant has a Bloss account (every sent application does).
discordConfirmed*booleanThe applicant ticked that they joined the brand's Discord.
source*|The label of the invite link they applied through.
creatorId*|Once approved: their creator profile in the brand.
rejectionReason*string|nullcreatedAt*stringWhen the application was started.
submittedAt*string|nullreviewedAt*string|nullanswers*customAnswers*array<>Answers to the brand's own questions, with the question as asked.
socials*curl -X GET 'https://example.com/api/v1/brands/string/recruitment/submissions/string'{ "id": "string", "status": "string", "name": "string", "email": "string", "hasAccount": true, "discordConfirmed": true, "source": "string", "creatorId": "string", "rejectionReason": "string", "createdAt": "string", "submittedAt": "string", "reviewedAt": "string", "answers": { "displayName": "string", "location": "string", "languages": [ "string" ], "instagram": "string", "tiktok": "string", "youtube": "string", "facebook": "string", "portfolioUrl": "string", "bestWorkUrl": "string", "experience": "string", "niches": [ "string" ], "whyAGoodFit": "string", "ugcGoal": "string", "heardAboutUs": "string", "discordUsername": "string" }, "customAnswers": [ { "label": "string", "value": "string" } ], "socials": { "status": "none", "collectedAt": "string", "avatarUrl": "string", "bio": "string", "totals": { "followers": 0, "viewsAllTime": 0, "viewsLast7Days": 0, "engagementRate": 0 }, "platforms": [ { "platform": "instagram", "username": "string", "followers": 0, "engagementRate": 0, "viewsLast7Days": 0, "viewsAllTime": 0 } ], "latestPosts": [ { "platform": "string", "url": "string", "title": "string", "thumbnailUrl": "string", "views": 0, "likes": 0, "postedAt": "string" } ] }}The brand's pay rules and payout provider GET
How this brand pays creators, as on Settings › Rules: base pay per set (pair) — one rate, or one per platform — the minimum views a set needs and how they're counted, the payout model (cycles or a running ledger), the bonus (view tiers or a rate per 1,000 views with an optional cap), the referral bonus, instant base pay, the base-pay deadline, and the payout provider with whether it's connected. Provider credentials never appear; the provider account id is masked.
List recruitment applications GET
Applications from the brand's public recruitment page, newest first, as on Recruitment › Submissions. Filter by `status`; `rejected` includes older automatic blocks. GET .../submissions/{submissionId} has the answers and the applicant's social stats.