curl --request POST \ --url https://workspace.passionfroot.me/api/creators/v1/discover/campaigns/{campaignId}/apply \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "message": "My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks."}'
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: 'My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks.'
})
};
fetch('https://workspace.passionfroot.me/api/creators/v1/discover/campaigns/{campaignId}/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests
url = "https://workspace.passionfroot.me/api/creators/v1/discover/campaigns/{campaignId}/apply"
payload = { "message": "My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks." }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
{
"error": {
"code": "RATE_LIMITED",
"message": "This API key is over its rate limit. Wait for Retry-After before sending more.",
"details": {
"limit": 2,
"windowSeconds": 1
}
}
}
Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign’s categories and audience reach, or gets NOT_ELIGIBLE. A campaign that has closed answers CAMPAIGN_CLOSED. Naturally idempotent, so applying again returns the existing application with a 200.
POST
/
discover
/
campaigns
/
{campaignId}
/
apply
Apply to a campaign
curl --request POST \ --url https://workspace.passionfroot.me/api/creators/v1/discover/campaigns/{campaignId}/apply \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "message": "My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks."}'
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: 'My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks.'
})
};
fetch('https://workspace.passionfroot.me/api/creators/v1/discover/campaigns/{campaignId}/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests
url = "https://workspace.passionfroot.me/api/creators/v1/discover/campaigns/{campaignId}/apply"
payload = { "message": "My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks." }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
{
"error": {
"code": "RATE_LIMITED",
"message": "This API key is over its rate limit. Wait for Retry-After before sending more.",
"details": {
"limit": 2,
"windowSeconds": 1
}
}
}
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Passionfroot API","description":"Passionfroot's REST APIs for brands and creators: sync collaborations, placements, proposals and conversations with your CRM, reporting tools and AI agents.","colors":{"primary":"#43423D","light":"#D9D6CE","dark":"#2B2B28"},"logo":{"light":"https://res.cloudinary.com/passionfroot/image/upload/docs/logo-mark.png","dark":"https://res.cloudinary.com/passionfroot/image/upload/docs/wordmark-white.png","href":"https://www.passionfroot.me"},"favicon":{"light":"https://mintcdn.com/passionfroot/aLb0x3hoYHDEp_fx/images/Favicon.png?fit=max\u0026auto=format\u0026n=aLb0x3hoYHDEp_fx\u0026q=85\u0026s=ecd701f0962d0a7e2e3046080bcb5530","dark":"https://mintcdn.com/passionfroot/aLb0x3hoYHDEp_fx/images/Favicon.png?fit=max\u0026auto=format\u0026n=aLb0x3hoYHDEp_fx\u0026q=85\u0026s=ecd701f0962d0a7e2e3046080bcb5530"},"api":{"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required","languages":["curl","javascript","python"],"prefill":true}},"appearance":{"default":"light","strict":true},"background":{"color":{"light":"#FDFDFA","dark":"#1D1D1C"}},"navbar":{"links":[{"href":"https://www.passionfroot.me","label":"Passionfroot"}],"primary":{"type":"button","label":"Open workspace","href":"https://workspace.passionfroot.me"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/passionfroot"}},"seo":{"metatags":{"og:locale":"en_US"},"indexing":"navigable"},"fonts":{"family":"DM Sans"},"icons":{"library":"lucide"},"thumbnails":{"appearance":"dark","background":"https://res.cloudinary.com/passionfroot/image/upload/docs/og-background.jpg","fonts":{"family":"DM Sans"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"passionfroot","hasAudioNarration":false,"actualSubdomain":"passionfroot","customDomains":["docs.passionfroot.me"],"gitSource":{"type":"github","owner":"passionfroot","repo":"workspace","deployBranch":"main","contentDirectory":"public-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af1649a5ada1a893f443af0","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Creator API","count":20},{"language":"default","tag":"Creator API v1","count":20},{"language":"default","tag":"Partner API","count":13},{"language":"default","tag":"Partner API v1","count":13},{"language":"default","tag":"Conversations","count":9},{"language":"default","tag":"Get started","count":6},{"language":"default","tag":"Proposals","count":6},{"language":"default","tag":"Core concepts","count":4},{"language":"default","tag":"Collaborations","count":4},{"language":"default","tag":"Discover","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"@import url(\"https://use.typekit.net/iur2yej.css\");/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6h9Q.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6h9Q.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6h9Q.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--pf-default: #fdfdfa;--pf-foundation: #f8f7f2;--pf-brand-surface: #f5f3ea;--pf-clickable: #fff;--pf-hovered: #f9f8f5;--pf-hovered-strong: #f5f2eb;--pf-primary: #43423d;--pf-secondary: #7b7974;--pf-muted: #9a978f;--pf-ink-800: #2b2b28;--pf-ink-900: #1d1d1c;--pf-border-subtle: #f3f1ec;--pf-border-default: #edeae4;--pf-border-strong: #d9d6ce;--pf-border-vstrong: #a4a39d;--pf-orange-600: #f57e42;--pf-green-600: #3ebb85;--pf-shadow-border-default: 0 0 0 1px var(--pf-border-default),\n 0 1px 1px -0.5px rgba(29, 29, 28, 0.04), 0 3px 3px -1.5px rgba(29, 29, 28, 0.04),\n 0 6px 6px -3px rgba(29, 29, 28, 0.04), 0 12px 12px -6px rgba(29, 29, 28, 0.02);--pf-shadow-border-strong: 0 0 0 1px var(--pf-border-strong),\n 0 1px 1px -0.5px rgba(29, 29, 28, 0.04), 0 3px 3px -1.5px rgba(29, 29, 28, 0.04),\n 0 6px 6px -3px rgba(29, 29, 28, 0.04), 0 12px 12px -6px rgba(29, 29, 28, 0.02),\n 0 24px 24px -12px rgba(29, 29, 28, 0.02);--pf-shadow-border-vstrong: 0 0 0 1px var(--pf-border-vstrong),\n 0 1px 1px -0.5px rgba(29, 29, 28, 0.06), 0 3px 3px -1.5px rgba(29, 29, 28, 0.06),\n 0 6px 6px -3px rgba(29, 29, 28, 0.06), 0 12px 12px -6px rgba(29, 29, 28, 0.06),\n 0 24px 24px -12px rgba(29, 29, 28, 0.06);--pf-shadow-primary-button: 0 1px 1px -0.5px rgba(29, 29, 28, 0.02),\n 0 3px 3px -1.5px rgba(29, 29, 28, 0.02), 0 6px 6px -3px rgba(29, 29, 28, 0.02),\n 0 12px 12px -6px rgba(29, 29, 28, 0.01);--pf-ease: ease;--pf-ease-out: cubic-bezier(0.23, 1, 0.32, 1);--pf-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);--pf-duration-color: 150ms;--pf-duration-press: 160ms;--pf-duration-move: 200ms;--pf-shadow-primary-button-hover: 0 1px 1px -0.5px rgba(29, 29, 28, 0.06),\n 0 3px 3px -1.5px rgba(29, 29, 28, 0.06), 0 6px 6px -3px rgba(29, 29, 28, 0.06),\n 0 12px 12px -6px rgba(29, 29, 28, 0.06)}body{color:var(--pf-primary);font-family:\"DM Sans\", sans-serif}h1{color:var(--pf-primary);font-family:\"new-kansas\", sans-serif;font-weight:500}h2,h3,h4,h5,h6,#content-side-layout{color:var(--pf-primary);font-family:\"DM Sans\", sans-serif;font-weight:700}#navbar{background:rgba(253, 253, 250, 0.96);border-bottom-color:var(--pf-border-default)}.pf-hero{margin:1.75rem 0 2rem;padding:2rem;background:var(--pf-clickable);box-shadow:var(--pf-shadow-border-default);border-radius:1rem}.pf-eyebrow,.pf-card-label{color:var(--pf-secondary);font-size:0.75rem;font-weight:700;letter-spacing:0.025em;line-height:1rem;text-transform:uppercase}.pf-eyebrow{display:block}.pf-card-label{display:flex;align-items:center;gap:0.5rem}.pf-card-label::before{width:0.45rem;height:0.45rem;border-radius:9999px;background:var(--pf-muted);content:\"\"}.pf-partner-card .pf-card-label::before{background:var(--pf-green-600)}.pf-creator-card .pf-card-label::before{background:var(--pf-orange-600)}.pf-hero-copy{max-width:42rem;margin:0.75rem 0 0;color:var(--pf-primary);font-family:\"new-kansas\", sans-serif;font-size:1.25rem;font-weight:500;line-height:1.875rem}.pf-hero-actions{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.5rem}.pf-primary-action,.pf-secondary-action{display:inline-flex;align-items:center;height:2.38rem;padding:0 1rem;border:1px solid transparent;border-radius:0.75rem;font-size:1rem;font-weight:700;line-height:1.5rem;white-space:nowrap;text-decoration:none;transition:background-color var(--pf-duration-color) var(--pf-ease),\n background-size var(--pf-duration-move) var(--pf-ease-in-out),\n box-shadow var(--pf-duration-color) var(--pf-ease),\n border-color var(--pf-duration-color) var(--pf-ease),\n color var(--pf-duration-color) var(--pf-ease),\n transform var(--pf-duration-press) var(--pf-ease-out)}.pf-primary-action{color:var(--pf-border-subtle)!important;border-color:var(--pf-primary);background-color:var(--pf-primary);background-image:linear-gradient(to top, var(--pf-ink-800), var(--pf-primary));background-repeat:no-repeat;background-position:bottom;background-size:100% 100%;box-shadow:var(--pf-shadow-primary-button)}@media (hover: hover) and (pointer: fine){.pf-primary-action:hover{color:#fff!important;background-size:100% 50%;box-shadow:var(--pf-shadow-primary-button-hover)}}.pf-primary-action:active{box-shadow:none;transform:scale(0.985)}.pf-secondary-action{color:var(--pf-primary)!important;background:var(--pf-clickable);box-shadow:var(--pf-shadow-border-strong)}@media (hover: hover) and (pointer: fine){.pf-secondary-action:hover{background:var(--pf-hovered);box-shadow:var(--pf-shadow-border-vstrong)}}.pf-secondary-action:active{border-color:var(--pf-border-vstrong);box-shadow:none}.pf-api-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1rem;margin:0 0 2.75rem}.pf-api-card{display:flex;min-height:13rem;flex-direction:column;gap:0.75rem;padding:1rem;color:var(--pf-primary)!important;background:var(--pf-clickable);box-shadow:var(--pf-shadow-border-default);border-radius:0.75rem;text-decoration:none!important;transition:background-color var(--pf-duration-color) var(--pf-ease),\n box-shadow var(--pf-duration-color) var(--pf-ease)}@media (hover: hover) and (pointer: fine){.pf-api-card:hover{background:var(--pf-hovered);box-shadow:var(--pf-shadow-border-strong)}}.pf-card-title{display:block;color:var(--pf-primary);font-size:1.125rem;font-weight:700;line-height:1.75rem}.pf-api-card>span:not(.pf-card-label):not(.pf-card-link):not(.pf-card-title){color:var(--pf-secondary);font-weight:400;font-size:0.875rem;line-height:1.25rem}.pf-card-link{margin-top:auto;color:var(--pf-primary);font-size:0.875rem;font-weight:700;line-height:1.25rem}@media (max-width: 640px){.pf-hero{padding:1.4rem}.pf-api-grid{grid-template-columns:1fr}}.pf-api-card{border:0}#content-area p,#content-area li,#content-area td{color:var(--pf-primary)}#content-area :not(pre)>code{color:var(--pf-primary);background:var(--pf-foundation);box-shadow:0 0 0 1px var(--pf-border-subtle)}.callout[class*=\"yellow\"],.callout[class*=\"amber\"],.callout[class*=\"warning\"]{color:var(--pf-primary);background:#fcf7f5;border-color:#ffe6db;border-radius:0.625rem}.callout[class*=\"yellow\"] svg,.callout[class*=\"amber\"] svg,.callout[class*=\"warning\"] svg{color:var(--pf-orange-600)}#sidebar button,#sidebar [role=\"button\"],#sidebar div[class*=\"cursor-pointer\"],#navbar a,#navbar button,#content-area a,#content-area button:not(.tryit-button),.pagination-prev,.pagination-next,#table-of-contents a{transition:background-color var(--pf-duration-color) var(--pf-ease),\n color var(--pf-duration-color) var(--pf-ease),\n border-color var(--pf-duration-color) var(--pf-ease),\n box-shadow var(--pf-duration-color) var(--pf-ease),\n opacity var(--pf-duration-color) var(--pf-ease)}@media (prefers-reduced-motion: reduce){#sidebar button,#sidebar [role=\"button\"],#navbar a,#navbar button,#content-area a,#content-area button:not(.tryit-button),.pagination-prev,.pagination-next,#table-of-contents a{transition:none}}#sidebar-content{left:1rem}#sidebar .sticky.pointer-events-none{display:none}#sidebar-content>div{padding-right:0.75rem;padding-left:0.75rem}.sidebar-group-header,.sidebar-group-header *{margin-bottom:0.25rem;padding:0.5rem 0.5rem 0.5rem 1rem;color:var(--pf-muted);font-family:\"DM Sans\", sans-serif;font-size:0.75rem;font-weight:500;letter-spacing:0.025em;line-height:1rem;text-transform:uppercase}.sidebar-group-header *{margin-bottom:0;padding:0}#sidebar #navigation-items button{padding:0.375rem 0.5rem;border-radius:0.625rem;font-weight:500}#sidebar #navigation-items li li{margin-left:1rem}#sidebar #navigation-items a{padding:0.375rem 0.5rem!important;color:var(--pf-primary);background:transparent;border-radius:0.625rem;font-size:0.875rem;font-weight:500;text-shadow:none;transition:background-color 100ms var(--pf-ease)}@media (hover: hover) and (pointer: fine){#sidebar #navigation-items a:hover{background:var(--pf-hovered);transition-duration:150ms}}#sidebar #navigation-items a[aria-current=\"page\"]{background:var(--pf-hovered-strong)}.tryit-button{color:var(--pf-border-subtle);border:1px solid var(--pf-primary);background-color:var(--pf-primary);background-image:linear-gradient(to top, var(--pf-ink-800), var(--pf-primary));background-repeat:no-repeat;background-position:bottom;background-size:100% 100%;border-radius:0.75rem;font-weight:700;box-shadow:var(--pf-shadow-primary-button);transition:background-size var(--pf-duration-move) var(--pf-ease-in-out),\n box-shadow var(--pf-duration-color) var(--pf-ease),\n color var(--pf-duration-color) var(--pf-ease),\n transform var(--pf-duration-press) var(--pf-ease-out)}@media (hover: hover) and (pointer: fine){.tryit-button:hover{color:#fff;opacity:1;background-size:100% 50%;box-shadow:var(--pf-shadow-primary-button-hover)}}.tryit-button:active{box-shadow:none;transform:scale(0.985)}#topbar-cta-button a{border-radius:0.625rem;font-weight:700;transition:background-color var(--pf-duration-color) var(--pf-ease),\n color var(--pf-duration-color) var(--pf-ease),\n transform var(--pf-duration-press) var(--pf-ease-out)}#topbar-cta-button a>span:first-child{background:transparent;border-radius:0.625rem;transition:background-color var(--pf-duration-color) var(--pf-ease)}#topbar-cta-button a div,#topbar-cta-button a div span,#topbar-cta-button a div svg{color:var(--pf-secondary);transition:color var(--pf-duration-color) var(--pf-ease)}@media (hover: hover) and (pointer: fine){#topbar-cta-button a:hover>span:first-child{background:var(--pf-hovered-strong);opacity:1}}@media (hover: hover) and (pointer: fine){#topbar-cta-button a:hover div,#topbar-cta-button a:hover div span,#topbar-cta-button a:hover div svg{color:var(--pf-primary)}}#topbar-cta-button a:active{transform:scale(0.985)}#topbar-cta-button a:active>span:first-child{background:#f1efe5}.sidebar-group-header svg{transition:color var(--pf-duration-color) var(--pf-ease),\n rotate var(--pf-duration-color) var(--pf-ease-in-out),\n opacity var(--pf-duration-color) var(--pf-ease)}#sidebar #navigation-items a,.tryit-button,.pf-api-card,.pf-primary-action,.pf-secondary-action,#topbar-cta-button a{outline:none}#sidebar #navigation-items a:focus-visible,.tryit-button:focus-visible,.pf-api-card:focus-visible,.pf-primary-action:focus-visible,.pf-secondary-action:focus-visible,#topbar-cta-button a:focus-visible{box-shadow:0 0 0 3px rgba(67, 66, 61, 0.2)}@media (prefers-reduced-motion: no-preference){@keyframes pf-content-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}html:not(.pf-navigated) .pf-hero{animation:pf-content-enter 300ms var(--pf-ease-out) both}html:not(.pf-navigated) .pf-api-grid{animation:pf-content-enter 300ms var(--pf-ease-out) 60ms both}}@media (prefers-reduced-motion: reduce){#sidebar #navigation-items a,.sidebar-group-header svg,.tryit-button,#topbar-cta-button a,#topbar-cta-button a>span:first-child,.pf-api-card,.pf-primary-action,.pf-secondary-action{transition:none}.tryit-button:active,#topbar-cta-button a:active,.pf-primary-action:active{transform:none}}.nav-tabs{align-self:center;height:auto;gap:0.125rem;padding:0.25rem;background:var(--pf-foundation);border-radius:0.75rem}.nav-tabs-item{height:auto;padding:0.375rem 0.75rem;border-radius:0.5rem;color:var(--pf-secondary);font-size:0.875rem;font-weight:500;line-height:1.25rem;text-shadow:none}.nav-tabs-item:hover{color:var(--pf-primary)}.nav-tabs-item[class~=\"text-gray-800\"],.nav-tabs-item[aria-current]{color:var(--pf-primary);background:var(--pf-clickable);box-shadow:var(--pf-shadow-border-default)}.nav-tabs-item>div,.nav-tabs-item>span:empty{display:none}"}],"page":{"pagePath":"creators/discover/apply-to-a-campaign","slug":"/creators/discover/apply-to-a-campaign","pageMetadata":{"title":"Apply to a campaign","description":"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign's categories and audience reach, or gets `NOT_ELIGIBLE`. A campaign that has closed answers `CAMPAIGN_CLOSED`. Naturally idempotent, so applying again returns the existing application with a 200.","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /discover/campaigns/{campaignId}/apply","href":"/creators/discover/apply-to-a-campaign","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign’s categories and audience reach, or gets \", _jsx(_components.code, {\n children: \"NOT_ELIGIBLE\"\n }), \". A campaign that has closed answers \", _jsx(_components.code, {\n children: \"CAMPAIGN_CLOSED\"\n }), \". Naturally idempotent, so applying again returns the existing application with a 200.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Apply to a campaign","description":"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign's categories and audience reach, or gets `NOT_ELIGIBLE`. A campaign that has closed answers `CAMPAIGN_CLOSED`. Naturally idempotent, so applying again returns the existing application with a 200.","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /discover/campaigns/{campaignId}/apply","href":"/creators/discover/apply-to-a-campaign","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/passionfroot/de2d42d0e8c09c60/first-navigation.js","/_mintlify/custom/passionfroot/8a1c01d309264dad/workspace-link.js"],"openApiReferenceData":{"operation":{"tags":["Discover"],"summary":"Apply to a campaign","description":"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign's categories and audience reach, or gets `NOT_ELIGIBLE`. A campaign that has closed answers `CAMPAIGN_CLOSED`. Naturally idempotent, so applying again returns the existing application with a 200.","operationId":"applyToCreatorDiscoverCampaign","x-required-scope":"creator:write:campaign_applications","parameters":["f0671f7f-2798-4f6e-bd57-02b897a58c13"],"requestBody":"32bf4cbb-e928-47db-ac6f-e5ff05385138","responses":{"200":"76ef08b4-149d-4076-aba1-aa697de74b46","201":"962105e9-e81f-4ef5-9e9d-c192ff0f304b","400":"0929bac6-6b7f-42e5-8bc6-4ada725f3b31","401":"62a27b11-730c-4c61-9fa9-7baaee487e41","403":"909d76a6-8080-4856-b15c-b1e53f9ced23","404":"9785fe89-0d68-487f-8726-a3f7cd16f669","409":"d4106a2d-83f1-4d5a-987d-8cbb62c40b54","429":"925c35b2-3c63-46b4-8b53-3d36f33a741f","500":"7b569b10-34bc-405f-84f3-f1a516280144","503":"af4d9dcd-e6bd-487d-abab-2262a15b76c8"},"method":"post","type":"path","servers":["cba38c85-4ca5-4aef-90e9-037cc2d4014f"],"security":["17dbe001-7436-471f-ae6d-fc85abfd7fa2"],"path":"/discover/campaigns/{campaignId}/apply","baseUrlOptions":["https://workspace.passionfroot.me/api/creators/v1"],"title":"Apply to a campaign","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.message":"My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks."}]},"dependencies":{"parameters":{"f0671f7f-2798-4f6e-bd57-02b897a58c13":{"name":"campaignId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["message"],"properties":{"message":{"type":"string","maxLength":10000,"description":"Why you're a good fit, as plain text or simple HTML. A message with an email address in it is refused, since brands reply in Passionfroot.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"message":"My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks."},"examples":{"Example":{"title":"Example","value":{"message":"My audience is 20k indie developers, and my last sponsored video for a dev tool got 4% clicks."}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"76ef08b4-149d-4076-aba1-aa697de74b46":{"description":"The creator's application to the campaign.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","message","createdAt"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"status":{"type":"string","enum":["pending","reviewing","accepted","rejected"],"description":"`reviewing` means the brand saved the application for later.","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"The message the brand received with the application. May contain basic HTML.","isRequired":true,"uniqueKey":"data.message","typeLabel":"string"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"\u003cstring>","status":"pending","message":"\u003cstring>","createdAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"962105e9-e81f-4ef5-9e9d-c192ff0f304b":{"description":"The creator's application to the campaign.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","message","createdAt"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"status":{"type":"string","enum":["pending","reviewing","accepted","rejected"],"description":"`reviewing` means the brand saved the application for later.","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"The message the brand received with the application. May contain basic HTML.","isRequired":true,"uniqueKey":"data.message","typeLabel":"string"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"\u003cstring>","status":"pending","message":"\u003cstring>","createdAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"0929bac6-6b7f-42e5-8bc6-4ada725f3b31":{"description":"Invalid parameters or body.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"62a27b11-730c-4c61-9fa9-7baaee487e41":{"description":"Missing, invalid, expired, or revoked API key, or a creator account that is not approved.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"909d76a6-8080-4856-b15c-b1e53f9ced23":{"description":"The key lacks the required scope, the creator has no payouts set up for Discover (`DISCOVER_UNAVAILABLE`), or the creator doesn't match the campaign they apply to (`NOT_ELIGIBLE`).","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"9785fe89-0d68-487f-8726-a3f7cd16f669":{"description":"Resource not found or not owned by this creator.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"d4106a2d-83f1-4d5a-987d-8cbb62c40b54":{"description":"The operation conflicts with current state or an identical write is in progress.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"925c35b2-3c63-46b4-8b53-3d36f33a741f":{"description":"Rate limit exceeded.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"RATE_LIMITED","message":"This API key is over its rate limit. Wait for Retry-After before sending more.","details":{"limit":2,"windowSeconds":1}}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RATE_LIMITED","message":"This API key is over its rate limit. Wait for Retry-After before sending more.","details":{"limit":2,"windowSeconds":1}}}}},"exampleType":"examples"}},"exampleType":"examples"},"7b569b10-34bc-405f-84f3-f1a516280144":{"description":"Unexpected server failure. Re-read state before retrying a write.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"af4d9dcd-e6bd-487d-abab-2262a15b76c8":{"description":"Temporary key-verification or write-lock infrastructure failure. Retry after the indicated delay.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"description":"The body of every error response. Branch on `code`; messages can be reworded.","properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable, machine-readable reason. New codes may be added; existing ones never change meaning.","enum":["INVALID_REQUEST","INVALID_QUERY_PARAMETER","INVALID_BODY","INVALID_ID","INVALID_CURSOR","INVALID_IDEMPOTENCY_KEY","UNAUTHENTICATED","MISSING_SCOPE","DISCOVER_UNAVAILABLE","NOT_ELIGIBLE","NOT_FOUND","METHOD_NOT_ALLOWED","CONFLICT","CAMPAIGN_CLOSED","IDEMPOTENCY_IN_PROGRESS","UNPROCESSABLE","IDEMPOTENCY_KEY_REUSED","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong and what to do next, written for a developer or agent.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Present only when there is something structured to act on, such as one entry per invalid field (`{ field, message }`).","uniqueKey":"error.details","typeLabel":"any"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"\u003cstring>","details":"\u003cunknown>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"17dbe001-7436-471f-ae6d-fc85abfd7fa2":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Passionfroot API key","description":"Create an API key from Settings → AI agents \u0026 API in an approved Creator workspace.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"cba38c85-4ca5-4aef-90e9-037cc2d4014f":{"url":"https://workspace.passionfroot.me/api/creators/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"Passionfroot API key","description":"Create an API key from Settings → AI agents \u0026 API in an approved Creator workspace.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Create an API key from Settings → AI agents \u0026 API in an approved Creator workspace.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/creator.yaml"},"subdomain":"passionfroot","siteName":"Passionfroot API","title":"Apply to a campaign - Passionfroot API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T06:13:53.207Z","originalFileLocation":"creators/discover/apply-to-a-campaign.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign\u0026#x27;s categories and audience reach, or gets NOT_ELIGIBLE. A campaign that has closed answers CAMPAIGN_CLOSED. Naturally idempotent, so applying again returns the existing application with a 200.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Passionfroot API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Apply to a campaign - Passionfroot API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign\u0026#x27;s categories and audience reach, or gets NOT_ELIGIBLE. A campaign that has closed answers CAMPAIGN_CLOSED. Naturally idempotent, so applying again returns the existing application with a 200.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Passionfroot API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://passionfroot.mintlify.site/_mintlify/api/og/v2?division=Discover\u0026amp;title=Apply+to+a+campaign\u0026amp;description=Applies+to+an+open+campaign+with+a+message%2C+as+the+campaign+page+in+the+app+does.+The+creator+has+to+match+the+campaign%27s+categories+and+audience+reach%2C+or+gets\u0026amp;theme=e781fa803678ee492b1f6a38\u0026amp;signature=148d8616ae46f4d9253023d270ae9332ddcb96786d564da9c78b7e11e1c515d6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Apply to a campaign - Passionfroot API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign\u0026#x27;s categories and audience reach, or gets NOT_ELIGIBLE. A campaign that has closed answers CAMPAIGN_CLOSED. Naturally idempotent, so applying again returns the existing application with a 200.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://passionfroot.mintlify.site/_mintlify/api/og/v2?division=Discover\u0026amp;title=Apply+to+a+campaign\u0026amp;description=Applies+to+an+open+campaign+with+a+message%2C+as+the+campaign+page+in+the+app+does.+The+creator+has+to+match+the+campaign%27s+categories+and+audience+reach%2C+or+gets\u0026amp;theme=e781fa803678ee492b1f6a38\u0026amp;signature=148d8616ae46f4d9253023d270ae9332ddcb96786d564da9c78b7e11e1c515d6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/passionfroot/9izA7ryAoaa41DqJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Passionfroot API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#43423D\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/creators/discover/apply-to-a-campaign.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.passionfroot.me/#organization\",\"name\":\"Passionfroot API\",\"url\":\"https://docs.passionfroot.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://res.cloudinary.com/passionfroot/image/upload/docs/logo-mark.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.passionfroot.me#website\",\"name\":\"Passionfroot API\",\"url\":\"https://docs.passionfroot.me\",\"publisher\":{\"@id\":\"https://docs.passionfroot.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign#webpage\",\"url\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign\",\"name\":\"Apply to a campaign\",\"description\":\"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign's categories and audience reach, or gets NOT_ELIGIBLE. A campaign that has closed answers CAMPAIGN_CLOSED. Naturally idempotent, so applying again returns the existing application with a 200.\",\"dateModified\":\"2026-11-09T06:13:53.207Z\",\"isPartOf\":{\"@id\":\"https://docs.passionfroot.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Creator API v1\",\"item\":\"https://docs.passionfroot.me/creators/placements/list-placements\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Discover\",\"item\":\"https://docs.passionfroot.me/creators/discover/list-open-campaigns\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Apply to a campaign\",\"item\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign#apireference\",\"headline\":\"Apply to a campaign\",\"name\":\"Apply to a campaign\",\"description\":\"Applies to an open campaign with a message, as the campaign page in the app does. The creator has to match the campaign's categories and audience reach, or gets NOT_ELIGIBLE. A campaign that has closed answers CAMPAIGN_CLOSED. Naturally idempotent, so applying again returns the existing application with a 200.\",\"url\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign\",\"mainEntityOfPage\":{\"@id\":\"https://docs.passionfroot.me/creators/discover/apply-to-a-campaign#webpage\"},\"dateModified\":\"2026-11-09T06:13:53.207Z\",\"publisher\":{\"@id\":\"https://docs.passionfroot.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.passionfroot.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Passionfroot API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Passionfroot API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/creators/discover/apply-to-a-campaign.md","siteName":"Passionfroot API","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Partner API","pages":[{"title":"Partner API","href":"/partners/placements/list-placements"}]},{"tab":"Creator API","groups":[{"group":"Creator API v1","pages":[{"group":"Placements","pages":[{"title":"List placements","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /placements","href":"/creators/placements/list-placements"}]},{"group":"Partners","pages":[{"title":"List partners","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /partners","href":"/creators/partners/list-partners"},{"title":"Get a partner","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /partners/{partnerId}","href":"/creators/partners/get-a-partner"}]},{"group":"Collaborations","pages":[{"title":"List collaborations","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /collaborations","href":"/creators/collaborations/list-collaborations"},{"title":"Get a collaboration","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /collaborations/{collaborationId}","href":"/creators/collaborations/get-a-collaboration"}]},{"group":"Conversations","pages":[{"title":"List conversations","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /conversations","href":"/creators/conversations/list-conversations"},{"title":"List conversation messages","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /conversations/{conversationId}/messages","href":"/creators/conversations/list-conversation-messages"},{"title":"Send a message","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /conversations/{conversationId}/messages","href":"/creators/conversations/send-a-message"},{"title":"Mark a conversation as read","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /conversations/{conversationId}/read","href":"/creators/conversations/mark-a-conversation-as-read"}]},{"group":"Catalog","pages":[{"title":"List products","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /products","href":"/creators/catalog/list-products"},{"title":"List packages","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /packages","href":"/creators/catalog/list-packages"}]},{"group":"Requests","pages":[{"title":"Accept a package request","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /requests/{requestId}/accept","href":"/creators/requests/accept-a-package-request"},{"title":"Decline a package request","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /requests/{requestId}/decline","href":"/creators/requests/decline-a-package-request"}]},{"group":"Proposals","pages":[{"title":"Create a proposal","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /proposals","href":"/creators/proposals/create-a-proposal"},{"title":"Counter a proposal","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /proposals/{proposalId}/counter","href":"/creators/proposals/counter-a-proposal"},{"title":"Accept a brand proposal","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /proposals/{proposalId}/accept","href":"/creators/proposals/accept-a-brand-proposal"},{"title":"Reject a brand proposal","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /proposals/{proposalId}/reject","href":"/creators/proposals/reject-a-brand-proposal"}]},{"group":"Discover","pages":[{"title":"List open campaigns","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /discover/campaigns","href":"/creators/discover/list-open-campaigns"},{"title":"Get a campaign","description":"Returns one campaign from Discover, open or closed, with this creator's application to it. An archived or ended campaign comes back as `closed`, and only to a creator who applied to it.","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml get /discover/campaigns/{campaignId}","href":"/creators/discover/get-a-campaign"},{"title":"Apply to a campaign","deprecated":null,"version":null,"openapi":"/openapi/creator.yaml post /discover/campaigns/{campaignId}/apply","href":"/creators/discover/apply-to-a-campaign"}]}]}]}]},"basePath":"","title":"Apply to a campaign - Passionfroot API","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}