Pinterest Integrations API

The Integrations API from Pinterest — 5 operation(s) for integrations.

OpenAPI Specification

pinterest-integrations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 5.13.0
  title: Pinterest Integrations 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: Integrations
paths:
  /integrations/commerce:
    post:
      summary: Create commerce integration
      description: 'Create commerce integration metadata to link an external business ID with a Pinterest merchant & ad account.

        Note: If you''re interested in joining the beta, please reach out to your Pinterest account manager.'
      operationId: integrations_commerce/post
      security:
      - pinterest_oauth2:
        - ads:write
      x-ratelimit-category: ads_write
      x-sandbox: disabled
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationRequest'
        description: Parameters to get create/update the Integration Metadata
      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:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NotIntegrationOwner:
                  value:
                    code: 4182
                    message: Can't access this integration metadata.
        default:
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Integrations
  /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:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NotIntegrationOwner:
                  value:
                    code: 4182
                    message: Can't access this integration metadata.
        default:
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Integrations
    patch:
      summary: Update commerce integration
      description: 'Update commerce integration metadata for 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/patch
      security:
      - pinterest_oauth2:
        - ads:write
      x-ratelimit-category: ads_write
      x-sandbox: disabled
      parameters:
      - $ref: '#/components/parameters/path_external_business_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationRequestPatch'
        description: Parameters to get create/update the Integration Metadata
      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:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NotIntegrationOwner:
                  value:
                    code: 4182
                    message: Can't access this integration metadata.
        default:
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Integrations
    delete:
      summary: Delete commerce integration
      description: 'Delete commerce integration metadata for 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/del
      security:
      - pinterest_oauth2:
        - ads:write
      x-ratelimit-category: ads_write
      x-sandbox: disabled
      parameters:
      - $ref: '#/components/parameters/path_external_business_id'
      responses:
        '204':
          description: Commerce Integration deleted successfully
        default:
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Integrations
  /integrations/logs:
    post:
      summary: Receives batched logs from integration applications.
      description: 'This endpoint receives batched logs from integration applications on partner platforms.

        Note: If you''re interested in joining the beta, please reach out to your Pinterest account manager.'
      tags:
      - Integrations
      operationId: integrations_logs/post
      x-ratelimit-category: ads_write
      security:
      - pinterest_oauth2:
        - ads:write
      x-sandbox: enabled
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationLogsRequest'
        description: Ingest log information from external integration application.
        required: true
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationLogsSuccessResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedError'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /integrations:
    get:
      summary: Get integration metadata list
      description: 'Get integration metadata list.

        Note: If you''re interested in joining the beta, please reach out to your Pinterest account manager.'
      operationId: integrations/get_list
      security:
      - pinterest_oauth2:
        - ads:read
      x-ratelimit-category: ads_read
      x-sandbox: disabled
      parameters:
      - $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
                      items:
                        $ref: '#/components/schemas/IntegrationRecord'
          description: Success
        default:
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Integrations
  /integrations/{id}:
    get:
      summary: Get integration metadata
      description: 'Get integration metadata by ID.

        Note: If you''re interested in joining the beta, please reach out to your Pinterest account manager.'
      operationId: integrations/get_by_id
      security:
      - pinterest_oauth2:
        - ads:read
      x-ratelimit-category: ads_read
      x-sandbox: disabled
      parameters:
      - name: id
        description: Integration ID.
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationRecord'
          description: Success
        '404':
          description: Integration not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                IntegrationNotFound:
                  value:
                    code: 4517
                    message: Sorry! We could not find your integration.
        default:
          description: Unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Integrations
components:
  parameters:
    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
    path_external_business_id:
      name: external_business_id
      description: External business ID for the integration.
      in: path
      required: true
      schema:
        type: string
    query_bookmark:
      name: bookmark
      description: Cursor used to fetch the next page of items
      in: query
      required: false
      schema:
        type: string
  schemas:
    DetailedError:
      title: Detailed Error
      description: Used for including extra details to a base error
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: object
      required:
      - code
      - message
      - details
    IntegrationLogsRequest:
      type: object
      additionalProperties: false
      description: Batch of logs sent from an integration application.
      required:
      - logs
      properties:
        logs:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationLog'
    IntegrationMetadata:
      title: integration
      description: Integration metadata
      type: object
      properties:
        id:
          type: string
          pattern: ^\d+$
        external_business_id:
          type: string
        connected_merchant_id:
          type: string
        connected_user_id:
          type: string
          readOnly: true
        connected_advertiser_id:
          type: string
          readOnly: true
        connected_lba_id:
          type: string
        connected_tag_id:
          type: string
        partner_access_token_expiry:
          type: number
        partner_refresh_token_expiry:
          type: number
        scopes:
          type: string
        created_timestamp:
          type: number
        updated_timestamp:
          type: number
        additional_id_1:
          type: string
        partner_metadata:
          type: string
      example:
        id: '7329167449607351372'
        external_business_id: '1238401984'
        connected_merchant_id: '1445572885401'
        connected_user_id: '871939315263957401'
        connected_advertiser_id: '549764738871'
        connected_lba_id: '871939315263957402'
        connected_tag_id: '2412141155151'
        partner_access_token_expiry: 1621350033000
        partner_refresh_token_expiry: 1621350033000
        scopes: accounts:read
        created_timestamp: 1621350033000
        updated_timestamp: 1621350033000
        additional_id_1: '128464'
        partner_metadata: ''
    IntegrationLogClientRequest:
      type: object
      additionalProperties: false
      description: HTTP request details included in the log sent by the client.
      required:
      - method
      - host
      - path
      properties:
        method:
          type: string
          enum:
          - GET
          - HEAD
          - POST
          - PUT
          - DELETE
          - CONNECT
          - OPTIONS
          - TRACE
          - PATCH
        host:
          type: string
          description: HTTP request host from host header.
        path:
          type: string
          description: HTTP request path.
        request_headers:
          type: object
          description: HTTP request headers as key-value pairs.
          additionalProperties:
            type: string
        response_headers:
          type: object
          description: HTTP response headers as key-value pairs.
          additionalProperties:
            type: string
        response_status_code:
          type: integer
    IntegrationLogClientError:
      type: object
      additionalProperties: false
      description: System error details included in the log sent by the client.
      properties:
        cause:
          type: string
          description: Original cause of the error.
          maxLength: 512
        column_number:
          type: integer
          description: Column number in the line of the file that raised the error.
        file_name:
          type: string
          description: Filename where the error happened.
          maxLength: 256
        line_number:
          type: integer
          description: Line number where the error happened.
        message:
          type: string
          description: Human-readable description of the error.
          maxLength: 512
        message_detail:
          type: string
          description: More detail about the message.
          maxLength: 1024
        name:
          type: string
          description: Filename where the error happened.
          maxLength: 256
        number:
          type: integer
          description: Integer that specifies the error code.
        stack_trace:
          type: string
          description: Stack trace of where the error happened.
    IntegrationRequestPatch:
      type: object
      description: Schema used for updating the integration metadata.
      properties:
        connected_merchant_id:
          type: string
        connected_advertiser_id:
          type: string
        connected_lba_id:
          type: string
        connected_tag_id:
          type: string
        partner_access_token:
          type: string
        partner_refresh_token:
          type: string
        partner_primary_email:
          type: string
        partner_access_token_expiry:
          type: number
        partner_refresh_token_expiry:
          type: number
        scopes:
          type: string
        additional_id_1:
          type: string
        partner_metadata:
          type: string
    IntegrationRequest:
      type: object
      description: Schema used for creating the integration metadata.
      properties:
        external_business_id:
          type: string
          nullable: true
          description: External business ID for the integration.
        connected_merchant_id:
          type: string
        connected_advertiser_id:
          type: string
        connected_lba_id:
          type: string
        connected_tag_id:
          type: string
        partner_access_token:
          type: string
        partner_refresh_token:
          type: string
        partner_primary_email:
          type: string
        partner_access_token_expiry:
          type: integer
        partner_refresh_token_expiry:
          type: integer
        scopes:
          type: string
        additional_id_1:
          type: string
        partner_metadata:
          type: string
    Error:
      title: Error
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
      required:
      - code
      - message
    IntegrationLog:
      type: object
      additionalProperties: false
      description: Schema for log sent from an integration application.
      required:
      - client_timestamp
      - event_type
      - log_level
      properties:
        client_timestamp:
          type: integer
          description: Timestamp in milliseconds of when the log was executed at the client.
        event_type:
          type: string
          enum:
          - APP
          - API
          description: Log event type
        log_level:
          type: string
          enum:
          - INFO
          - WARN
          - ERROR
          description: Log level type
        external_business_id:
          type: string
          maxLength: 2048
          nullable: true
        advertiser_id:
          type: string
          maxLength: 128
          nullable: true
        merchant_id:
          type: string
          maxLength: 128
          nullable: true
        tag_id:
          type: string
          maxLength: 128
          nullable: true
        feed_profile_id:
          type: string
          maxLength: 128
          nullable: true
        message:
          type: string
          description: Explanation of the event that occured.
          maxLength: 2048
        app_version_number:
          type: string
          description: Version number of the integration application.
          maxLength: 20
        platform_version_number:
          type: string
          description: Version number of the platform the integration application is running on.
          maxLength: 20
        error:
          $ref: '#/components/schemas/IntegrationLogClientError'
        request:
          $ref: '#/components/schemas/IntegrationLogClientRequest'
    IntegrationLogsSuccessResponse:
      description: Response when logs are successfully processed.
      type: object
      properties:
        message:
          type: string
    Paginated:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
        bookmark:
          type: string
          nullable: true
      required:
      - items
    IntegrationRecord:
      title: Integration record
      description: Integration record
      type: object
      properties:
        id:
          type: string
          pattern: ^\d+$
        external_business_id:
          type: string
          nullable: true
        connected_merchant_id:
          type: string
          nullable: true
        connected_user_id:
          type: string
          readOnly: true
        connected_advertiser_id:
          type: string
          readOnly: true
          nullable: true
        connected_lba_id:
          type: string
          nullable: true
        connected_tag_id:
          type: string
          nullable: true
        partner_access_token:
          type: string
          nullable: true
        partner_refresh_token:
          type: string
          nullable: true
        partner_primary_email:
          type: string
          nullable: true
        partner_access_token_expiry:
          type: integer
          nullable: true
        partner_refresh_token_expiry:
          type: integer
          nullable: true
        scopes:
          type: string
          nullable: true
        partner_metadata:
          type: string
          nullable: true
        additional_id_1:
          type: string
          nullable: true
        created_time:
          type: integer
        updated_time:
          type: integer
      example:
        id: '7329123456789012345'
        external_business_id: '1234567890'
        connected_merchant_id: '1234567890123'
        connected_user_id: '123456789012345678'
        connected_advertiser_id: '123456789012'
        connected_lba_id: '871234567890123456'
        connected_tag_id: '2412345678901'
        partner_access_token: ABCLUOJS5XDMWDE
        partner_refresh_token: ABCLUOJS5XDMWDE
        partner_primary_email: partner@server.com
        partner_access_token_expiry: 1621350033000
        partner_refresh_token_expiry: 1621350033000
        scopes: accounts:read
        partner_metadata: ''
        additional_id_1: '123456'
        created_time: 1621350033000
        updated_time: 1621350033000
  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