Roles
Roles exist at two levels, Organization level and Ad Account level.
Organization Roles
Attributes
Attribute. | Description | Required | Possible Values |
---|---|---|---|
member_id | Member ID | R | |
organization_id | Organization ID | R | |
type | Organization role type | R | admin, business_admin, data_admin, member |
A Member
entity must be assigned one of the Organization role types.
Name | Description |
---|---|
admin | Admin access to everything in the Organization and all Ad Accounts including creating, updating, deleting entities, adding new Members, assigning Roles |
business_admin | Can access full Business Manager capabilities (payment methods, roles, organization details), but doesn’t have access to individual ad accounts or catalogs |
data_admin | Reporting Admin role tailored for reporting only, this Role has reporting access only to all Ad Accounts in the Organization |
member | Required for all Members who do not have the admin role, also a prerequisite for Ad Account Roles |
Ad Account Roles
Attributes
Attribute. | Description | Required | Possible Values |
---|---|---|---|
member_id. | Member ID | R | |
ad_account_id | Ad Account ID | R | |
type | Ad Account role type | R | admin, creative, general, reports, audience |
In order to be assigned an Ad Account role the Member in question first needs the Organization role type member
.
Name | Description |
---|---|
admin. | Admin access to everything in the Ad Account |
creative | Has full control of Creative and Media entities, and read access to all other entities. |
general | Has full control of sub-Ad Account level entities (Campaigns, Ad Squads, Ads) |
reports | Has read-only access to the Ad Account for reporting purposes. |
audience | Has full control of Audience entities |
Catalog Roles
Attributes
Attribute | Description | Required | Possible Values |
---|---|---|---|
member_id | Member ID | R | |
catalog_id | Catalog ID | R | |
type | Catalog role type | R | catalog_admin, catalog_advertiser |
In order to be assigned a Catalog role the Member in question first needs the Organization role type member
.
Name | Description |
---|---|
catalog_admin | Catalog Admins can edit and view existing catalogs which they have been assigned to by an Organization Admin, as well as create ads from those catalogs |
catalog_advertiser | Catalog Advertisers can create ads from catalogs which they have been assigned to by an Organization Admin, however they cannot edit those catalogs |
Get Roles for Member
curl "https://adsapi.snapchat.com/v1/members/d051973d-32b2-496b-b44a-345986bce17d/roles?limit=100" \
-H "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5ea9654400ff07724b540651010001737e616473617069736300016275696c642d36373239363666352d312d3334372d3000010115",
"paging": {},
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "53155cfb-fc21-4d5f-a3dc-2ab7d8c7db03",
"updated_at": "2020-02-04T12:32:22.365Z",
"created_at": "2020-02-04T12:32:22.281Z",
"container_kind": "AdAccounts",
"container_id": "8fb3b893-7978-43d5-81fe-fe0613972092",
"member_id": "d051973d-32b2-496b-b44a-345986bce17d",
"ad_account_id": "8fb3b893-7978-43d5-81fe-fe0613972092",
"type": "reports"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "9e19db05-340d-4cdf-8de9-09022a2842cf",
"updated_at": "2019-02-06T23:26:11.401Z",
"created_at": "2018-10-17T11:48:58.601Z",
"container_kind": "AdAccounts",
"container_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"member_id": "d051973d-32b2-496b-b44a-345986bce17d",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"type": "admin"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "ab0e7b9b-e0c0-441e-b26b-90ebd13c564a",
"updated_at": "2019-02-07T00:52:25.576Z",
"created_at": "2018-10-17T11:48:24.559Z",
"container_kind": "Organizations",
"container_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"member_id": "d051973d-32b2-496b-b44a-345986bce17d",
"organization_id": "1fdeefec-f502-4ca8-9a84-6411e0a51053",
"type": "member"
}
}
]
}
The following API request returns all Roles assigned to a Member, this includes Roles within both Organizations and Ad Accounts.
HTTP Request
GET https://adsapi.snapchat.com/v1/members/{member_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
something_id | Organization ID | |
limit | integer, min 50, max 1000 |
Get all Roles in Organization
curl "https://adsapi.snapchat.com/v1/organizations/8fdeefec-f502-4ca8-9a84-6411e0a51053/roles?limit=100" \
-H "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5ea9636000ff0d8046762797040001737e616473617069736300016275696c642d36373239363666352d312d3334372d300001010c",
"paging": {},
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "1001050f-325e-486f-902f-e7eea192755f",
"updated_at": "2019-12-05T14:30:20.480Z",
"created_at": "2019-12-05T14:30:20.480Z",
"container_kind": "Organizations",
"container_id": "1fdeefec-f502-4ca8-9a84-6411e0a51053",
"member_id": "63ef6f6d-09f4-4eb7-aa52-c83bcc35608c",
"organization_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"type": "admin"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "10d8b407-40f3-406d-8d04-2d5c59ff55fd",
"updated_at": "2020-03-05T11:29:31.964Z",
"created_at": "2020-03-05T11:29:31.964Z",
"container_kind": "Organizations",
"container_id": "1fdeefec-f502-4ca8-9a84-6411e0a51053",
"member_id": "b124e762-9720-4f89-bdd2-7fe06e71d7cc",
"organization_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"type": "member"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "20feac40-828c-46e2-a57b-60b5e0274ce4",
"updated_at": "2020-03-25T17:54:39.170Z",
"created_at": "2020-03-25T17:54:39.170Z",
"container_kind": "Organizations",
"container_id": "1fdeefec-f502-4ca8-9a84-6411e0a51053",
"member_id": "9db3e9a8-b7d4-4bb9-922f-72ea22d10aa6",
"organization_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"type": "member"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "57fa3d11-7330-461e-aca0-0d010d5b4932",
"updated_at": "2019-02-06T07:42:30.365Z",
"created_at": "2017-10-17T12:25:50.821Z",
"container_kind": "Organizations",
"container_id": "1fdeefec-f502-4ca8-9a84-6411e0a51053",
"member_id": "a71cfcae-895d-4314-9460-e2ffd2515dd0",
"organization_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"type": "admin"
}
}
]
}
The following API request returns all Roles assigned within an Organization.
HTTP Request
GET https://adsapi.snapchat.com/v1/organizations/{organization_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
organization_id | Organization ID | |
limit | integer, min 50, max 1000 |
Create Organization Role
curl -X POST \
-d '{"roles": [{"member_id": "d051973d-32b2-496b-b44a-345986bce17d","organization_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053","type": "member"}]}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/organizations/1fdeefec-f502-4ca8-9a84-6411e0a51053/roles
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5ea8334500ff06d6157db3e3d40001737e616473617069736300016275696c642d36373239363666352d312d3334372d3000010137",
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "9a121178-73f0-4089-8f80-a60e5445e8ea",
"updated_at": "2020-04-28T13:44:37.586Z",
"created_at": "2020-04-28T13:44:37.586Z",
"container_kind": "Organizations",
"container_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"member_id": "d051973d-32b2-496b-b44a-345986bce17d",
"organization_id": "8fdeefec-f502-4ca8-9a84-6411e0a51053",
"type": "member"
}
}
]
}
The following API request creates an Organization Role for a Member, this should follow any Member invitation to the Organization.
HTTP Request
POST https://adsapi.snapchat.com/v1/organizations/{organization_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
organization_id | Organization ID |
Get all Roles in Ad Account
curl "https://adsapi.snapchat.com/v1/adaccounts/82225ba6-7559-4000-9663-bace8adff5f2/roles?limit=200" \
-H "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5ea85f5100ff0e03a2de2a46760001737e616473617069736300016275696c642d36373239363666352d312d3334372d3000010106",
"paging": {},
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "4c73255a-903a-423c-a98d-862bba405ec0",
"updated_at": "2019-05-22T13:04:14.694Z",
"created_at": "2019-05-22T13:04:14.694Z",
"container_kind": "AdAccounts",
"container_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"member_id": "9227efda-b0d4-497e-82b9-0125780892ec",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"type": "creative"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "e293289e-14d8-432a-9edb-2943b75da2ec",
"updated_at": "2019-02-07T18:08:18.706Z",
"created_at": "2018-10-18T19:41:56.727Z",
"container_kind": "AdAccounts",
"container_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"member_id": "a71cfcae-895d-4314-9460-e2ffd2515dd0",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"type": "admin"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "f7cd2f3c-de7e-4b4f-b8f4-44f2b428bca9",
"updated_at": "2020-03-25T17:55:01.620Z",
"created_at": "2020-03-25T17:55:01.344Z",
"container_kind": "AdAccounts",
"container_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"member_id": "9db3e9a8-b7d4-4bb9-922f-72ea22d10aa6",
"ad_account_id": "82225ba6-7559-4000-9663-bace8adff5f2",
"type": "general"
}
}
]
}
The following API gets a list of all Roles that have been created under an Ad Account.
HTTP Request
GET https://adsapi.snapchat.com/v1/adaccounts/{ad_account_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
ad_account_id | Ad Account ID | |
limit | integer, min 50, max 1000 |
Create Ad Account Role
curl -X POST \
-d '{"roles": [{"member_id": "d051973d-32b2-496b-b44a-345986bce17d","ad_account_id": "8c545687-a599-4faa-a704-4b097c6da5fe","type": "creative"}]}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/adaccounts/8c545687-a599-4faa-a704-4b097c6da5fe/roles
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5ea8335700ff09599711db33160001737e616473617069736300016275696c642d36373239363666352d312d3334372d3000010135",
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "5191aec7-b771-4c56-9963-126b14dbe2e3",
"updated_at": "2020-02-28T13:44:55.746Z",
"created_at": "2020-02-28T13:44:55.746Z",
"container_kind": "AdAccounts",
"container_id": "8c545687-a599-4faa-a704-4b097c6da5fe",
"member_id": "d051973d-32b2-496b-b44a-345986bce17d",
"ad_account_id": "8c545687-a599-4faa-a704-4b097c6da5fe",
"type": "creative"
}
}
]
}
The following API request creates an Ad Account role for the Member. Note that a prerequisite for an Ad Account role is for the Member to
already have a member
role in the Organization under which the Ad Account exists.
HTTP Request
POST https://adsapi.snapchat.com/v1/adaccounts/{ad_account_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
ad_account_id | Ad Account ID |
Update Ad Account Role
curl -X PUT \
-d '{"roles":[{"id":"f7cd2f3c-de7e-4b4f-b8f4-44f2b428bca9","container_kind":"AdAccounts","container_id":"22225ba6-7559-4000-9663-bace8adff5f2","member_id":"9db3e9a8-b7d4-4bb9-922f-72ea22d10aa6","ad_account_id":"22225ba6-7559-4000-9663-bace8adff5f2","type":"general"}]}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/adsquads/23995202-bfbc-45a0-9702-dd6841af52fe/ads
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "583521e0-da89-48a6-8bc9-195ad595391b",
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "f7cd2f3c-de7e-4b4f-b8f4-44f2b428bca9",
"updated_at": "2022-09-21T00:50:46.146Z",
"created_at": "2020-03-25T17:55:01.344Z",
"container_kind": "AdAccounts",
"container_id": "22225ba6-7559-4000-9663-bace8adff5f2",
"member_id": "9db3e9a8-b7d4-4bb9-922f-72ea22d10aa6",
"ad_account_id": "22225ba6-7559-4000-9663-bace8adff5f2",
"type": "general"
}
}
]
}
The following API request updates the Ad Account role for a Member.
Attributes that can be updated
Attribute | Description | Required | Possible Values |
---|---|---|---|
type | role type | R | admin, audience, creative, general, reports |
HTTP Request
PUT https://adsapi.snapchat.com/v1/adaccounts/{ad_account_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
ad_account_id | Ad Account ID |
Create Catalog Role
curl -X POST \
-d '{"roles": [{"member_id": "819eff0f-2673-480b-8f72-c128e61c6cc4","catalog_id": "9318ff5c-78f7-47db-8a32-675f0b787c75","type": "catalog_admin"}]}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer meowmeowmeow" \
https://adsapi.snapchat.com/v1/catalogs/9318ff5c-78f7-47db-8a32-675f0b787c75/roles
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "6074452e00ff00ff05354518127f0001737e616473617069736300016275696c642d34303334633634322d312d3433382d320001015c",
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "9f53e57d-cdbc-4c04-901d-bbe940b2a36c",
"updated_at": "2021-04-12T13:03:42.378Z",
"created_at": "2021-04-12T13:03:42.378Z",
"container_kind": "Catalogs",
"container_id": "8318ff5c-78f7-47db-8a32-675f0b787c75",
"member_id": "819eff0f-2673-480b-8f72-c128e61c6cc4",
"catalog_id": "9318ff5c-78f7-47db-8a32-675f0b787c75",
"type": "catalog_admin"
}
}
]
}
The following API request creates a Catalog role for the Member. Note that a prerequisite for a Catalog role is for the Member to already
have a member
role in the Organization under which the Catalog exists.
HTTP Request
POST https://adsapi.snapchat.com/v1/catalogs/{catalog_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
catalog_id | Catalog ID |
Get all Roles for Catalog
curl "https://adsapi.snapchat.com/v1/catalogs/9318ff5c-78f7-47db-8a32-675f0b787c75/roles?limit=200" \
-H "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "60744c2d00ff0e2580408852b00001737e616473617069736300016275696c642d34303334633634322d312d3433382d320001012b",
"paging": {},
"roles": [
{
"sub_request_status": "SUCCESS",
"role": {
"id": "9f53e57d-cdbc-4c04-901d-bbe940b2a36c",
"container_kind": "Catalogs",
"container_id": "8318ff5c-78f7-47db-8a32-675f0b787c75",
"member_id": "919eff0f-2673-480b-8f72-c128e61c6cc4",
"catalog_id": "9318ff5c-78f7-47db-8a32-675f0b787c75",
"type": "catalog_admin"
}
},
{
"sub_request_status": "SUCCESS",
"role": {
"id": "9e85e2f6-e6fe-4bc8-883d-a7d839c3e5bd",
"container_kind": "Catalogs",
"container_id": "8318ff5c-78f7-47db-8a32-675f0b787c75",
"member_id": "971cfcae-895d-4314-9460-e2ffd2515dd0",
"catalog_id": "9318ff5c-78f7-47db-8a32-675f0b787c75",
"type": "catalog_advertiser"
}
}
]
}
The following API request gets a list of all Roles that have been created under a Catalog.
HTTP Request
GET https://adsapi.snapchat.com/v1/catalogs/{catalog_id}/roles
Parameters
Parameter | Default | Description |
---|---|---|
catalog_id | Catalog ID | |
limit | integer, min 50, max 1000 |
Public Profiles Roles
Attributes
API Attribute | Ads Manager | Description |
---|---|---|
business_account_manager | Admin | Can change Public Profiles, add or remove any Snaps from Public Story, manage Saved Stories, assign roles and view insights |
business_account_collaborator | Collaborator | Can view insights and add or remove any Snaps from their Public Story within a profile |
business_account_story_contributor | Story Contributor | Can view all past Snaps. They can also add, remove and view insights on Snaps they post within a profile. |
business_account_data_analyst | Insights Viewer | Can view the profile's Public Story, Saved Story, Lens and profile analytics. |
creative_contributor | Creative Contributor | Can submit content, such as Lenses, to profile’s Public Profile. |
Delete Role
curl -X DELETE "https://adsapi.snapchat.com/v1/roles/5191aec7-b771-4c56-9963-126b14dbe2e3" \
-H "Authorization: Bearer meowmeowmeow"
The above command returns JSON structured like this:
{
"request_status": "SUCCESS",
"request_id": "5ea8338a00ff0ded779b7f217a0001737e616473617069736300016275696c642d36373239363666352d312d3334372d3000010130",
"roles": []
}
The following API request removes a Role from an Organisation, Catalog or Ad Account. If you are deleting all of a Member's Roles, you should also delete the Member entity from the Organization.
HTTP Request
DELETE https://adsapi.snapchat.com/v1/roles/{role_id}
Parameters
Parameter | Default | Description |
---|---|---|
role_id | Role ID |