openapi: 3.0.3 info: version: 5.13.0 title: Pinterest Forms 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: Forms paths: /ad_accounts/{ad_account_id}/lead_forms: get: summary: Get lead forms description: 'This feature is currently in beta and not available to all apps, if you''re interested in joining the beta, please reach out to your Pinterest account manager. Gets all Lead Forms associated with an ad account ID. For more, see Lead ads.' operationId: lead_forms/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/LeadFormResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account lead forms parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}: get: summary: Get lead form by id description: 'This feature is currently in beta and not available to all apps, if you''re interested in joining the beta, please reach out to your Pinterest account manager. Gets a lead form given it''s ID. It must also be associated with the provided ad account ID. For more, see Lead ads.' operationId: lead_form/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Invalid ad account lead forms parameters. '404': description: The lead form ID for the given ad account ID does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 4842 message: Lead form is not found. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}/test: post: summary: Create lead form test data description: 'Create lead form test data based on the list of answers provided as part of the body. - List of answers should follow the questions creation order. This endpoint is currently in beta and not available to all apps. Learn more.' operationId: lead_form_test/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/LeadFormTestRequest' description: Subscription to create. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormTestResponse' description: Success '400': description: Invalid parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Invalid parameters. '404': description: Lead not found. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 4842 message: Lead not found. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Forms /resources/lead_form_questions: get: summary: Get lead form questions description: 'Get a list of all lead form question type names. Some questions might not be used. This endpoint is currently in beta and not available to all apps. Learn more.' operationId: lead_form_questions/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled responses: '200': description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Forms components: schemas: LeadFormTestResponse: title: LeadFormTestResponse type: object description: Response for lead data test API. properties: subscription_id: description: Subscription ID. example: '8078432025948590686' type: string pattern: ^\d+$ LeadFormStatus: type: string description: Status of the lead form example: DRAFT enum: - DRAFT - ACTIVE LeadFormQuestionType: type: string description: Lead form question type example: FIRST_NAME enum: - CUSTOM - FULL_NAME - FIRST_NAME - LAST_NAME - EMAIL - PHONE_NUMBER - ZIP_CODE - AGE - GENDER - CITY - COUNTRY - PREFERRED_CONTACT_METHOD - STATE_PROVINCE - ADDRESS - DATE_OF_BIRTH LeadFormQuestion: type: object properties: question_type: $ref: '#/components/schemas/LeadFormQuestionType' custom_question_field_type: $ref: '#/components/schemas/LeadFormQuestionFieldType' custom_question_label: description: Question label for a custom question. nullable: true type: string custom_question_options: description: Question options for a custom question. nullable: true type: array minItems: 0 maxItems: 5 items: type: string LeadFormTestRequest: title: LeadFormTestRequest description: Request to create test data for lead data test API. type: object properties: answers: description: Test lead answers. Should follow the creation order. type: array items: type: string example: - John - Doe - abc@email.com - '987654321' required: - answers Error: title: Error type: object properties: code: type: integer message: type: string required: - code - message LeadFormResponse: type: object allOf: - $ref: '#/components/schemas/LeadFormCommon' - type: object properties: id: description: The ID of this lead form example: '7765300871171' type: string pattern: ^\d+$ ad_account_id: description: The Ad Account ID that this lead form belongs to. example: '549755885175' type: string pattern: ^\d+$ created_time: description: Lead form creation time. Unix timestamp in seconds. example: 1451431341 type: integer updated_time: description: Last update time. Unix timestamp in seconds. example: 1451431341 type: integer LeadFormCommon: type: object description: Creation fields properties: name: description: Internal name of the lead form. example: Lead Form 3/14/2023 type: string nullable: true privacy_policy_link: description: A link to the advertiser's privacy policy. This will be included in the lead form's disclosure language. example: https://www.advertisername.com/privacy-policy type: string nullable: true has_accepted_terms: description: Whether the advertiser has accepted Pinterest's terms of service for creating a lead ad. example: false type: boolean completion_message: description: A message for people who complete the form to let them know what happens next. example: Thank you for submitting. We will contact you soon. type: string nullable: true status: $ref: '#/components/schemas/LeadFormStatus' disclosure_language: description: Additional disclosure language to be included in the lead form. example: By entering your personal information, you agree that your data will be collected and used. type: string nullable: true questions: description: List of questions to be displayed on the lead form. example: - question_type: CUSTOM custom_question_field_type: CHECKBOX custom_question_label: What is your favorite animal? custom_question_options: - Dog - Cat - Bird - Turtle type: array minItems: 0 maxItems: 10 items: $ref: '#/components/schemas/LeadFormQuestion' Paginated: type: object properties: items: type: array items: type: object bookmark: type: string nullable: true required: - items LeadFormQuestionFieldType: type: string description: Lead form question field type example: RADIO_LIST nullable: true enum: - TEXT_FIELD - TEXT_AREA - RADIO_LIST - CHECKBOX - null parameters: query_page_size: name: page_size description: Maximum number of items to include in a single page of the response. See documentation on Pagination 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_ad_account_id: name: ad_account_id description: Unique identifier of an ad account. in: path required: true schema: type: string pattern: ^\d+$ maxLength: 18 query_order: description: 'The order in which to sort the items returned: ASCENDING or DESCENDING by ID. Note that higher-value IDs are associated with more-recently added items.' in: query name: order required: false schema: type: string example: ASCENDING enum: - ASCENDING - DESCENDING path_lead_form_id: name: lead_form_id in: path description: Unique identifier of a lead form. example: '1234567890123' required: true schema: type: string pattern: ^\d+$ 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