---
title: "Create lead ads subscription"
method: POST
path: "/ad_accounts/{ad_account_id}/leads/subscriptions"
tags: ["lead_ads"]
---

# Create lead ads subscription

`POST /ad_accounts/{ad_account_id}/leads/subscriptions`

## Request

- Base URL: `https://api.pinterest.com/v5`
- URL: `https://api.pinterest.com/v5/ad_accounts/{ad_account_id}/leads/subscriptions`
- Auth: OAuth 2
  - Authorization code: `https://www.pinterest.com/oauth/`
  - Token URL: `https://api.pinterest.com/v5/oauth/token` scopes: `ads:write`
- TypeScript: <https://skmtc.dev/pinterest/apis/pinterest-rest-api/docs/ad_accounts/:ad_account_id/leads/subscriptions/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a lead ads webhook subscription.
Subscriptions allow Pinterest to deliver lead data from Ads Manager directly to the subscriber. Subscriptions can exist for a specific lead form or at ad account level.
  - Only requests for the OWNER or ADMIN of the ad_account will be allowed.
  - Advertisers can set up multiple integrations using ad_account_id + lead_form_id but only one integration per unique records.
  - For data security, egress lead data is encrypted with AES-256-GCM.

## Path parameters

- `ad_account_id` string, required

## Request body

- LeadSubscriptionPostParamsCreate
  - `lead_form_id` string: Lead form ID.
  - `webhook_url` string, required: Standard HTTPS webhook URL.

## Response `200`

The request has succeeded.

- LeadSubscription
  - `ad_account_id` string: The Ad Account ID that this lead form belongs to.
  - `api_version` string: API version.
  - `created_time` integer: Subscription creation time. Unix timestamp in milliseconds.
  - `cryptographic_algorithm` string, nullable: Lead data encryption algorithm.
  - `cryptographic_key` string, nullable: Base64 encoded key for client to decrypt lead data.
  - `id` string: Subscription ID.
  - `lead_form_id` string, nullable: Lead form ID.
  - `user_account_id` string: User account used to subscribe lead data.
  - `webhook_url` string: Standard HTTPS webhook URL.

## Other responses

- `400`: The request could not be understood by the server due to unexpected data.
- `403`: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.
- `default`: An unexpected error response.

## Changes

- **2025-07-16** (v5) `43134ca41f18`: 3 breaking, 3 warning, 5 info
  - added `subschema #1` to the request body `allOf` list
  - added `subschema #1` to the `partner_metadata` request property `allOf` list
  - the `partner_metadata` request property type changed from `object` to no type
  - removed the request property `lead_form_id`
  - …7 more
- **2024-08-14** (v5) `89c27ed39cfd`: 2 breaking
  - the response property `cryptographic_algorithm` became nullable for the status `200`
  - the response property `cryptographic_key` became nullable for the status `200`
- **2024-04-23** (v5) `f9321315766f`: 1 info
  - added the new optional request property `partner_metadata`
- **2024-02-08** (v5) `7529b464d5cb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pinterest/apis/pinterest-rest-api/changes/ad_accounts/:ad_account_id/leads/subscriptions/post.md)

---

[API](https://skmtc.dev/pinterest/apis/pinterest-rest-api.md) - [All operations](https://skmtc.dev/pinterest/apis/pinterest-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pinterest/apis/pinterest-rest-api/revisions/b698c180678a?raw)
