Pinterest Business API
The Business API from Pinterest — 13 operation(s) for business.
The Business API from Pinterest — 13 operation(s) for business.
openapi: 3.0.3
info:
version: 5.13.0
title: Pinterest Business API
description: This is the description of your API.
contact:
name: Pinterest, Inc.
url: https://developers.pinterest.com/
license:
name: MIT
url: https://spdx.org/licenses/MIT
termsOfService: https://developers.pinterest.com/terms/
servers:
- url: https://api.pinterest.com/v5
tags:
- name: Business
paths:
/businesses/{business_id}/assets/{asset_id}/members:
get:
summary: Get members with access to asset
description: Get all the members the requesting business has granted access to on the given asset.
operationId: business_asset_members/get
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_asset_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_business_access_start_index'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List of members with permissions to the asset.
items:
$ref: '#/components/schemas/UserSingleAssetBinding'
description: Sucess
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/assets/{asset_id}/partners:
get:
summary: Get partners with access to asset
description: 'Get all the partners the requesting business has granted access to on the given asset.
Note: If the asset has been shared with you, an empty array will be returned. This is because an asset shared with
you cannot be shared with a different partner.'
operationId: business_asset_partners/get
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_asset_id'
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List of partners with permissions to the asset.
items:
$ref: '#/components/schemas/UserSingleAssetBinding'
description: Sucess
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/invites/assets/access:
post:
summary: Update invite/request with an asset permission
description: "Assign asset permissions information to an existing invite/request. Can be used to:\n- Request access to a partner's asset. Note: This is only for when no existing partnership exists. If an existing\n partnership exists, use \"Create a request to access an existing partner's assets\" to request access to your\n partner's assets.\n - invite_type=\"PARTNER_REQUEST\"\n- Invite a partner to access your business assets. Note: This is only for when there is no existing partnership.\n If there is an existing partnership, use \"Assign/Update partner asset permissions\" to assign a partner access to\n new assets.\n - invite_type=\"PARTNER_INVITE\"\n- Invite a member to access your business assets. Note: This is only for when there is no existing membership.\n If there is an existing membership, use \"Assign/Update member asset permissions\" to assign a member access to new\n assets.\n - invite_type=\"MEMBER_INVITE\"\n\nTo learn more about permission levels, visit https://help.pinterest.com/en/business/article/business-manager-overview."
operationId: create_asset_invites
security:
- pinterest_oauth2:
- biz_access:read
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAssetInvitesRequest'
description: 'A list of invites/requests together with the asset permissions to be assigned to the invite/request.
'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInvitesResultsResponseArray'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/requests/assets/access:
post:
summary: Create a request to access an existing partner's assets.
description: Create a request to access an existing partner's assets with the specified permissions. The request will be sent to the partner for approval. The assets that can be requested are ad accounts and profiles.
operationId: asset_access_requests/create
security:
- pinterest_oauth2:
- biz_access:read
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAssetAccessRequestBody'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAssetAccessRequestResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/members:
get:
summary: Get business members
description: 'Get all members of the specified business.
The return response will include the member''s business_role and assets they have access to if assets_summary=TRUE'
operationId: get/business_members
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/query_assets_summary'
- name: business_roles
in: query
description: A list of business roles to filter the members by. Only members whose roles are in the specified roles will be returned.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/MemberBusinessRole'
- name: member_ids
in: query
description: A list of business members ids separated by comma.
example: 00101010101,2222220101
required: false
schema:
type: string
maxLength: 500
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List of business members.
items:
$ref: '#/components/schemas/UserBusinessRoleBinding'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
patch:
description: Update a member's business role within the business.
summary: Update member's business role
operationId: update/business_memberships
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_id'
requestBody:
content:
application/json:
schema:
type: array
minItems: 1
items:
$ref: '#/components/schemas/UpdateMemberBusinessRoleBody'
description: List of objects with the member id and the business_role.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMemberResultsResponseArray'
description: response
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
delete:
description: Terminate memberships between the specified members and your business.
summary: Terminate business memberships
operationId: delete_business_membership
security:
- pinterest_oauth2:
- biz_access:read
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_business_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MembersToDeleteBody'
description: List of members with role to delete.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedMembersResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/assets:
get:
summary: List business assets
description: Get all the assets the requesting business has access to. This includes assets the business owns and assets the business has access to through partnerships.
operationId: business_assets/get
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- name: permissions
in: query
description: A list of asset permissions used to filter the assets. Only assets where the requesting business has at least one of the specified permissions will be returned.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/PermissionsWithOwner'
- $ref: '#/components/parameters/query_resource_type'
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List of assets the requesting business has access to.
items:
$ref: '#/components/schemas/GetBusinessAssetsResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/members/{member_id}/assets:
get:
summary: Get assets assigned to a member
description: 'Get assets on which you assigned asset permissions to the given member. Can be used to:
- get all assets, regardless of asset type or
- get assets of one asset type by using the asset_type query.
The return response will include the permissions the member has to that asset and the asset type.'
operationId: business_member_assets/get
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_business_member_user'
- $ref: '#/components/parameters/query_resource_type'
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List asset permissions the given member was granted.
items:
$ref: '#/components/schemas/AssetIdPermissions'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/members/assets/access:
patch:
description: 'Grant multiple members access to assets and/or update multiple member''s exisiting permissions to an asset.
Note: Not all listed permissions are applicable to each asset type. For example, PROFILE_PUBLISHER would not be applicable to an asset of type AD_ACCOUNT. The permission level PROFILE_PUBLISHER is only available to an asset of the type PROFILE.
'
summary: Assign/Update member asset permissions
operationId: business_members_asset_access/update
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMemberAssetAccessBody'
description: List of member asset permissions to create or update.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMemberAssetsResultsResponseArray'
description: response
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
delete:
description: Terminate multiple members' access to an asset.
summary: Delete member access to asset
operationId: business_members_asset_access/delete
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
content:
application/json:
schema:
type: object
required:
- accesses
properties:
accesses:
type: array
minItems: 1
maxItems: 100
description: List of members asset access to be deleted
items:
type: object
required:
- asset_id
- member_id
properties:
asset_id:
type: string
description: Id of the asset on which to remove member permissions.
example: '549755885175'
maxLength: 25
pattern: ^\d+$
member_id:
type: string
description: Unique identifier of the member on which to perform the asset permission removal
example: '140943737684417'
maxLength: 25
pattern: ^\d+$
description: List member assset permissions to delete.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteMemberAccessResultsResponseArray'
description: response
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/invites:
get:
summary: Get invites/requests
description: Get the membership/partnership invites and/or requests for the authorized user.
operationId: get/invites
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/query_is_member'
- $ref: '#/components/parameters/query_invite_status'
- $ref: '#/components/parameters/query_invite_type'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List of invite and request data.
items:
$ref: '#/components/schemas/InviteResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
post:
summary: Create invites or requests
description: "Create batch invites or requests. Can create batch invites or requests as described below.\n- Invite members to join the business. This would required specifying the following:\n - invite_type=\"MEMBER_INVITE\"\n - business_role=\"EMPLOYEE\" OR business_role=\"BIZ_ADMIN\" (To learn more about business roles, visit\n https://help.pinterest.com/en/business/article/profile-permissions-in-business-access.)\n - members\n- Invite partners to access your business assets. This would require specifying the following:\n - invite_type=\"PARTNER_INVITE\"\n - business_role=\"PARTNER\"\n - partners\n- Request to be a partner so you can access their assets. This would require specifying the following:\n - invite_type=\"PARTNER_REQUEST\"\n - business_role=\"PARTNER\"\n - partners"
operationId: create_membership_or_partnership_invites
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMembershipOrPartnershipInvitesBody'
description: 'An object with the properties: invite_type, partners, members, business_role'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvitesResultsResponseArray'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
delete:
summary: Cancel invites/requests
description: Cancel membership/partnership invites and/or requests.
operationId: cancel_invites_or_requests
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CancelInvitesBody'
description: A list with invite ids
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteInvitesResultsResponseArray'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/partners/assets:
patch:
summary: Assign/Update partner asset permissions
description: 'Grant multiple partners access to assets and/or update multiple partner''s exisiting permissions to an asset.
If your partner already had permissions on the asset, they will be overriden with the new permissions you assign to them.
To learn more about permission levels, visit https://help.pinterest.com/en/business/article/business-manager-overview
Note: Not all listed permissions are applicable to each asset type. For example, PROFILE_PUBLISHER would not be
applicable to an asset of type AD_ACCOUNT. The permission level PROFILE_PUBLISHER is only available to an asset of
the type PROFILE.'
operationId: update_partner_asset_access_handler_impl
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
description: A list of assets and permissions to assign to your partners.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePartnerAssetAccessBody'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePartnerAssetsResultsResponseArray'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
delete:
summary: Delete partner access to asset
description: 'Terminate multiple partners'' access to an asset. If
- partner_type=INTERNAL: You will terminate a partner''s asset access to your business assets.
- partner_type=EXTERNAL: You will terminate your own access to your partner''s business assets.'
operationId: delete_partner_asset_access_handler_impl
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePartnerAssetAccessBody'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePartnerAssetsResultsResponseArray'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/partners/{partner_id}/assets:
get:
summary: Get assets assigned to a partner or assets assigned by a partner
description: 'Can be used to get the business assets your partner has granted you access to or the business assets you have
granted your partner access to. If you specify:
- partner_type=INTERNAL, you will retrieve your business assets that the partner has access to.
- partner_type=EXTERNAL, you will retrieve the partner''s business assets that the partner has granted you access to.'
operationId: business_partner_asset_access/get
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_business_partner_user'
- name: partner_type
in: query
description: 'Specifies whether to fetch internal or external (shared) partners.
If partner_type=INTERNAL, the asset being queried is for accesses the partner has to your business assets.<br>
If partner_type=EXTERNAL, the asset being queried is for the accesses you have to the partner''s business asset.'
example: INTERNAL
required: false
schema:
allOf:
- $ref: '#/components/schemas/PartnerType'
- default: INTERNAL
- $ref: '#/components/parameters/query_resource_type'
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List assets on which you granted access to your partner or assets on which your partner has granted you access.
items:
$ref: '#/components/schemas/GetPartnerAssetsResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/businesses/{business_id}/partners:
get:
summary: Get business partners
description: "Get all partners of the specified business.\n\nIf the assets_summary=TRUE and:\n- partner_type=INTERNAL, the business assets returned are your business assets the partner has access to.\n- partner_type=EXTERNAL, the business assets returned are your partner's business assets the partner has granted you\n access to."
operationId: get/business_partners
security:
- pinterest_oauth2:
- biz_access:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/query_assets_summary'
- $ref: '#/components/parameters/query_business_partner_type'
- name: partner_ids
in: query
description: A list of business partner ids separated by commas used to filter the results. Only partners with the specified ids will be returned.
example: 00101010101,2222220101
required: false
schema:
type: string
maxLength: 500
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
description: List of business partners.
items:
$ref: '#/components/schemas/UserBusinessRoleBinding'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
delete:
summary: Terminate business partnerships
description: 'Terminate partnerships between the specified partners and your business.
Note: You may only batch terminate partners of the same partner type.'
operationId: delete_business_partners
security:
- pinterest_oauth2:
- biz_access:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePartnersRequest'
description: 'An object containing a "partner_ids" property composed of a list of partner IDs and a "partners_type" property specifying the type of partners to delete.
'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePartnersResponse'
description: Success
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: A supplied partner id doesn't exist
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- Business
/integrations/commerce/{external_business_id}:
get:
summary: Get commerce integration
description: 'Get commerce integration metadata associated with the given external business ID.
Note: If you''re interested in joining the beta, please reach out to your Pinterest account manager.'
operationId: integrations_commerce/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pinterest/refs/heads/main/openapi/pinterest-business-api-openapi.yml