Add a data source
1. Go to Catalogs (catalogs.pinterest.com)
2. Click Get Started
3. Click Add data source
- Make sure you have appropriately prepared your data source before ingestion
- You must have a claimed domain to add a data source
4. Input your data source URL
- A data source URL is a link to the location from where Pinterest will be able to fetch your data source
- This URL must begin with http://, https://, ftp://, or sftp://, and include the full filepath, and no credentials in the URL)
- We don't accept compressed files at this time
5. Select the file format (CSV, TSV, or XML)
6. Select “My data source is password-protected” if your data source requires credentials
- If necessary, input your credentials
7. Click Create Pins
After you click Create Pins, you'll land back at the main Data Source page. Your feed is being processed - wait for a confirmation email from Pinterest for the status of your data source submission.
More about data sources
- Update daily. We ingest your data source once every 24 hours. Make your updated full data source available daily to keep your product details up-to-date. We don't support scheduling or on-demand ingestion.
- Host your data source. Host your own data source on an FTP/SFTP server or with an HTTP/HTTPS direct-download link. This needs to be accessible by a user-agent, and can't require IP or SSH key whitelisting. If you're using a direct download link, there can't be any extra navigation required for Pinterest to access the file. We don't provide data source hosting.
- Max 5 million products. We can process up to 5 million products per account. If your data source has more than 5 million products, we'll process the first 5 million rows.
- One data source per business account.
Data source error messages
We use unique messages to let you know if something went wrong with product Pin creation or if we have a recommendation for you. There are three different message types you can expect.
- File-level error: Your entire data source may fail ingestion if your data source fails any file-level errors listed below.
- Product-level error: If your product has failing errors, it will not be able to create product Pins.
- Product-level alert: Products with alerts will still create product Pins, but you are recommended to adjust the product data to avoid warnings.
Your entire data source may fail ingestion if your data source fails any file-level errors listed below. If your product has failing errors, it will not be able to create product Pins. Products with alerts will still create product Pins, but you are recommended to adjust the product data to avoid warnings.
Look for the error message below for tips on how to update your data source.
|Error Code||Error Message||Error Type||What to do|
|100||We could not access your feed file. Please check that the URL and credentials are correct and that the feed exists in the provided location.||File-level failure||Review your data source credentials and filepath.
Ensure that your file name hasn’t changed on the location (for ftp/sftp).
Ensure that your hosting location isn’t timing out.
Ensure that you did not include the username/password in the file URL.
|101||The feed provided is using an encoding that is not supported. Acceptable encodings are UTF-8 or Latin1.||File-level failure||Re-encode your file to UTF-8 or Latin1.|
|102||The feed provided includes inadmissible delimiters. Ensure that your feed is either tab or comma delimited. Check to ensure there are no additional or missing delimiter in each row.||File-level failure||Make sure your file is delimited in either comma (double quote-wrapping recommended) or tab. Check to ensure there are no additional or missing delimiters in each row.|
|103||The feed provided is missing some required column headers.||File-level failure||Make sure you are sending all required column headers. Review the required data source specifications.|
|104||The image link does not begin with http or https.||Row-level failure||Make sure your image link begins with http:// or https:// and is a valid URL.|
|105||Item ID is missing from product metadata||Row-level failure||ID is a required field. Make sure you are sending item ID for all rows in your data source. Remove any items with no IDs.|
|106||Title is missing from product metadata.||Row-level failure||Title is a required field. Make sure you are sending a product title for all rows in your data source. Remove any items with no titles.|
|107||Description is missing from product metadata.||Row-level failure||Description is a required field. Make sure you are sending a description for all rows in your data source. Remove any items with no description.|
|108||Google Product Category is missing from product metadata. We accept the US Google Product Category taxonomy.||Row-level failure||Send google_product_category following the right taxonomy. We currently only accept the US-EN taxonomy.|
|109||Google Product Category is invalid. Google Product Category must follow the correct US Google Product Category taxonomy.||Row-level failure||Make sure you are following the correct taxonomy. We currently only accept the US-EN taxonomy.|
|110||Link is missing from product metadata.||Row-level failure||Link is a required field. Make sure you are sending a product landing page.|
|111||Image_link is missing from product metadata.||Row-level failure||Image_link is a required field. Make sure you are sending an image link for your product.|
|112||Availability is missing from product metadata. Possible values should be one of in stock, out of stock or preorder.||Row-level failure||Availability is a required field. Make sure you are sending either: “in stock”, “out of stock” or “preorder”.|
|113||The Price field is malformed. Check that you are correctly sending a price of the form: <number> <currency>. Examples of valid prices include '1.00USD' and '1.00 USD'.||Row-level failure||The price field must be formatted as “number” “currency”. E.g. 1.00 USD, 1 USD, or 1.00USD.|
|114||Title length is over 128 characters. we only use the first 128 characters. Reduce the Title length to under 128 characters.||Row-level warning||We truncate title if it is longer than 128 characters. To ensure your title does not get trimmed, send product titles that are less than 128 characters.|
|115||Description length is over 500 characters. We only use the first 500 characters. Reduce the Description length to under 500 characters.||Row-level warning||We truncate description if it is longer than 500 characters. To ensure your product description does not get trimmed, send descriptions that are less than 500 characters.|
|116||The Condition of the item is missing or the value provided is not an accepted one. Please specify whether the item is new, used or refurbished.||Row-level warning||The accepted condition values for your product are: “new”, “used”, or “refurbished”. Ensure you are not sending any other values for the condition column.|
|117||Gender value is not readable by our systems. specify Gender as: male, female or unisex.||Row-level warning||Gender must be one of the following: “male”, “female”, “unisex”. Any other strings will be stripped from your product data and will impact relevancy for your product.|
|118||The Age_Group value is not readable by our systems. Specify Age_Group as: newborn, infant, toddler, kids or adult.||Row-level warning||The age_group must be one of the following: “newborn”, “infant”, “toddler”, “kids”, “adult”. Any other strings will be stripped from your product data and will impact relevancy for your product.|
|119||The Size_Type value is not readable by our systems. Specify Size_Type as: regular, petite, plus, big_and_tall, or maternity.||Row-level warning||The size_type must be one of the following: “regular”, “petite”, “plus”, “big_and_tall”, “maternity”. Any other strings will be stripped from your product data and will impact relevancy for your product.|
|120||Line failed to parse. Ensure your delimiter for this line is correct. Any missing/extra delimiters will fail parsing.||Row-level failure||Make sure you don’t have any missing or extra delimiters for this row.|
|121||Link may contain UTM parameters. Make sure the UTM parameters you are sending is set up for Pinterest.||Row-level warning||Review that the UTM parameters are following our tracking guidelines and set up specifically for Pinterest.|
|122||Link is invalid. Make sure it begins with http or https.||Row-level failure||Make sure your link begins with http:// or https:// and is a valid URL.|
|123||Duplicate products occur.||Row-level warning||The current row has a warning because the data source already contains an item with the exact same product ID. Do not send duplicates of your product.|
|125||Sale price is improperly formatted or the sale price provided is higher than the original price of the item. Sale price must be lower than the original Price.||Row-level warning||The sale price field must be formatted as “number” “currency”. E.g. 1.00 USD, 1 USD, or 1.00USD. Sale price cannot be higher or the same as the price column.|
|126||Google Product Category is only 1 or 2 levels deep for this product, when additional level of specificity is available.||Row-level warning||We recommend sending the full specific Google product category as relevant. More granular categories will help us better understand the product.|
|127||Your Adwords_redirect column contains the same URL as the Link column. Confirm that the Adwords_Redirect column is sending the right tracking parameters. Link column should send the organic links only, if you are sending tracking in Adwords_redirect.||Row-level warning||Confirm that the adwords_redirect column is sending the right tracking parameters for Pinterest. We recommend sending organic links in the link column, and any URLs with tracking in adwords_redirect.|
|129||Feed provided contains duplicate headers. Remove duplicate headers and send unique columns only.||File-level warning||Your data source contains duplicate column names. Remove duplicate columns and send unique columns only. We will only accept the first column of the duplicate column if duplicates occur.|
|130||The Tax value is not readable by our systems. We accept 4 sub-attributes: country:region:rate(required):tax_ship. All colons are required, even for blank values.||Row-level warning||Make sure your tax column is following the correct setup. All colons are required, even for blank attributes e.g. US::0.13:|
|131||The shipping value you have provided is not readable by our system. We accept 4 sub-attributes: country:region:service:price. All colons are required, even for blank attributes.||Row-level warning||Make sure your shipping column is following the correct setup. All colons are required, even for blank attributes e.g. US:::0.00|
|132||The shipping weight value you have provided is not readable by our system.||Row-level warning||The current line failed validation because the shipping weight field is not of the form: "3kg" or "3 kg". The string must first contain a numeric value then a valid weight unit type (one of "lb", "oz", or "kg").|
|133||The multipack value you have provided is not readable by our system.||Row-level warning||Multipack value must be numeric. Any other strings will be stripped from your product data.|
|134||The Adwords_Redirect link does not begin with http or https.||Row-level failure||Make sure your adwords_redirect link begins with http:// or https:// and is a valid URL.|
|135||The Adwords_redirect link is malformed. Check that it is a valid url.||Row-level failure||Make sure your adwords_redirect link is shorter than 511 characters and is a valid URL.|
|137||One or more additional image links do not begin with http or https or are malformed. We have stripped them from your product.||Row-level warning||We will strip any additional_image_links that are not formatted correctly. Ensure these are valid URLs.|
|138||Your feed file is over 5 million lines. We currently only accept feed files that are less than 5 million lines and will only ingest the first 5 million lines of your feed.||File-level warning||We only accept 5 million rows at this time. Only the first 5 million products will be processed. Any additional products will be ignored. Send less than 5 million products to ensure all the products you want to get processed are accepted.|
|139||The domain of your product link does not match the verified domain associated with your account. Please verify that it is correct.||File-level failure||Your link URLs must match the verified domain for your account. Make sure you are not sending any redirects or other domains in the link column of your data source.|
|140||This account currently does not have a verified merchant domain. Please claim your merchant domain in order to ingest the feed.||File-level failure||You must have a verified domain in order to ingest your data source. Verify your domain and try again.|
|141||The Adult value you have provided is not readable by our systems. Please specify adult as true, false, yes or no for all affected items.||Row-level failure||If you are sending “adult” column and have a value for the column, make sure it is either: true, false, yes, or no.|
|1001||The image has failed to download. Send valid image links||Row-level failure||Make sure your image link is a link to an image file and can be downloaded by a user-agent.|
|1007||The image format cannot be recognized. Check that it is a valid image.||Row-level failure||Send valid image URLs with image files in the destination.|
What's the next step?
Was your data source ingested successfully? It may take a day or so to find out.