Skip to main content

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

LevelNameDescriptionUse Case
BRAND_LEVELBrand PartnerCreator can tag the brand in organic posts using the "Paid Partnership" labelOrganic-to-paid workflows where brands boost creator content
AD_LEVELAd PartnerBrand can run ads that appear as the creator's profilePaid-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:

  1. Brand initiates — Sends invitation via API or Business Manager
  2. 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

AttributeTypeRequiredDescriptionPossible Values
invitee_usernameStringYesThe invitee Snapchat user name
invitee_display_nameStringNoThe invitee Snapchat user display name
invitee_user_idUUIDYesUnique identifier of the invitee Snapchat user
invitor_user_idUUIDRead-onlyUnique identifier of the invitor Snapchat user (only populated in response)
role_typeStringYesRole type the invitee Snapchat user will be assignedbusiness_account_story_contributor, preapproved_creator_ad_partner
role_statusEnumRead-onlyInvite role status (only populated in response)PENDING, APPROVED, EXPIRED, REJECTED
partnership_levelStringYesBrand partnership level the invitee Snapchat user will be assignedAD_LEVEL, BRAND_LEVEL

Create Pre-Approved Creators

A brand profile can invite pre-approved creator(s) for brand collaboration.

HTTP Request

POST
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles

Parameters

ParameterRequiredDescription
profile_idYesBrand Profile ID (in URL path)
rolesYesList of ProfileRole objects to create. Currently only supports one input object per call.

Request Body

{
"roles": [
{
"invitee_username": "mytestuser",
"invitee_display_name": "Snap Test User",
"invitee_user_id": "a474fcea-c5f3-473a-8bb3-2aa1787c139d",
"role_type": "preapproved_creator_ad_partner",
"partnership_level": "AD_LEVEL"
}
]
}

HTTP Response

NameDescriptionPossible Values
request_idA UUID to identify this request.
request_statusSUCCESS, ERROR
rolesList of ProfileRole objects that have been created.
auto_approvedtrue if target and source users are bidirectional friendstrue, false
debug_messageA debug message to help debug if there is an error
display_messageDisplay message if there is an error.
error_codeError code if there is an error

Response

{
"request_id": "862ed9f0-096e-406f-834c-aa29bf211a66",
"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": "PENDING",
"partnership_level": "AD_LEVEL"
}
],
"auto_approved": false
}

Get Partnership Role

Check the status of a specific partnership invitation.

HTTP Request

GET
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 Partnership Roles

Retrieve all partnership roles for a profile.

HTTP Request

GET
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles

Parameters

ParameterRequiredDescription
profile_idYesYour brand's Public Profile ID
limitNoNumber of results per page (default: 50)
cursorNoPagination cursor for next page

Response

{
"request_status": "SUCCESS",
"roles": [
{
"invitee_username": "creator1",
"invitee_display_name": "Creator One",
"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"
},
{
"invitee_username": "creator2",
"invitee_display_name": "Creator Two",
"invitee_user_id": "b585fdef-d6g4-584b-9cc4-3bb2898d240e",
"invitor_user_id": "3edf7e14-88cc-43a2-aee0-5adee2ae9ed9",
"role_type": "business_account_story_contributor",
"role_status": "PENDING",
"partnership_level": "BRAND_LEVEL"
}
],
"paging": {
"next_page_id": "cursor-string"
}
}

List Ad Partner Profiles

For AD_LEVEL partnerships, retrieve all creator profiles that have accepted ad partner invitations. Use this to populate a "Select Creator" dropdown when creating ads.

HTTP Request

GET
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/ad_partner_profiles

Response

{
"request_status": "SUCCESS",
"ad_partner_profiles": [
{
"profile_id": "creator-profile-uuid",
"display_name": "Creator Name",
"username": "creatorhandle",
"logo_url": "https://..."
}
]
}

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

DELETE
https://businessapi.snapchat.com/v1/public_profiles/{profile_id}/roles/{role_id}

Response

{
"request_status": "SUCCESS"
}

Role Status Transitions

Common Errors

ErrorCauseResolution
AUTHORIZATION_PERMISSION_DENIEDToken user is not a Profile AdminEnsure the OAuth token belongs to a user with Profile Admin role
DUPLICATE_ROLEActive role already exists for this creatorCheck GET /roles before sending new invite
INVALID_USER_IDinvitee_user_id does not existVerify the creator's User ID via Creator Discovery
RESOURCE_NOT_FOUNDprofile_id or role_id is incorrectDouble-check IDs in the request
Was this page helpful?
Yes
No