Partnership Roles
Partnership Roles enable brands to establish formal collaborations with creators on Snapchat. Unlike Organization and Ad Account Roles, Partnership Roles govern the relationship between brands and external creators—allowing brands to invite creators to tag them in organic content or grant permission for ads to run as the creator's profile.
Permission Levels
| Level | Name | Description | Use Case |
|---|---|---|---|
BRAND_LEVEL | Brand Partner | Creator can tag the brand in organic posts using the "Paid Partnership" label | Organic-to-paid workflows where brands boost creator content |
AD_LEVEL | Ad Partner | Brand can run ads that appear as the creator's profile | Paid-first workflows where the ad shows the creator as the sender |
AD_LEVEL includes all capabilities of BRAND_LEVEL. A creator with AD_LEVEL permission can also tag the brand in organic posts.
The Partnership Handshake
All partnership workflows require a two-way approval:
- Brand initiates — Sends invitation via API or Business Manager
- Creator approves — Accepts in Snapchat app (Profile Settings → Pending Invitations)
The partnership is not active until the creator accepts. Poll the status endpoint to detect when role_status changes from PENDING to APPROVED.
The API does not currently send webhooks for partnership status changes. You must poll to detect approval.
ProfileRole Attributes
| Attribute | Type | Required | Description | Possible Values |
|---|---|---|---|---|
invitee_username | String | Yes | The invitee Snapchat user name | |
invitee_display_name | String | No | The invitee Snapchat user display name | |
invitee_user_id | UUID | Yes | Unique identifier of the invitee Snapchat user | |
invitor_user_id | UUID | Read-only | Unique identifier of the invitor Snapchat user (only populated in response) | |
role_type | String | Yes | Role type the invitee Snapchat user will be assigned | business_account_story_contributor, preapproved_creator_ad_partner |
role_status | Enum | Read-only | Invite role status (only populated in response) | PENDING, APPROVED, EXPIRED, REJECTED |
partnership_level | String | Yes | Brand partnership level the invitee Snapchat user will be assigned | AD_LEVEL, BRAND_LEVEL |
Invite Creator for collaboration
Using the Public Profile of the Advertiser, this endpoint is used to invite a Creator for a collaboration, if the Creator accepts the invite they become a pre-approved Creator.
Attributes
| Attribute | Description | Required | Possible Values |
|---|---|---|---|
invitee_username | The Snapchat username of the Creator | Yes | |
role_type | Needs to be business_account_story_contributor | Yes | business_account_story_contributor |
partnership_level | The type of Partnership the Advertiser is offering the Creator | Yes | AD_LEVEL, BRAND_LEVEL |
approvalTimeInDays | Defines the time limit the Creator has to respond to the invite, if this parameter is skipped the invite will have no expiry | No | 7,30,90 |
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles
Parameters
| Parameter | Required | Description |
|---|---|---|
profile_id | Yes | Brand Profile ID (in URL path) |
roles | Yes | List of ProfileRole objects to create. Currently only supports one input object per call. |
Request Body
{
"roles": [
{
"invitee_username": "ebbechi",
"role_type": "business_account_story_contributor",
"approvalTimeInDays": 30,
"partnership_level": "BRAND_LEVEL"
}
]
}
HTTP Response
| Name | Description | Possible Values |
|---|---|---|
request_id | A UUID to identify this request. | |
request_status | SUCCESS, ERROR | |
roles | List of ProfileRole objects that have been created. | |
auto_approved | true if target and source users are bidirectional friends | true, false |
debug_message | A debug message to help debug if there is an error | |
display_message | Display message if there is an error. | |
error_code | Error code if there is an error |
Response
{
"request_id": "fbab20ad-75c5-4f46-a81f-4b4e02607bf0",
"request_status": "SUCCESS",
"roles": [
{
"invitee_username": "ebbechi",
"invitor_user_id": "92beca53-2402-45f6-bc0f-1244a2cb8935",
"role_type": "business_account_story_contributor",
"role_status": "PENDING",
"approval_time_in_days": 30,
"partnership_level": "BRAND_LEVEL"
}
]
}
Get Partnership Role
Check the status of a specific partnership invitation.
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles/{role_id}
Response
{
"request_status": "SUCCESS",
"roles": [
{
"invitee_username": "mytestuser",
"invitee_display_name": "Snap Test User",
"invitee_user_id": "a474fcea-c5f3-473a-8bb3-2aa1787c139d",
"invitor_user_id": "3edf7e14-88cc-43a2-aee0-5adee2ae9ed9",
"role_type": "preapproved_creator_ad_partner",
"role_status": "APPROVED",
"partnership_level": "AD_LEVEL"
}
]
}
List pre-approved Creators
This endpoint will retrieve all pre-approved creators which have a collaboration set up with the advertiser, the role_status in the response indicates whether the partnership is active, pending or expired.
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles?role_type=business_account_story_contributor
Parameters
| Parameter | Required | Description | Possible values |
|---|---|---|---|
profile_id | Yes | The Advertisers's Public Profile ID | Public Profile ID |
role_type | Yes | This defines the role of the Creator | business_account_story_contributor |
limit | No | Number of results per page | 1-100 (default 50) |
cursor | No | Pagination cursor for next page |
Response
{
"request_status": "SUCCESS",
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"invitee_username": "ebbechi",
"invitee_display_name": "Fakey McFake",
"invitee_user_id": "9095f42b-bc7e-44e8-a772-a61db0661488",
"invitor_user_id": "82beca53-2402-45f6-bc0f-1244a2cb8936",
"profile_logo_url": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2Qvbkpldll5Nzh2ejM4dG9TZGx6UkdrP2JvPUVnMGFBQm9BTWdFRVNBSlFHV0FCJnVjPTI1._RS0,72_FMpng",
"role_type": "preapproved_creator_ad_partner",
"role_status": "APPROVED",
"profile_tier": "TIER_PUBLIC",
"partnership_level": "AD_LEVEL",
"subcategory": "SUBCATEGORY_V3_LIFESTYLE_INFLUENCER",
"invitee_profile_id": "c9e519eb-0a23-40cf-b538-36f2f1599f57"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"invitee_username": "dqk0902",
"invitee_display_name": "dqk",
"invitee_user_id": "b908cc47-60e0-4cec-a1df-b35066563805",
"invitor_user_id": "82beca53-2402-45f6-bc0f-1244a2cb8936",
"profile_logo_url": "https://cf-st.sc-cdn.net/aps/bolt/aHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2QvWW1tSUZkY2JlZTNrZVl5bVlQbEpxP2JvPUVnMGFBQm9BTWdFRVNBSlFDR0FCJnVjPTg._RS0,72_FMpng",
"role_type": "preapproved_creator_ad_partner",
"role_status": "EXPIRED",
"approval_time_in_days": 1,
"start_time": "2025-12-01T14:36:08Z",
"end_time": "2025-12-02T14:36:08Z",
"profile_tier": "TIER_STANDARD",
"partnership_level": "AD_LEVEL",
"invitee_profile_id": "5efe6dec-dd79-4843-8c8d-e85190bcb493"
}
}
],
"paging": {
"next_page_id": "cursor-string"
}
}
Delete Partnership Role
Remove a partnership. This revokes the creator's ability to tag your brand or your ability to run ads as their profile.
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles/{role_id}
Response
{
"request_status": "SUCCESS"
}
Role Status Transitions
Common Errors
| Error | Cause | Resolution |
|---|---|---|
AUTHORIZATION_PERMISSION_DENIED | Token user is not a Profile Admin | Ensure the OAuth token belongs to a user with Profile Admin role |
DUPLICATE_ROLE | Active role already exists for this creator | Check GET /roles before sending new invite |
INVALID_USER_ID | invitee_user_id does not exist | Verify the creator's User ID via Creator Discovery |
RESOURCE_NOT_FOUND | profile_id or role_id is incorrect | Double-check IDs in the request |
Related Documentation
- Creator Discovery — Find creators and retrieve their User IDs
- Shared Snaps — Retrieve content where creators tagged your brand
- Brand Partnerships Guide — End-to-end workflow for organic-to-paid campaigns
- Ad Partnerships Guide — End-to-end workflow for paid-first campaigns