Pinterest Members API

The Members API from Pinterest — 4 operation(s) for members.

OpenAPI Specification

pinterest-members-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 5.13.0
  title: Pinterest Members 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: Members
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:
      - Members
  /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:
      - Members
    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:
      - Members
    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:
      - Members
  /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:
      - Members
  /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:
      - Members
    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:
      - Members
components:
  schemas:
    BusinessMemberAssetsSummary:
      type: object
      description: Ad accounts and profiles the business member/partner has access to.
      nullable: true
      properties:
        ad_accounts:
          type: array
          description: List of ad account IDs and respective permission levels.
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier of a business ad account.
                example: '549755885175'
                pattern: ^\d+$
                minLength: 1
                maxLength: 20
              permissions:
                $ref: '#/components/schemas/PermissionsResponse'
        profiles:
          type: array
          description: List of profile IDs and respective permission levels.
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier of a business profile.
                example: '383791336903426391'
                pattern: ^\d+$
                minLength: 1
                maxLength: 20
              permissions:
                $ref: '#/components/schemas/PermissionsResponse'
    DeleteMemberAccessResult:
      type: object
      description: The terminated asset access.
      properties:
        asset_id:
          type: string
          description: Unique identifier of the business asset.
          example: '549755885175'
          pattern: ^\d+$
        member_id:
          type: string
          description: Unique identifier of the business member.
          example: '140943737684417'
          pattern: ^\d+$
    MembersToDeleteBody:
      required:
      - members
      properties:
        members:
          items:
            required:
            - member_id
            - business_role
            properties:
              member_id:
                type: string
                description: Unique identifier of the member
                maxLength: 25
                example: '140943737684417'
                pattern: ^\d+$
              business_role:
                $ref: '#/components/schemas/BusinessRoleForMembers'
            type: object
          type: array
          minItems: 1
          maxItems: 50
      type: object
    MemberBusinessRole:
      type: string
      description: 'The access level a member/partner has to the business. Values are case-sensitive.

        <br> - EMPLOYEE: Can only view and access ad accounts you assign to them.

        They cannot see details about other employees, external partners or other ad accounts.

        <br> - BIZ_ADMIN: Have full control of roles and can add employees, external partners as well as grant ad account access.'
      example: BIZ_ADMIN
      enum:
      - EMPLOYEE
      - BIZ_ADMIN
    BusinessRoleForMembers:
      type: string
      description: 'The access level a member has to the business. Values are case-sensitive.

        <br> - EMPLOYEE: Can only view and access assets you assign to them.

        They cannot see details about other employees, partners, or other assets.

        <br> - BIZ_ADMIN: Have full control of roles and can add employees and partners as well as grant asset access.'
      example: BIZ_ADMIN
      enum:
      - EMPLOYEE
      - BIZ_ADMIN
    UsersForIndividualAssetResponse:
      type: object
      description: An object containing the permissions a business member has on the asset.
      properties:
        asset_id:
          description: Unique identifier of a business asset.
          example: '549755885175'
          type: string
          pattern: ^\d+$
        member_id:
          description: Unique identifier of the business member with asset access.
          example: '140943737684417'
          type: string
          pattern: ^\d+$
        permissions:
          $ref: '#/components/schemas/PermissionsResponse'
    Error:
      title: Error
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
      required:
      - code
      - message
    UpdateMemberAssetAccessBody:
      type: object
      description: An object with a list of all the new accesses.
      required:
      - accesses
      properties:
        accesses:
          type: array
          minItems: 1
          maxItems: 50
          items:
            type: object
            required:
            - asset_id
            - member_id
            - permissions
            properties:
              asset_id:
                type: string
                description: Id of the asset to update.
                example: '549755885175'
                maxLength: 25
                pattern: ^\d+$
              member_id:
                type: string
                description: Unique identifier of the member on which to perform the update
                example: '140943737684417'
                maxLength: 25
                pattern: ^\d+$
              permissions:
                type: array
                description: A non-empty array of permissions to assign to the member.
                example:
                - ANALYST
                - ADMIN
                minItems: 1
                maxItems: 50
                items:
                  $ref: '#/components/schemas/Permissions'
    UserBusinessRoleBinding:
      type: object
      properties:
        assets_summary:
          type: object
          nullable: true
          allOf:
          - $ref: '#/components/schemas/BusinessMemberAssetsSummary'
        business_roles:
          description: The access level a user has on the business. This can be EMPLOYEE, BIZ_ADMIN, or PARTNER.
          type: array
          example:
          - BIZ_ADMIN
          items:
            $ref: '#/components/schemas/BusinessRoleResponse'
        created_by_business:
          type: object
          nullable: true
          description: Metadata for the business that created the business relationship.
          allOf:
          - $ref: '#/components/schemas/BusinessAccessUserSummary'
        created_by_user:
          type: object
          nullable: true
          description: Metadata for the user that created the business relationship.
          allOf:
          - $ref: '#/components/schemas/BusinessAccessUserSummary'
        created_time:
          type: integer
          nullable: true
          description: The time the business relationship was created. Returned in milliseconds.
          example: 1646767577816
        id:
          type: string
          description: Unique identifier of the business member/business partner/employer.
          example: '383791336903426391'
          pattern: ^\d+$
        is_shared_partner:
          type: boolean
          description: 'This field is only relevant when business_role="PARTNER".

            <br>If is_shared_partner=FALSE, the partner can access your business assets. If assets_summary

            is not empty, the assets listed are your business assets the partner has access to.

            <br>If is_shared_partner=TRUE, you can access the partner''s business asset. If assets_summary

            is not empty, the assets listed are the partner''s business assets you have access to.'
          example: false
        user:
          type: object
          nullable: true
          description: Metadata for the business member/business partner/employer.
          allOf:
          - $ref: '#/components/schemas/BusinessAccessUserSummary'
    BusinessAccessUserSummary:
      type: object
      description: Metadata of the member/partner that has access to the asset.
      properties:
        email:
          description: Email of the business member/partner.
          example: business0101@business.com
          type: string
          nullable: true
        id:
          description: Unique identifier of the business member/partner.
          example: '383791336903426391'
          type: string
          nullable: true
          minLength: 1
          maxLength: 20
        username:
          description: Username of the business member/partner.
          example: business0101
          nullable: true
          type: string
    UpdateMemberResult:
      type: object
      properties:
        business_role:
          type: string
          description: 'The access level a member has to the business. Values are case-sensitive.

            <br> - EMPLOYEE: Can only view and access assets you assign to them.

            They cannot see details about other employees, partners, or other assets.

            <br> - BIZ_ADMIN: Have full control of roles and can add employees and partners as well as grant asset access.'
          example: EMPLOYEE
        member_id:
          type: string
          description: Unique identifier of the business member.
          example: '140943737684417'
          pattern: ^\d+$
    DeletedMembersResponse:
      type: object
      description: An object with a list of members that were deleted.
      properties:
        deleted_members:
          type: array
          description: List of members whose business membership have been terminated.
          example:
          - '809944451643622187'
          - '383791336903426391'
          items:
            type: string
            pattern: ^\d+$
            example: '809944451643622187'
    UpdateMemberBusinessRoleBody:
      description: Single instance of a business member to have its role updated
      properties:
        business_role:
          $ref: '#/components/schemas/BusinessRoleForMembers'
        member_id:
          type: string
          description: Unique identifier of the member
          maxLength: 25
          example: '140943737684417'
          pattern: ^\d+$
      required:
      - member_id
      - business_role
      type: object
    UpdateMemberAssetsResultsResponseArray:
      type: object
      properties:
        items:
          type: array
          description: 'List of assigned/updated member asset access.

            If there is an error, an exception object will be returned. If the action was successfully completed, a response object will be returned.'
          items:
            type: object
            properties:
              response:
                $ref: '#/components/schemas/UsersForIndividualAssetResponse'
    Paginated:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
        bookmark:
          type: string
          nullable: true
      required:
      - items
    UpdateMemberResultsResponseArray:
      type: object
      properties:
        items:
          type: array
          description: List of members with updated business access role.
          items:
            $ref: '#/components/schemas/UpdateMemberResult'
    UserSingleAssetBinding:
      type: object
      description: An object containing the permissions a business member/partner has on the asset.
      properties:
        permissions:
          $ref: '#/components/schemas/PermissionsResponse'
        user:
          $ref: '#/components/schemas/BusinessAccessUserSummary'
    BusinessRoleResponse:
      type: string
      description: 'The access level a member/partner has to the business. Values are case-sensitive.

        <br> - EMPLOYEE: Can only view and access assets you assign to them.

        They cannot see details about other employees, partners, or other assets.

        <br> - BIZ_ADMIN: Have full control of roles and can add employees or external partners as well as grant asset access.

        <br> - PARTNER: Can only view and access assets you assign them to/or they assign to you.'
      example: BIZ_ADMIN
    PermissionsResponse:
      type: array
      description: Permission levels member or partner has on an asset.
      example:
      - FINANCE_MANAGER
      - CATALOGS_MANAGER
      - AUDIENCE_MANAGER
      items:
        type: string
    AssetIdPermissions:
      type: object
      description: An object containing the permissions a business member has on the asset.
      properties:
        asset_id:
          description: Unique identifier of a business asset.
          example: '549755885175'
          pattern: ^\d+$
          type: string
          maxLength: 20
          minLength: 1
        asset_type:
          $ref: '#/components/schemas/AssetTypeResponse'
        permissions:
          $ref: '#/components/schemas/PermissionsResponse'
    DeleteMemberAccessResultsResponseArray:
      type: object
      properties:
        items:
          type: array
          description: List of member asset permissions that were deleted.
          items:
            $ref: '#/components/schemas/DeleteMemberAccessResult'
    Permissions:
      type: string
      enum:
      - ADMIN
      - ANALYST
      - FINANCE_MANAGER
      - AUDIENCE_MANAGER
      - CAMPAIGN_MANAGER
      - CATALOGS_MANAGER
      - PROFILE_PUBLISHER
    AssetTypeResponse:
      description: Type of asset. Currently we only support AD_ACCOUNT and PROFILE.
      example: AD_ACCOUNT
      type: string
  parameters:
    query_resource_type:
      name: asset_type
      in: query
      required: false
      description: A resource type to filter the assets by. Only assets of the specified type will be returned.
      schema:
        type: string
        enum:
        - AD_ACCOUNT
        - PROFILE
        default: AD_ACCOUNT
        example: AD_ACCOUNT
    query_assets_summary:
      name: assets_summary
      description: 'Include assets summary in the response if this is true.


        The assets summary returns a dictionary representing a summary of the assets

        for the business user ID, with information like the ad accounts and profiles

        the user has permissions for and what those permissions are'
      in: query
      required: false
      schema:
        type: boolean
        default: false
    query_page_size:
      name: page_size
      description: Maximum number of items to include in a single page of the response. See documentation on <a href='/docs/getting-started/pagination/'>Pagination</a> for more information.
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 250
        default: 25
    query_bookmark:
      name: bookmark
      description: Cursor used to fetch the next page of items
      in: query
      required: false
      schema:
        type: string
    path_business_user:
      name: business_id
      in: path
      description: Unique identifier of the requesting business.
      example: '729090764583391194'
      required: true
      schema:
        type: string
        pattern: ^\d+$
        minLength: 1
        maxLength: 20
    path_business_id:
      name: business_id
      in: path
      description: Business id
      example: '729090764583391194'
      required: true
      schema:
        type: string
        pattern: ^\d+$
        minLength: 1
        maxLength: 20
    path_asset_id:
      name: asset_id
      in: path
      description: Unique identifier of a business asset.
      example: '729090764583391194'
      required: true
      schema:
        type: string
        pattern: ^\d+$
        minLength: 1
        maxLength: 20
    query_business_access_start_index:
      name: start_index
      in: query
      description: An index to start fetching the results from. Only the results starting from this index will be returned.
      example: 0
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    path_business_member_user:
      name: member_id
      in: path
      description: The member id to fetch assets for.
      example: '729090764583391194'
      required: true
      schema:
        type: string
        pattern: ^\d+$
        minLength: 1
        maxLength: 20
  securitySchemes:
    pinterest_oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.pinterest.com/oauth/
          tokenUrl: https://api.pinterest.com/v5/oauth/token
          scopes:
            ads:read: See all of your advertising data, including ads, ad groups, campaigns etc.
            ads:write: Create, update, or delete ads, ad groups, campaigns etc.
            billing:read: See all of your billing data, billing profile, etc.
            billing:write: Create, update, or delete billing data, billing profiles, etc.
            biz_access:read: See business access data
            biz_access:write: Create, update, or delete business access data
            boards:read: See your public boards, including group boards you join
            boards:read_secret: See your secret boards
            boards:write: Create, update, or delete your public boards
            boards:write_secret: Create, update, or delete your secret boards
            catalogs:read: See all of your catalogs data
            catalogs:write: Create, update, or delete your catalogs data
            pins:read: See your public Pins
            pins:read_secret: See your secret Pins
            pins:write: Create, update, or delete your public Pins
            pins:write_secret: Create, update, or delete your secret Pins
            user_accounts:read: See your user accounts and followers
            user_accounts:write: Update your user accounts and followers
    conversion_token:
      type: http
      scheme: bearer
      description: This security scheme only applies to the conversion events endpoint (POST /ad_accounts/{ad_account_id}/events). This endpoint requires a bearer token generated via Ads Manager (ads.pinterest.com).
    basic:
      type: http
      scheme: basic
x-tagGroups:
- name: Pin and Boards
  tags:
  - pins
  - boards
  - media
  - aggregated_comments
  - aggregated_pin_data
  - user_account
- name: Campaign Management
  tags:
  - ad_accounts
  - campaigns
  - ad_groups
  - ads
  - product_group_promotions
  - bulk
- name: Targeting
  tags:
  - audiences
  - customer_lists
  - keywords
  - targeting_template
  - audience_insights
  - audience_sharing
- name: Ad Formats
  tags:
  - lead_forms
  - lead_ads
  - leads_export
- name: Billing
  tags:
  - billing
  - order_lines
  - terms_of_service
- name: Business Access
  tags:
  - business_access_assets
  - business_access_invite
  - business_access_relationships
- name: Conversions
  tags:
  - conversion_events
  - conversion_tags
- name: Others
  tags:
  - integrations
  - oauth
  - resources
  - search
  - terms
- name: Shopping
  tags:
  - catalogs
- name: Deprecated
  tags:
  - product_groups