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
The two permission levels that previously existed have now been replaced with a model where the AD_LEVEL permission covers both levels, the Creator is also prompted to set a number of permissions at the point of accepting the partnership.
| Level | Name | Description | Use Case |
|---|---|---|---|
BRAND_LEVEL | |||
AD_LEVEL | Ad Partner | Creator can tag the brand in organic posts using the "Paid Partnership" label, the brand can run ads that appear as the creator's profile | Organic-to-paid workflows where brands boost creator content and paid-first workflows where the ad shows the creator as the sender |
AD_LEVEL includes all capabilities of the previous BRAND_LEVEL permission. 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/Advertiser 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, this is synonymous with role_id | |
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 | The partnership level the invitee Snapchat user will be assigned | AD_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 |
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/{brand_profile_id}/roles
Parameters
| Parameter | Required | Description |
|---|---|---|
brand_profile_id | Yes | Brand/Advertiser 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": "AD_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": "AD_LEVEL"
}
]
}
Check status of Creators
This endpoint will retrieve all creators which have been invited for a collaboration with the advertiser, the role_status in the response indicates whether the partnership is APPROVED, PENDING, EXPIRED or REJECTED. A creator with role_status: APPROVED is a pre-approved Creator
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{brand_profile_id}/roles?role_type=business_account_story_contributor
Parameters
| Parameter | Required | Description | Possible values |
|---|---|---|---|
brand_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"
}
}
List permissions granted by Creator
This endpoint allows you to list the permissions granted by a Creator that has agreed to a collaboration, this is a Creator with the role_status: APPROVED.
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{brand_profile_id}/brand_partnership_permissions?creator_profile_ids={creator_profile_id}
Parameters
| Parameter | Required | Description | Possible values |
|---|---|---|---|
brand_profile_id | Yes | The Advertisers's Public Profile ID | Public Profile ID of Brand |
creator_profile_ids | Yes | The Creator's Public Profile ID | Public Profile ID of Creator |
Response
In this example the Creator has shared all four options with the Brand/Advertiser.
{
"request_id": "acc7d86f-28ef-4844-9570-fabc6de57713",
"request_status": "SUCCESS",
"brand_partnership_permissions": [
{
"creator_profile_id": "c9e519eb-0a23-40cf-b538-36f2f1599f57",
"brand_profile_id": "c0ea278b-0449-4369-88d6-636e5d925f70",
"shared_public_profile_level": "SHARED_PUBLIC_PROFILE_LEVEL_AD",
"share_content_for_ads": "CONFIGURED_STATUS_ACTIVE",
"share_insights": "CONFIGURED_STATUS_ACTIVE",
"share_expired_stories": "CONFIGURED_STATUS_ACTIVE"
}
]
}
Creator permissions
| Permission | Value | What it enables | What happens if it’s inactive |
|---|---|---|---|
share_insights | CONFIGURED_STATUS_ACTIVE | Full Performance Metrics & Rich Metadata. Gives the brand access to in-depth statistics (view counts, engagement, etc.) for the creator's Public Profile, Stories, Saved Stories, Spotlight content, and individual Snaps. | Public-Only View You can still see basic content, but requests for detailed performance stats will fail. Content metadata is stripped down to public-facing data fields only. |
share_expired_stories | CONFIGURED_STATUS_ACTIVE | Access to past content Allows the brand to view and list the creator's Public Stories and individual Snaps even after their live 24-hour window has expired. | Live-Only Content Expired stories are automatically filtered out of your view. You cannot access or view any story that is older than 24 hours. |
share_content_for_ads | CONFIGURED_STATUS_ACTIVE | Use Shared Content for Paid Advertising Allows the brand to view and use content that the creator has shared directly with the brand's profile. | Metadata Only You can see information about the shared content, but you cannot use that content to build or run paid ad campaigns. |
shared_public_profile_level | SHARED_PUBLIC_PROFILE_LEVEL_AD | Using the Creator's Public Profile The brand is permitted to use the Creator’s Public Profile in Creatives. | Brand-Only Creative Any ads created can only use the Brand/Advertiser Public Profile. |
Cancel Partnership
This endpoint cancels a partnership, this revokes the creator's ability to tag your brand and your ability to access their content and to run Ads using their profile.
When you cancel a partnership you need to use the invitee_user_id for the Creator.
HTTP Request
https://businessapi.snapchat.com/v1/public_profiles/{brand_profile_id}/roles/{creator_role_id}?role_type=business_account_story_contributor&partnership_level=AD_LEVEL
Parameters
| Parameter | Required | Description | Possible values |
|---|---|---|---|
brand_profile_id | Yes | The Brands Public Profile ID | Public Profile ID |
creator_role_id | Yes | The Creator's user ID, this is the invitee_user_id shown when listing Creator partnerships | Creator User ID |
role_type | Yes | Can only be business_account_story_contributor | business_account_story_contributor |
partnership_level | Yes | Can only be AD_LEVEL | AD_LEVEL |
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