Loading Data from Pinterest
to Azure Cloud Storage
with dlt
in Python
Join our Slack community or book a call with our support engineer Violetta.
Loading data from Pinterest
to Azure Cloud Storage
involves transferring images, animated GIFs, and videos from the popular social media platform to Microsoft's cloud storage service. This process can be efficiently managed using the open-source Python library, dlt
. dlt
enables seamless data extraction and loading, ensuring that your data is stored in Azure Cloud Storage
in formats like JSONL, Parquet, or CSV. This setup allows for the creation of robust data lakes on Azure, facilitating advanced data analysis and management. For more details about Pinterest
, visit Pinterest's website.
dlt
Key Features
- Pipeline Metadata:
dlt
pipelines leverage metadata to provide governance capabilities, including load IDs for tracking data loads and facilitating data lineage and traceability. Read more about lineage. - Schema Enforcement and Curation: Enforce and curate schemas to ensure data consistency and quality. Schemas define the structure of normalized data and guide the processing and loading of data. Read more about adjusting schemas.
- Schema Evolution:
dlt
enables proactive governance by alerting users to schema changes, allowing necessary actions such as reviewing and validating changes, updating downstream processes, or performing impact analysis. Learn more. - Scaling and Finetuning: Offers several mechanisms and configuration options to scale up and finetune pipelines, including running extraction, normalization, and load in parallel. Read more about performance.
- Advanced Features:
dlt
is a constantly growing library that supports many features and use cases needed by the community. Join our Slack to find recent releases or discuss what you can build withdlt
. Build a pipeline tutorial.
Getting started with your pipeline locally
dlt-init-openapi
0. Prerequisites
dlt
and dlt-init-openapi
requires Python 3.9 or higher. Additionally, you need to have the pip
package manager installed, and we recommend using a virtual environment to manage your dependencies. You can learn more about preparing your computer for dlt in our installation reference.
1. Install dlt and dlt-init-openapi
First you need to install the dlt-init-openapi
cli tool.
pip install dlt-init-openapi
The dlt-init-openapi
cli is a powerful generator which you can use to turn any OpenAPI spec into a dlt
source to ingest data from that api. The quality of the generator source is dependent on how well the API is designed and how accurate the OpenAPI spec you are using is. You may need to make tweaks to the generated code, you can learn more about this here.
# generate pipeline
# NOTE: add_limit adds a global limit, you can remove this later
# NOTE: you will need to select which endpoints to render, you
# can just hit Enter and all will be rendered.
dlt-init-openapi pinterest --url https://raw.githubusercontent.com/dlt-hub/openapi-specs/main/open_api_specs/Business/pinterest.yaml --global-limit 2
cd pinterest_pipeline
# install generated requirements
pip install -r requirements.txt
The last command will install the required dependencies for your pipeline. The dependencies are listed in the requirements.txt
:
dlt>=0.4.12
You now have the following folder structure in your project:
pinterest_pipeline/
├── .dlt/
│ ├── config.toml # configs for your pipeline
│ └── secrets.toml # secrets for your pipeline
├── rest_api/ # The rest api verified source
│ └── ...
├── pinterest/
│ └── __init__.py # TODO: possibly tweak this file
├── pinterest_pipeline.py # your main pipeline script
├── requirements.txt # dependencies for your pipeline
└── .gitignore # ignore files for git (not required)
1.1. Tweak pinterest/__init__.py
This file contains the generated configuration of your rest_api. You can continue with the next steps and leave it as is, but you might want to come back here and make adjustments if you need your rest_api
source set up in a different way. The generated file for the pinterest source will look like this:
Click to view full file (2212 lines)
from typing import List
import dlt
from dlt.extract.source import DltResource
from rest_api import rest_api_source
from rest_api.typing import RESTAPIConfig
@dlt.source(name="pinterest_source", max_table_nesting=2)
def pinterest_source(
base_url: str = dlt.config.value,
) -> List[DltResource]:
# source configuration
source_config: RESTAPIConfig = {
"client": {
"base_url": base_url,
},
"resources":
[
# Get account information for the "operation user_account" - By default, the "operation user_account" is the token user_account. If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See <a href='/docs/reference/business-access/'>Understanding Business Access</a> for more information.
{
"name": "user_accountget",
"table_name": "account",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/user_account",
"params": {
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get an ad account
{
"name": "ad_accountsget",
"table_name": "ad_account",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get the advertiser's list of lead ads subscriptions. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. <strong>This endpoint is currently in beta and not available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong>
{
"name": "ad_accounts_subscriptionsget_list",
"table_name": "ad_account_get_subscription_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/leads/subscriptions",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a specific lead ads subscription record. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. <strong>This endpoint is currently in beta and not available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong>
{
"name": "ad_accounts_subscriptionsget_by_id",
"table_name": "ad_account_get_subscription_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/leads/subscriptions/{subscription_id}",
"params": {
"subscription_id": {
"type": "resolve",
"resource": "ad_accounts_subscriptionsget_list",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get Ad Accounts countries
{
"name": "ad_account_countriesget",
"table_name": "ad_accounts_country_response_data",
"endpoint": {
"data_selector": "items",
"path": "/resources/ad_account_countries",
"paginator": "auto",
}
},
# List ad groups based on provided campaign IDs or ad group IDs.(campaign_ids or ad_group_ids). <p/> <strong>Note:</strong><p/> Provide only campaign_id or ad_group_id. Do not provide both.
{
"name": "ad_groupslist",
"table_name": "ad_group_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/ad_groups",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "campaign_ids": "OPTIONAL_CONFIG",
# "ad_group_ids": "OPTIONAL_CONFIG",
# "entity_statuses": "['ACTIVE', 'PAUSED']",
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "translate_interests_to_names": "false",
},
"paginator": "auto",
}
},
# Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will contain additional information from the Ad Review process. For more information about our policies and rejection reasons see the <a href="https://www.pinterest.com/_/_/policy/advertising-guidelines/" target="_blank">Pinterest advertising standards</a>.
{
"name": "ad_groupsget",
"table_name": "ad_group_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}",
"params": {
"ad_group_id": {
"type": "resolve",
"resource": "ad_groupslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# List ads that meet the filters provided: - Listed campaign ids or ad group ids or ad ids - Listed entity statuses <p/> If no filter is provided, all ads in the ad account are returned. <p/> <strong>Note:</strong><p/> Provide only campaign_id or ad_group_id or ad_id. Do not provide more than one type. <p/> Review status is provided for each ad; if review_status is REJECTED, the rejected_reasons field will contain additional information. For more, see <a href="https://policy.pinterest.com/en/advertising-guidelines">Pinterest advertising standards</a>.
{
"name": "adslist",
"table_name": "ad_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/ads",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "campaign_ids": "OPTIONAL_CONFIG",
# "ad_group_ids": "OPTIONAL_CONFIG",
# "ad_ids": "OPTIONAL_CONFIG",
# "entity_statuses": "['ACTIVE', 'PAUSED']",
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will contain additional information from the Ad Review process. For more information about our policies and rejection reasons see the <a href="https://www.pinterest.com/_/_/policy/advertising-guidelines/" target="_blank">Pinterest advertising standards</a>.
{
"name": "adsget",
"table_name": "ad_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ads/{ad_id}",
"params": {
"ad_id": {
"type": "resolve",
"resource": "adslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# This returns a URL to an analytics report given a token returned from the post request report creation call. You can use the URL to download the report. The link is valid for five minutes and the report is valid for one hour. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager.
{
"name": "analyticsget_report",
"table_name": "ads_analytics_get_async_response",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/reports",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"token": "FILL_ME_IN", # TODO: fill in required query parameter
},
"paginator": "auto",
}
},
# Returns the list of discounts applied to the account. <strong>This endpoint might not be available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong>
{
"name": "ads_credits_discountsget",
"table_name": "ads_credit_discounts_response",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/ads_credit/discounts",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get analytics for the specified ad groups in the specified <code>ad_account_id</code>, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "ad_groupsanalytics",
"table_name": "analytic",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ad_groups/analytics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "ad_groupslist",
"field": "ad_account_id",
},
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"ad_group_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
},
"paginator": "auto",
}
},
# Get analytics for the specified ads in the specified <code>ad_account_id</code>, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "adsanalytics",
"table_name": "analytic",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ads/analytics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "adslist",
"field": "ad_account_id",
},
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"ad_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
},
"paginator": "auto",
}
},
# Get analytics for the specified <code>ad_account_id</code>, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time.
{
"name": "ad_accountanalytics",
"table_name": "analytic",
"primary_key": "AD_ACCOUNT_ID",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/analytics",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
},
"paginator": "auto",
}
},
# Get analytics for the specified campaigns in the specified <code>ad_account_id</code>, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "campaignsanalytics",
"table_name": "analytic",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/campaigns/analytics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "campaignslist",
"field": "ad_account_id",
},
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"campaign_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
},
"paginator": "auto",
}
},
# Get analytics for the specified product groups in the specified <code>ad_account_id</code>, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "product_groupsanalytics",
"table_name": "analytic",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/product_groups/analytics",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"product_group_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
},
"paginator": "auto",
}
},
# Get analytics for the "operation user_account" - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
{
"name": "user_accountanalytics",
"table_name": "analytics_response",
"endpoint": {
"data_selector": "$",
"path": "/user_account/analytics",
"params": {
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "from_claimed_content": "BOTH",
# "pin_format": "ALL",
# "app_types": "ALL",
# "content_type": "ALL",
# "source": "ALL",
# "metric_types": "OPTIONAL_CONFIG",
# "split_field": "NO_SPLIT",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# 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.
{
"name": "business_member_assetsget",
"table_name": "asset_id_permissions",
"primary_key": "asset_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/members/{member_id}/assets",
"params": {
"member_id": {
"type": "resolve",
"resource": "getbusiness_members",
"field": "id",
},
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "asset_type": "AD_ACCOUNT",
# "start_index": "0",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get list of audiences for the ad account.
{
"name": "audienceslist",
"table_name": "audience",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/audiences",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "order": "OPTIONAL_CONFIG",
# "page_size": "25",
# "ownership_type": "OWNED",
},
"paginator": "auto",
}
},
# Get a specific audience given the audience ID.
{
"name": "audiencesget",
"table_name": "audience",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/audiences/{audience_id}",
"params": {
"audience_id": {
"type": "resolve",
"resource": "audienceslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get Audience Insights for an ad account. The response will return insights for 3 types of audiences: the ad account's engaged audience on Pinterest, the ad account's total audience on Pinterest and Pinterest's total audience.<p/> <a href="https://help.pinterest.com/en/business/article/audience-insights" target="_blank">Learn more about Audience Insights</a>.
{
"name": "audience_insightsget",
"table_name": "audience_category",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "categories",
"path": "/ad_accounts/{ad_account_id}/audience_insights",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"audience_insight_type": "YOUR_TOTAL_AUDIENCE", # TODO: fill in required query parameter
},
"paginator": "auto",
}
},
# Get the scope and type of available audiences, which along with a date, is an audience that has recently had an interaction (referred to here as a type) on pins. Interacted pins can belong to at least the most common **partner** or **Pinterest** scopes. This means that user interactions made on advertiser or partner pins will have the **partner** scope. You can also have user interactions performed in general on Pinterest with the **Pinterest** scope. In that case, you can then use the returned type and scope values together on requests to other endpoints to retrieve insight metrics for a desired audience.
{
"name": "audience_insights_scope_and_typeget",
"table_name": "audience_definition",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/insights/audiences",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get billing profiles in the advertiser account. <strong>This endpoint might not be available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong>
{
"name": "billing_profilesget",
"table_name": "billing_profiles_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/billing_profiles",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"is_active": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get a board owned by the operation user_account - or a group board that has been shared with this account. - Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". - By default, the "operation user_account" is the token user_account.
{
"name": "boardsget",
"table_name": "board",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/boards/{board_id}",
"params": {
"board_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of the boards a user follows. The request returns a board summary object array.
{
"name": "boards_user_followslist",
"table_name": "board",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/user_account/following/boards",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "explicit_following": "false",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Learn whether conversion or non-conversion metrics are finalized and ready to query.
{
"name": "metrics_ready_stateget",
"table_name": "book_closed_response",
"endpoint": {
"data_selector": "$",
"path": "/resources/metrics_ready_state",
"params": {
"date": "FILL_ME_IN", # TODO: fill in required query parameter
},
"paginator": "auto",
}
},
# <strong>This endpoint is currently in beta and not available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong> Get analytics for multiple pins owned by the "operation user_account" - or on a group board that has been shared with this account. - The maximum number of pins supported in a single request is 100. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href="https://developers.pinterest.com/docs/api/v5/#operation/ad_accounts/list">List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: - For Pins on public or protected boards: Admin, Analyst. - For Pins on secret boards: Admin. If Pin was created before <code>2023-03-20</code> lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.
{
"name": "multi_pinsanalytics",
"table_name": "bulk_pin_analytics_response",
"endpoint": {
"data_selector": "$",
"path": "/pins/analytics",
"params": {
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"metric_types": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "pin_ids": "OPTIONAL_CONFIG",
# "app_types": "ALL",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get the status of a bulk request by <code>request_id</code>, along with a download URL that will allow you to download the new or updated entity data (campaigns, ad groups, product groups, ads, or keywords).
{
"name": "bulk_requestget",
"table_name": "bulk_upsert_status_response",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/bulk/{bulk_request_id}",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"bulk_request_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "include_details": "false",
},
"paginator": "auto",
}
},
# Get a list of the campaigns in the specified <code>ad_account_id</code>, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager.
{
"name": "campaignslist",
"table_name": "campaign_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/campaigns",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "campaign_ids": "OPTIONAL_CONFIG",
# "entity_statuses": "['ACTIVE', 'PAUSED']",
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a specific campaign given the campaign ID.
{
"name": "campaignsget",
"table_name": "campaign_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/campaigns/{campaign_id}",
"params": {
"campaign_id": {
"type": "resolve",
"resource": "campaignslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Fetch catalogs owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "catalogslist",
"table_name": "catalog",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/catalogs",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# This endpoint is completely deprecated. Please use <a href='/docs/api/v5/#operation/catalogs_product_groups/list'>List product groups</a> from Catalogs API instead.
{
"name": "ad_accounts_catalogs_product_groupslist",
"table_name": "catalog_product_group",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/product_groups/catalogs",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "feed_profile_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Fetch feeds owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. For Retail partners, refer to <a href='https://help.pinterest.com/en/business/article/before-you-get-started-with-catalogs'>Before you get started with Catalogs</a>. For Hotel parterns, refer to <a href='/docs/shopping/catalog/'>Pinterest API for shopping</a>.
{
"name": "feedslist",
"table_name": "catalogs_feed",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/catalogs/feeds",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "catalog_id": "OPTIONAL_CONFIG",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a single feed owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. For Retail partners, refer to <a href='https://help.pinterest.com/en/business/article/before-you-get-started-with-catalogs'>Before you get started with Catalogs</a>. For Hotel parterns, refer to <a href='/docs/shopping/catalog/'>Pinterest API for shopping</a>.
{
"name": "feedsget",
"table_name": "catalogs_feed",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/catalogs/feeds/{feed_id}",
"params": {
"feed_id": {
"type": "resolve",
"resource": "feedslist",
"field": "id",
},
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Fetch a feed processing results owned by the "operation user_account". Please note that for now the bookmark parameter is not functional and only the first page will be available until it is implemented in some release in the near future. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "feed_processing_resultslist",
"table_name": "catalogs_feed_processing_result",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/catalogs/feeds/{feed_id}/processing_results",
"params": {
"feed_id": {
"type": "resolve",
"resource": "feedslist",
"field": "id",
},
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# List item validation issues for a given feed processing result owned by the "operation user_account". Up to 20 random samples of affected items are returned for each error and warning code. Please note that for now query parameters 'item_numbers' and 'item_validation_issue' cannot be used simultaneously until it is implemented in some release in the future. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "items_issueslist",
"table_name": "catalogs_item_validation_issues",
"endpoint": {
"data_selector": "items",
"path": "/catalogs/processing_results/{processing_result_id}/item_issues",
"params": {
"processing_result_id": {
"type": "resolve",
"resource": "catalogslist",
"field": "id",
},
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "item_numbers": "OPTIONAL_CONFIG",
# "item_validation_issue": "OPTIONAL_CONFIG",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a single catalogs items batch owned by the "operating user_account". <a href="/docs/shopping/catalog/#Update%20items%20in%20batch" target="_blank">See detailed documentation here.</a> - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager.
{
"name": "items_batchget",
"table_name": "catalogs_items_batch",
"primary_key": "batch_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/catalogs/items/batch/{batch_id}",
"params": {
"batch_id": {
"type": "resolve",
"resource": "itemsget",
"field": "item_id",
},
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a product counts for a given Catalogs Product Group owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. Note: This endpoint only supports RETAIL catalog at the moment. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "catalogs_product_groupsproduct_counts_get",
"table_name": "catalogs_product_group_product_counts",
"endpoint": {
"data_selector": "$",
"path": "/catalogs/product_groups/{product_group_id}/product_counts",
"params": {
"product_group_id": {
"type": "resolve",
"resource": "catalogs_product_groupslist",
"field": "id",
},
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# This returns a URL to a report given a token returned from <a href='/docs/api/v5/#operation/reports/create'>Build catalogs report</a>. You can use the URL to download the report. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager.
{
"name": "reportsget",
"table_name": "catalogs_report",
"endpoint": {
"data_selector": "$",
"path": "/catalogs/reports",
"params": {
"token": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# List aggregated numbers of issues for a catalog owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager.
{
"name": "reportsstats",
"table_name": "catalogs_report_stats",
"endpoint": {
"data_selector": "items",
"path": "/catalogs/reports/stats",
"params": {
"parameters": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of product groups for a given Catalogs Feed Id owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "catalogs_product_groupslist",
"table_name": "catalogs_vertical_product_group",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/catalogs/product_groups",
"params": {
# the parameters below can optionally be configured
# "id": "OPTIONAL_CONFIG",
# "feed_id": "OPTIONAL_CONFIG",
# "catalog_id": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a singe product group for a given Catalogs Product Group Id owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "catalogs_product_groupsget",
"table_name": "catalogs_vertical_product_group",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/catalogs/product_groups/{product_group_id}",
"params": {
"product_group_id": {
"type": "resolve",
"resource": "catalogs_product_groupslist",
"field": "id",
},
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get all page visit conversion tag events for an ad account.
{
"name": "page_visit_conversion_tagsget",
"table_name": "conversion_event_response",
"primary_key": "ad_account_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/conversion_tags/page_visit",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "conversion_tagslist",
"field": "ad_account_id",
},
# the parameters below can optionally be configured
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# List conversion tags associated with an ad account.
{
"name": "conversion_tagslist",
"table_name": "conversion_tag_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/conversion_tags",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "filter_deleted": "false",
},
"paginator": "auto",
}
},
# Get information about an existing conversion tag.
{
"name": "conversion_tagsget",
"table_name": "conversion_tag_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/conversion_tags/{conversion_tag_id}",
"params": {
"conversion_tag_id": {
"type": "resolve",
"resource": "conversion_tagslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get Ocpm eligible conversion tag events for an ad account.
{
"name": "ocpm_eligible_conversion_tagsget",
"table_name": "conversion_tags_ocpm_eligible_response",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/conversion_tags/ocpm_eligible",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "conversion_tagslist",
"field": "ad_account_id",
},
},
"paginator": "auto",
}
},
# <p>Get a set of customer lists including id and name based on the filters provided.</p> <p>(Customer lists are a type of audience.) For more information, see <a href="https://help.pinterest.com/en/business/article/audience-targeting" target="_blank">Audience targeting</a> or the <a href="/docs/ads/targeting/#Audiences" target="_blank">Audiences</a> section of the ads management guide.</p>
{
"name": "customer_listslist",
"table_name": "customer_list",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/customer_lists",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Gets a specific customer list given the customer list ID.
{
"name": "customer_listsget",
"table_name": "customer_list",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/customer_lists/{customer_list_id}",
"params": {
"customer_list_id": {
"type": "resolve",
"resource": "customer_listslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get the definitions for ads and organic metrics available across both synchronous and asynchronous report endpoints. The `display_name` attribute will match how the metric is named in our native tools like Ads Manager. See <a href='/docs/content/analytics/'>Organic Analytics</a> and <a href='/docs/ads/ad-analytics-reporting/'>Ads Analytics</a> for more information.
{
"name": "delivery_metricsget",
"table_name": "delivery_metric",
"endpoint": {
"data_selector": "items",
"path": "/resources/delivery_metrics",
"params": {
# the parameters below can optionally be configured
# "report_type": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# 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.
{
"name": "business_assetsget",
"table_name": "get_business_assets_response",
"primary_key": "asset_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/assets",
"params": {
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "permissions": "OPTIONAL_CONFIG",
# "asset_type": "AD_ACCOUNT",
# "start_index": "0",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get an mmm report for an ad account. This returns a URL to an mmm metrics report given a token returned from the create mmm report endpoint.
{
"name": "analyticsget_mmm_report",
"table_name": "get_mmm_report_response",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/mmm_reports",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"token": "FILL_ME_IN", # TODO: fill in required query parameter
},
"paginator": "auto",
}
},
# 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.
{
"name": "business_partner_asset_accessget",
"table_name": "get_partner_assets_response",
"primary_key": "asset_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/partners/{partner_id}/assets",
"params": {
"partner_id": {
"type": "resolve",
"resource": "getbusiness_partners",
"field": "id",
},
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "partner_type": "OPTIONAL_CONFIG",
# "asset_type": "AD_ACCOUNT",
# "start_index": "0",
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# 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.
{
"name": "integrations_commerceget",
"table_name": "integration_metadata",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/integrations/commerce/{external_business_id}",
"params": {
"external_business_id": {
"type": "resolve",
"resource": "integrationsget_list",
"field": "external_business_id",
},
},
"paginator": "auto",
}
},
# Get integration metadata list. Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
{
"name": "integrationsget_list",
"table_name": "integration_record",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/integrations",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get integration metadata by ID. Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
{
"name": "integrationsget_by_id",
"table_name": "integration_record",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/integrations/{id}",
"params": {
"id": {
"type": "resolve",
"resource": "integrationsget_list",
"field": "id",
},
},
"paginator": "auto",
}
},
# Get a list of a user's following interests in one place.
{
"name": "user_accountfollowed_interests",
"table_name": "interest",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/users/{username}/interests/follow",
"params": {
"username": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get the membership/partnership invites and/or requests for the authorized user.
{
"name": "getinvites",
"table_name": "invite_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/invites",
"params": {
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "is_member": "true",
# "invite_status": "OPTIONAL_CONFIG",
# "invite_type": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get the items of the catalog owned by the "operation user_account". <a href="/docs/shopping/catalog/#Update%20items%20in%20batch" target="_blank">See detailed documentation here.</a> - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. Note: The catalog type of Creative Assets is only allowed in the <a href='https://api-sandbox.pinterest.com/v5'>Pinterest API Sandbox</a>. If access is required, please contact your partner manager.
{
"name": "itemsget",
"table_name": "item_response",
"primary_key": "item_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/catalogs/items",
"params": {
"country": "FILL_ME_IN", # TODO: fill in required query parameter
"language": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "item_ids": "OPTIONAL_CONFIG",
# "filters": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# <p>Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.</p> <p>For more information, see <a target="_blank" href="https://help.pinterest.com/en/business/article/keyword-targeting">Keyword targeting</a>.</p> <p><b>Notes:</b></p> <ul style="list-style-type: square;"> <li>Advertisers and campaigns can only be assigned keywords with excluding ('_NEGATIVE').</li> <li>All keyword match types are available for ad groups.</li> </ul> <p>For more information on match types, see <a target="_blank" href="/docs/ads/targeting/#Match%20type%20and%20targeting%20level">match type enums</a>.</p> <p><b>Returns:</b></p> <ul style="list-style-type: square;"> <li><p>A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.</p></li> <li><p>An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:</p> <pre class="last literal-block"> { "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } } </pre></li> </ul>
{
"name": "keywordsget",
"table_name": "keyword",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/keywords",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "campaign_id": "OPTIONAL_CONFIG",
# "ad_group_id": "OPTIONAL_CONFIG",
# "match_types": "OPTIONAL_CONFIG",
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# See keyword metrics for a specified country, aggregated across all of Pinterest. (Definitions are available from the "Get delivery metrics definitions" <a href="/docs/api/v5/#operation/delivery_metrics/get">API endpoint</a>).
{
"name": "country_keywords_metricsget",
"table_name": "keyword_metrics_response",
"endpoint": {
"data_selector": "data",
"path": "/ad_accounts/{ad_account_id}/keywords/metrics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "keywordsget",
"field": "id",
},
"country_code": "FILL_ME_IN", # TODO: fill in required query parameter
"keywords": "FILL_ME_IN", # TODO: fill in required query parameter
},
"paginator": "auto",
}
},
# Get a list of all lead form question type names. Some questions might not be used. <strong>This endpoint is currently in beta and not available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong>
{
"name": "lead_form_questionsget",
"table_name": "lead_form_question",
"endpoint": {
"path": "/resources/lead_form_questions",
"paginator": "auto",
}
},
# <strong>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.</strong> Gets all Lead Forms associated with an ad account ID. For more, see <a class="reference external" href="https://help.pinterest.com/en/business/article/lead-ads">Lead ads</a>.
{
"name": "lead_formslist",
"table_name": "lead_form_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/lead_forms",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# <strong>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.</strong> Gets a lead form given it's ID. It must also be associated with the provided ad account ID. For more, see <a class="reference external" href="https://help.pinterest.com/en/business/article/lead-ads">Lead ads</a>.
{
"name": "lead_formget",
"table_name": "lead_form_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}",
"params": {
"lead_form_id": {
"type": "resolve",
"resource": "lead_formslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get a list of your linked business accounts.
{
"name": "linked_business_accountsget",
"table_name": "linked_business",
"endpoint": {
"data_selector": "$",
"path": "/user_account/businesses",
"paginator": "auto",
}
},
# Get details for a registered media upload, including its current status. <strong><a href='/docs/content/content-creation/#Creating%20video%20Pins'>Learn more</a></strong> about video Pin creation.
{
"name": "mediaget",
"table_name": "media_upload_details",
"primary_key": "media_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/media/{media_id}",
"params": {
"media_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# List existing order lines associated with an ad account.
{
"name": "order_lineslist",
"table_name": "order_line",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/order_lines",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a specific existing order line associated with an ad account.
{
"name": "order_linesget",
"table_name": "order_line",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/order_lines/{order_line_id}",
"params": {
"order_line_id": {
"type": "resolve",
"resource": "order_lineslist",
"field": "id",
},
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get a list of the ad_accounts that the "operation user_account" has access to. - This includes ad_accounts they own and ad_accounts that are owned by others who have granted them <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>.
{
"name": "ad_accountslist",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "include_shared_accounts": "true",
},
"paginator": "auto",
}
},
# Get insertion order status for account id <code>ad_account_id</code>. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Finance, Campaign.
{
"name": "ssio_insertion_orders_statusget_by_ad_account",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ssio/insertion_orders/status",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get Salesforce order lines for account id <code>ad_account_id</code>. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Finance, Campaign.
{
"name": "ssio_order_linesget_by_ad_account",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ssio/order_lines",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "pin_order_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of the boards owned by the "operation user_account" + group boards where this account is a collaborator Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". Optional: Specify a privacy type (public, protected, or secret) to indicate which boards to return. - If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned.
{
"name": "boardslist",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/boards",
"params": {
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "privacy": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of the Pins on a board owned by the "operation user_account" - or on a group board that has been shared with this account. - Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". - By default, the "operation user_account" is the token user_account.
{
"name": "boardslist_pins",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/boards/{board_id}/pins",
"params": {
"board_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "creative_types": "OPTIONAL_CONFIG",
# "ad_account_id": "OPTIONAL_CONFIG",
# "pin_metrics": "false",
},
"paginator": "auto",
}
},
# Get a list of all board sections from a board owned by the "operation user_account" - or a group board that has been shared with this account. Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". - By default, the "operation user_account" is the token user_account.
{
"name": "board_sectionslist",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/boards/{board_id}/sections",
"params": {
"board_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get a list of the Pins on a board section of a board owned by the "operation user_account" - or on a group board that has been shared with this account. Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". - By default, the "operation user_account" is the token user_account.
{
"name": "board_sectionslist_pins",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/boards/{board_id}/sections/{section_id}/pins",
"params": {
"board_id": "FILL_ME_IN", # TODO: fill in required path parameter
"section_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get a list of product pins for a given Catalogs Product Group Id owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: Owner, Admin, Catalogs Manager. Note: This endpoint only supports RETAIL catalog at the moment. <a href='/docs/shopping/catalog/'>Learn more</a>
{
"name": "catalogs_product_group_pinslist",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/catalogs/product_groups/{product_group_id}/products",
"params": {
"product_group_id": {
"type": "resolve",
"resource": "catalogs_product_groupslist",
"field": "id",
},
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# List media uploads filtered by given parameters. <strong><a href='/docs/content/content-creation/#Creating%20video%20Pins'>Learn more</a></strong> about video Pin creation.
{
"name": "medialist",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/media",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Search for boards for the "operation user_account". This includes boards of all board types. - By default, the "operation user_account" is the token user_account. If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See <a href='/docs/reference/business-access/'>Understanding Business Access</a> for more information.
{
"name": "search_user_boardsget",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/search/boards",
"params": {
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "query": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of who a certain user follows.
{
"name": "user_followingget",
"table_name": "paginated",
"endpoint": {
"data_selector": "$",
"path": "/user_account/following",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "feed_type": "ALL",
# "explicit_following": "false",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of the Pins owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. - All Pins owned by the "operation user_account" are included, regardless of who owns the board they are on. Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". Disclaimer: there are known performance issues when filtering by field <code>creative_type</code> and including protected pins. If your request is timing out in this scenario we encourage you to use <a href='/docs/api/v5/#operation/boards/list_pins'>GET List Pins on Board</a>.
{
"name": "pinslist",
"table_name": "pin",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/pins",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "pin_filter": "OPTIONAL_CONFIG",
# "include_protected_pins": "false",
# "pin_type": "OPTIONAL_CONFIG",
# "creative_types": "OPTIONAL_CONFIG",
# "ad_account_id": "OPTIONAL_CONFIG",
# "pin_metrics": "false",
},
"paginator": "auto",
}
},
# Get a Pin owned by the "operation user_account" - or on a group board that has been shared with this account. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: - For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager. - For Pins on secret boards: Owner, Admin.
{
"name": "pinsget",
"table_name": "pin",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/pins/{pin_id}",
"params": {
"pin_id": {
"type": "resolve",
"resource": "pinslist",
"field": "id",
},
# the parameters below can optionally be configured
# "pin_metrics": "false",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Search for pins for the "operation user_account". - By default, the "operation user_account" is the token user_account. If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See <a href='/docs/reference/business-access/'>Understanding Business Access</a> for more information.
{
"name": "search_user_pinslist",
"table_name": "pin",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/search/pins",
"params": {
"query": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "ad_account_id": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get analytics for a Pin owned by the "operation user_account" - or on a group board that has been shared with this account. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href="https://developers.pinterest.com/docs/api/v5/#operation/ad_accounts/list">List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account: - For Pins on public or protected boards: Admin, Analyst. - For Pins on secret boards: Admin. If Pin was created before <code>2023-03-20</code> lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.
{
"name": "pinsanalytics",
"table_name": "pin_analytics_response",
"endpoint": {
"data_selector": "$",
"path": "/pins/{pin_id}/analytics",
"params": {
"pin_id": {
"type": "resolve",
"resource": "pinslist",
"field": "id",
},
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"metric_types": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "app_types": "ALL",
# "split_field": "NO_SPLIT",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a product group promotion by id
{
"name": "product_group_promotionsget",
"table_name": "product_group_promotion_response",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/product_group_promotions/{product_group_promotion_id}",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"product_group_promotion_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# List existing product group promotions associated with an ad account. Include either ad_group_id or product_group_promotion_ids in your request. <b>Note:</b> ad_group_ids and product_group_promotion_ids are mutually exclusive parameters. Only provide one. If multiple options are provided, product_group_promotion_ids takes precedence over ad_group_ids. If none are provided, the endpoint returns an error.
{
"name": "product_group_promotionslist",
"table_name": "product_group_promotion_response_item",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/product_group_promotions",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "product_group_promotion_ids": "OPTIONAL_CONFIG",
# "entity_statuses": "['ACTIVE', 'PAUSED']",
# "ad_group_id": "OPTIONAL_CONFIG",
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of terms logically related to each input term. <p/> Example: the term 'workout' would list related terms like 'one song workout', 'yoga workout', 'workout motivation', etc.
{
"name": "terms_relatedlist",
"table_name": "related",
"endpoint": {
"data_selector": "related_terms_list",
"path": "/terms/related",
"params": {
"terms": "FILL_ME_IN", # TODO: fill in required query parameter
},
"paginator": "auto",
}
},
# <p>Get details of a specific interest given interest ID.</p> <p>Click <a href="https://docs.google.com/spreadsheets/d/1HxL-0Z3p2fgxis9YBP2HWC3tvPrs1hAuHDRtH-NJTIM/edit#gid=118370875" target="_blank">here</a> for a spreadsheet listing interests and their IDs.</p>
{
"name": "interest_targeting_optionsget",
"table_name": "single_interest_targeting_option_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/resources/targeting/interests/{interest_id}",
"params": {
"interest_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get Salesforce account details including bill-to information to be used in insertion orders process for <code>ad_account_id</code>. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Finance, Campaign.
{
"name": "ssio_accountsget",
"table_name": "ssio_account_item",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "billto_infos",
"path": "/ad_accounts/{ad_account_id}/ssio/accounts",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get insertion order status for pin order id <code>pin_order_id</code>. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Finance, Campaign.
{
"name": "ssio_insertion_orders_statusget_by_pin_order_id",
"table_name": "ssio_insertion_order_status_response",
"primary_key": "pin_order_id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/ssio/insertion_orders/{pin_order_id}/status",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"pin_order_id": "FILL_ME_IN", # TODO: fill in required path parameter
},
"paginator": "auto",
}
},
# Get popular search terms that begin with your input term. <p/> Example: 'sport' would return popular terms like 'sports bar' and 'sportswear', but not 'motor sports' since the phrase does not begin with the given term.
{
"name": "terms_suggestedlist",
"table_name": "suggested",
"endpoint": {
"data_selector": "$",
"path": "/terms/suggested",
"params": {
"term": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "limit": "4",
},
"paginator": "auto",
}
},
# <strong>This endpoint is currently in beta and not available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong> Get the top 10 Pins by a given search term.
{
"name": "search_partner_pins",
"table_name": "summary_pin",
"endpoint": {
"data_selector": "items",
"path": "/search/partner/pins",
"params": {
"term": "FILL_ME_IN", # TODO: fill in required query parameter
"country_code": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "locale": "OPTIONAL_CONFIG",
# "limit": "10",
},
"paginator": "auto",
}
},
# <p>You can use targeting values in ads placement to define your intended audience. </p> <p>Targeting metrics are organized around targeting specifications.</p> <p>For more information on ads targeting, see <a class="reference external" href="https://help.pinterest.com/en/business/article/audience-targeting" target="_blank">Audience targeting</a>.</p> <p><b>Sample return:</b></p> <pre class="literal-block"> [{"36313": "Australia: Moreton Bay - North", "124735": "Canada: North Battleford", "36109": "Australia: Murray", "36108": "Australia: Mid North Coast", "36101": "Australia: Capital Region", "811": "U.S.: Reno", "36103": "Australia: Central West", "36102": "Australia: Central Coast", "36105": "Australia: Far West and Orana", "36104": "Australia: Coffs Harbour - Grafton", "36107": "Australia: Illawarra", "36106": "Australia: Hunter Valley Exc Newcastle", "554017": "New Zealand: Wanganui", "554016": "New Zealand: Marlborough", "554015": "New Zealand: Gisborne", "554014": "New Zealand: Tararua", "554013": "New Zealand: Invercargill", "GR": "Greece", "554011": "New Zealand: Whangarei", "554010": "New Zealand: Far North", "717": "U.S.: Quincy-Hannibal-Keokuk", "716": "U.S.: Baton Rouge",...}] </pre>
{
"name": "targeting_optionsget",
"table_name": "targeting",
"endpoint": {
"data_selector": "$",
"path": "/resources/targeting/{targeting_type}",
"params": {
"targeting_type": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "client_id": "OPTIONAL_CONFIG",
# "oauth_signature": "OPTIONAL_CONFIG",
# "timestamp": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get targeting analytics for one or more ad groups. For the requested ad group(s) and metrics, the response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49"). <p/> - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "ad_groups_targeting_analyticsget",
"table_name": "targeting_analytic",
"endpoint": {
"data_selector": "data",
"path": "/ad_accounts/{ad_account_id}/ad_groups/targeting_analytics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "ad_groupslist",
"field": "ad_account_id",
},
"ad_group_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"targeting_types": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
# "attribution_types": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get targeting analytics for one or more ads. For the requested ad(s) and metrics, the response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49"). <p/> - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "ad_targeting_analyticsget",
"table_name": "targeting_analytic",
"endpoint": {
"data_selector": "data",
"path": "/ad_accounts/{ad_account_id}/ads/targeting_analytics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "adslist",
"field": "ad_account_id",
},
"ad_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"targeting_types": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
# "attribution_types": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get targeting analytics for one or more campaigns. For the requested account and metrics, the response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49"). <p/> - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "campaign_targeting_analyticsget",
"table_name": "targeting_analytic",
"endpoint": {
"data_selector": "data",
"path": "/ad_accounts/{ad_account_id}/campaigns/targeting_analytics",
"params": {
"ad_account_id": {
"type": "resolve",
"resource": "campaignslist",
"field": "ad_account_id",
},
"campaign_ids": "FILL_ME_IN", # TODO: fill in required query parameter
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"targeting_types": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
# "attribution_types": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get targeting analytics for an ad account. For the requested account and metrics, the response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49"). <p/> - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a>: Admin, Analyst, Campaign Manager. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days.
{
"name": "ad_account_targeting_analyticsget",
"table_name": "targeting_analytic",
"endpoint": {
"data_selector": "data",
"path": "/ad_accounts/{ad_account_id}/targeting_analytics",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"targeting_types": "FILL_ME_IN", # TODO: fill in required query parameter
"columns": "FILL_ME_IN", # TODO: fill in required query parameter
"granularity": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "click_window_days": "30",
# "engagement_window_days": "30",
# "view_window_days": "1",
# "conversion_report_time": "TIME_OF_AD_ACTION",
# "attribution_types": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get a list of the targeting templates in the specified <code>ad_account_id</code>
{
"name": "targeting_templatelist",
"table_name": "targeting_template_response_data",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/targeting_templates",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "order": "OPTIONAL_CONFIG",
# "include_sizing": "false",
# "search_query": "OPTIONAL_CONFIG",
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Gets all Templates associated with an ad account ID.
{
"name": "templateslist",
"table_name": "template_response",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/ad_accounts/{ad_account_id}/templates",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "page_size": "25",
# "order": "OPTIONAL_CONFIG",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get the text of the terms of service and see whether the advertiser has accepted the terms of service.
{
"name": "terms_of_serviceget",
"table_name": "terms_of_service",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "$",
"path": "/ad_accounts/{ad_account_id}/terms_of_service",
"params": {
"ad_account_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "include_html": "false",
# "tos_type": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Gets analytics data about a user's top pins (limited to the top 50). - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
{
"name": "user_accountanalyticstop_pins",
"table_name": "top_pin",
"endpoint": {
"data_selector": "pins",
"path": "/user_account/analytics/top_pins",
"params": {
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"sort_by": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "from_claimed_content": "BOTH",
# "pin_format": "ALL",
# "app_types": "ALL",
# "content_type": "ALL",
# "source": "ALL",
# "metric_types": "OPTIONAL_CONFIG",
# "num_of_pins": "10",
# "created_in_last_n_days": "OPTIONAL_CONFIG",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Gets analytics data about a user's top video pins (limited to the top 50). - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
{
"name": "user_accountanalyticstop_video_pins",
"table_name": "top_video_pin",
"endpoint": {
"data_selector": "pins",
"path": "/user_account/analytics/top_video_pins",
"params": {
"start_date": "FILL_ME_IN", # TODO: fill in required query parameter
"end_date": "FILL_ME_IN", # TODO: fill in required query parameter
"sort_by": "FILL_ME_IN", # TODO: fill in required query parameter
# the parameters below can optionally be configured
# "from_claimed_content": "BOTH",
# "pin_format": "ALL",
# "app_types": "ALL",
# "content_type": "ALL",
# "source": "ALL",
# "metric_types": "OPTIONAL_CONFIG",
# "num_of_pins": "10",
# "created_in_last_n_days": "OPTIONAL_CONFIG",
# "ad_account_id": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# <p>Get the top trending search keywords among the Pinterest user audience.</p> <p>Trending keywords can be used to inform ad targeting, budget strategy, and creative decisions about which products and Pins will resonate with your audience.</p> <p>Geographic, demographic and interest-based filters are available to narrow down to the top trends among a specific audience. Multiple trend types are supported that can be used to identify newly-popular, evergreen or seasonal keywords.</p> <p>For an interactive way to explore this data, please visit <a href="https://trends.pinterest.com">trends.pinterest.com</a>.
{
"name": "trending_keywordslist",
"table_name": "trending_keywords_response",
"endpoint": {
"data_selector": "$",
"path": "/trends/keywords/{region}/top/{trend_type}",
"params": {
"region": "FILL_ME_IN", # TODO: fill in required path parameter
"trend_type": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "interests": "OPTIONAL_CONFIG",
# "genders": "OPTIONAL_CONFIG",
# "ages": "OPTIONAL_CONFIG",
# "include_keywords": "OPTIONAL_CONFIG",
# "normalize_against_group": "false",
# "limit": "50",
},
"paginator": "auto",
}
},
# Get all of the viewing user's business employers.
{
"name": "getbusiness_employers",
"table_name": "user_business_role_binding",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/employers",
"params": {
# the parameters below can optionally be configured
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# 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
{
"name": "getbusiness_members",
"table_name": "user_business_role_binding",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/members",
"params": {
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "assets_summary": "false",
# "business_roles": "OPTIONAL_CONFIG",
# "member_ids": "OPTIONAL_CONFIG",
# "start_index": "0",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get all partners of the specified business. If the assets_summary=TRUE and: - partner_type=INTERNAL, the business assets returned are your business assets the partner has access to. - partner_type=EXTERNAL, the business assets returned are your partner's business assets the partner has granted you access to.
{
"name": "getbusiness_partners",
"table_name": "user_business_role_binding",
"primary_key": "id",
"write_disposition": "merge",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/partners",
"params": {
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "assets_summary": "false",
# "partner_type": "OPTIONAL_CONFIG",
# "partner_ids": "OPTIONAL_CONFIG",
# "start_index": "0",
# "page_size": "25",
# "bookmark": "OPTIONAL_CONFIG",
},
"paginator": "auto",
}
},
# Get all the members the requesting business has granted access to on the given asset.
{
"name": "business_asset_membersget",
"table_name": "user_single_asset_binding",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/assets/{asset_id}/members",
"params": {
"asset_id": {
"type": "resolve",
"resource": "business_assetsget",
"field": "asset_id",
},
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
# "start_index": "0",
},
"paginator": "auto",
}
},
# 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.
{
"name": "business_asset_partnersget",
"table_name": "user_single_asset_binding",
"endpoint": {
"data_selector": "items",
"path": "/businesses/{business_id}/assets/{asset_id}/partners",
"params": {
"asset_id": {
"type": "resolve",
"resource": "business_assetsget",
"field": "asset_id",
},
"business_id": "FILL_ME_IN", # TODO: fill in required path parameter
# the parameters below can optionally be configured
# "start_index": "0",
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get a list of your followers.
{
"name": "followerslist",
"table_name": "user_summary",
"endpoint": {
"data_selector": "items",
"path": "/user_account/followers",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get user websites, claimed or not
{
"name": "user_websitesget",
"table_name": "user_website_summary",
"endpoint": {
"data_selector": "items",
"path": "/user_account/websites",
"params": {
# the parameters below can optionally be configured
# "bookmark": "OPTIONAL_CONFIG",
# "page_size": "25",
},
"paginator": "auto",
}
},
# Get verification code for user to install on the website to claim it.
{
"name": "website_verificationget",
"table_name": "user_website_verification_code",
"endpoint": {
"data_selector": "$",
"path": "/user_account/websites/verification",
"paginator": "auto",
}
},
]
}
return rest_api_source(source_config)
2. Configuring your source and destination credentials
dlt-init-openapi
will try to detect which authentication mechanism (if any) is used by the API in question and add a placeholder in your secrets.toml
.
The dlt
cli will have created a .dlt
directory in your project folder. This directory contains a config.toml
file and a secrets.toml
file that you can use to configure your pipeline. The automatically created version of these files look like this:
generated config.toml
[runtime]
log_level="INFO"
[sources.pinterest]
# Base URL for the API
base_url = "https://api.pinterest.com/v5"
generated secrets.toml
[sources.pinterest]
# secrets for your pinterest source
# example_api_key = "example value"
2.1. Adjust the generated code to your usecase
At this time, the dlt-init-openapi
cli tool will always create pipelines that load to a local duckdb
instance. Switching to a different destination is trivial, all you need to do is change the destination
parameter in pinterest_pipeline.py
to filesystem and supply the credentials as outlined in the destination doc linked below.
The default filesystem destination is configured to connect to AWS S3. To load to Azure Cloud Storage, update the [destination.filesystem.credentials]
section in your secrets.toml
.
[destination.filesystem.credentials]
azure_storage_account_name="Please set me up!"
azure_storage_account_key="Please set me up!"
By default, the filesystem destination will store your files as JSONL
. You can tell your pipeline to choose a different format with the loader_file_format
property that you can set directly on the pipeline or via your config.toml
. Available values are jsonl
, parquet
and csv
:
[pipeline] # in ./dlt/config.toml
loader_file_format="parquet"
3. Running your pipeline for the first time
The dlt
cli has also created a main pipeline script for you at pinterest_pipeline.py
, as well as a folder pinterest
that contains additional python files for your source. These files are your local copies which you can modify to fit your needs. In some cases you may find that you only need to do small changes to your pipelines or add some configurations, in other cases these files can serve as a working starting point for your code, but will need to be adjusted to do what you need them to do.
The main pipeline script will look something like this:
import dlt
from pinterest import pinterest_source
if __name__ == "__main__":
pipeline = dlt.pipeline(
pipeline_name="pinterest_pipeline",
destination='duckdb',
dataset_name="pinterest_data",
progress="log",
export_schema_path="schemas/export"
)
source = pinterest_source()
info = pipeline.run(source)
print(info)
Provided you have set up your credentials, you can run your pipeline like a regular python script with the following command:
python pinterest_pipeline.py
4. Inspecting your load result
You can now inspect the state of your pipeline with the dlt
cli:
dlt pipeline pinterest_pipeline info
You can also use streamlit to inspect the contents of your Azure Cloud Storage
destination for this:
# install streamlit
pip install streamlit
# run the streamlit app for your pipeline with the dlt cli:
dlt pipeline pinterest_pipeline show
5. Next steps to get your pipeline running in production
One of the beauties of dlt
is, that we are just a plain Python library, so you can run your pipeline in any environment that supports Python >= 3.8. We have a couple of helpers and guides in our docs to get you there:
The Deploy section will show you how to deploy your pipeline to
- Deploy with GitHub Actions: Learn how to deploy a pipeline using GitHub Actions, a CI/CD runner that you can use for free. Follow the guide here.
- Deploy with Airflow and Google Composer: Discover how to deploy a pipeline using Airflow and Google Composer, a managed Airflow environment provided by Google. Follow the guide here.
- Deploy with Google Cloud Functions: Find out how to deploy a pipeline using Google Cloud Functions, a serverless execution environment for building and connecting cloud services. Follow the guide here.
- Explore other deployment options: Check out other guides and resources for deploying pipelines with
dlt
here.
The running in production section will teach you about:
- How to Monitor your pipeline: Learn how to effectively monitor your
dlt
pipeline to ensure smooth operation and identify issues promptly. Read more - Set up alerts: Configure alerts to get notified about important events and issues in your
dlt
pipeline, helping you to react quickly and maintain pipeline health. Read more - Set up tracing: Implement tracing in your
dlt
pipeline to gain insights into the data flow and performance, making it easier to debug and optimize. Read more
Available Sources and Resources
For this verified source the following sources and resources are available
Source Pinterest
Pinterest source for accessing business, marketing, and user engagement data.
Resource Name | Write Disposition | Description |
---|---|---|
catalog_product_group | append | Groups of products in the catalog. |
catalogs_items_batch | append | Batch of items in the catalog. |
user_business_role_binding | append | Bindings of user roles to businesses. |
ad_accounts_country_response_data | append | Response data for ad accounts by country. |
catalogs_report | append | Reports for catalogs. |
ad_response | append | Responses for ads. |
billing_profiles_response | append | Responses for billing profiles. |
user_single_asset_binding | append | Bindings of single assets to users. |
customer_list | append | List of customers. |
catalogs_vertical_product_group | append | Vertical groups of products in the catalog. |
ssio_insertion_order_status_response | append | Responses for insertion order statuses in SSIO. |
ssio_account_item | append | Items in SSIO accounts. |
top_pin | append | Top pins on Pinterest. |
suggested | append | Suggested content on Pinterest. |
trending_keywords_response | append | Responses for trending keywords. |
user_website_verification_code | append | Verification codes for user websites. |
bulk_pin_analytics_response | append | Bulk analytics responses for pins. |
get_partner_assets_response | append | Responses for partner assets. |
audience_definition | append | Definitions of audiences. |
lead_form_response | append | Responses for lead forms. |
pin_analytics_response | append | Analytics responses for pins. |
targeting_analytic | append | Analytics for targeting. |
catalogs_report_stats | append | Statistics for catalogs reports. |
catalog | append | Catalog of products. |
audience | append | Definitions of audiences. |
ad_group_response | append | Responses for ad groups. |
invite_response | append | Responses for invitations. |
get_mmm_report_response | append | Responses for MMM reports. |
keyword_metrics_response | append | Metrics responses for keywords. |
analytic | append | General analytics data. |
ads_credit_discounts_response | append | Responses for ad credit discounts. |
catalogs_feed | append | Feeds for catalogs. |
catalogs_feed_processing_result | append | Processing results for catalogs feeds. |
conversion_event_response | append | Responses for conversion events. |
account | append | Account details. |
media_upload_details | append | Details for media uploads. |
summary_pin | append | Summary of pins. |
targeting | append | Targeting data. |
single_interest_targeting_option_response | append | Responses for single interest targeting options. |
template_response | append | Responses for templates. |
board | append | Boards on Pinterest. |
product_group_promotion_response | append | Responses for product group promotions. |
item_response | append | Responses for items. |
catalogs_item_validation_issues | append | Validation issues for catalog items. |
top_video_pin | append | Top video pins on Pinterest. |
interest | append | Interests on Pinterest. |
campaign_response | append | Responses for campaigns. |
catalogs_product_group_product_counts | append | Product counts for catalog product groups. |
integration_record | append | Records of integrations. |
asset_id_permissions | append | Permissions for asset IDs. |
order_line | append | Order line details. |
ad_account | append | Details for ad accounts. |
related | append | Related content on Pinterest. |
bulk_upsert_status_response | append | Status responses for bulk upserts. |
audience_category | append | Categories of audiences. |
get_business_assets_response | append | Responses for business assets. |
paginated | append | Paginated data. |
linked_business | append | Linked businesses. |
product_group_promotion_response_item | append | Response items for product group promotions. |
lead_form_question | append | Questions in lead forms. |
book_closed_response | append | Responses for closed books. |
conversion_tag_response | append | Responses for conversion tags. |
targeting_template_response_data | append | Response data for targeting templates. |
user_summary | append | Summary of user data. |
ad_account_get_subscription_response | append | Subscription responses for ad accounts. |
conversion_tags_ocpm_eligible_response | append | Responses for OCPM eligible conversion tags. |
analytics_response | append | General analytics responses. |
integration_metadata | append | Metadata for integrations. |
delivery_metric | append | Metrics for delivery. |
ads_analytics_get_async_response | append | Asynchronous analytics responses for ads. |
terms_of_service | append | Terms of service details. |
keyword | append | Keywords on Pinterest. |
pin | append | Pins on Pinterest. |
user_website_summary | append | Summary of user websites. |
Additional pipeline guides
- Load data from Sentry to DuckDB in python with dlt
- Load data from Mux to Timescale in python with dlt
- Load data from Notion to The Local Filesystem in python with dlt
- Load data from Trello to Redshift in python with dlt
- Load data from AWS S3 to ClickHouse in python with dlt
- Load data from HubSpot to Dremio in python with dlt
- Load data from AWS S3 to Snowflake in python with dlt
- Load data from Chess.com to The Local Filesystem in python with dlt
- Load data from GitHub to YugabyteDB in python with dlt
- Load data from Pipedrive to Dremio in python with dlt