curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_CATALOG_ID>/product_feeds
| Attribute | Type | Required | Description |
|---|---|---|---|
name | string | Required | |
schedule | Required | The configuration for fetching a feed in a recurrent manner. See schedule object below for more details. | |
update_only | bool | Optional | Default: falseNote, if value is set to false, the feed is treated as a replace feed. That means with every new incoming update, if we do not find the set of items created previously, they will be deleted.
When set to true, we create new items and update existing ones, but don’t delete items from the feed. You only need to provide ID to update existing items. This reduces time to fetch and process your file. |
ingestion_source_type | enum {PRIMARY_FEED, SUPPLEMENTARY_FEED} | Optional (Required for Supplementary Feeds) | See Product Feed documentation. |
primary_feed_ids | list <numeric string> | Optional (Required for Supplementary Feeds) | See Product Feed documentation. |
schedule object| Attribute | Type | Required | Description |
|---|---|---|---|
url | string | Required | The location of the product feed to fetch. |
interval | string | Required | The interval at which the product feed gets fetched. |
hour | number | Optional | Hour of the day to fetch the product feed. |
{ "id": {PRODUCT_FEED_ID} }
curl -X POST \
-F 'url="<URL>"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_FEED_ID>/uploads
curl -X POST \
-F 'file=@catalog.csv;type=text/csv' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_FEED_ID>/uploads
update_only to true. We create new items and update existing ones, but don’t delete items from the feed. You only need to provide id to update existing items. This reduces time to fetch and process your file.id, price and custom_label_0 for those items and update_only set to true. We support all listed file formats; the most common ones are TSV and CSV. See Supported Feed Formats for more information.HTTP authentication, you have the option to send both username and password.| Feed Format | Use Case | Sample Feed |
|---|---|---|
CSV | Update price and availability for a subset of items. | |
TSV | Reset sale_price and update custom_label_0 for a subset of items |
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PRODUCT_FEED_ID>/uploads
{ "data": [ { "id": "{UPLOAD_SESSION_ID}}", "start_time": "2019-07-15T12:38:36+0000", "end_time": "2019-07-15T12:38:47+0000" } ] }
id field to retrieve a sampling of errors and warnings.curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<UPLOAD_SESSION_ID>/errors
fatal severity here means the item cannot be ingested by Meta; a warning severity means the recommended attributes are missing or malformed. In the case of a warning, we will omit the problematic field and proceed with mutating the other fields.{ "data": [ { "id": 1510567479166488, "summary": "A required field is missing: price.", "description": "Products need to have prices to run in ads. Include a price for each product in your data feed file and upload it again. Prices must include cost and an ISO currency code (for example: 10 USD instead of $10 for American dollars).", "severity": "fatal", "samples": { "data": [ { "row_number": 2, "retailer_id": "yj9bpbpub5t8t22kgbq6", "id": "1677559492523068" }, { "row_number": 5, "retailer_id": "ujn33tvbyv2vmdpo7ecb", "id": "1529743440653137" } ] } }, { "id": 275241589314958, "summary": "GTIN is incorrectly formatted", "description": "Check that the GTIN (Global Trade Identification Number) for each of your products is in the correct format. Accepted types include UPC, EAN, JAN, and ISBN.", "severity": "warning", "samples": { "data": [ { "row_number": 4, "retailer_id": "bxwb1pho9o43uxjxikcg", "id": "538700559625644" } ] } } ] }
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' https://graph.facebook.com/v25.0/<UPLOAD_SESSION_ID>/error_report
{ "success": true }
curl -X GET -G \
-d 'fields="error_report"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<UPLOAD_SESSION_ID>
{ "error_report": { "report_status": "WRITE_FINISHED", "file_handle": "{link-to-the-file-location}" }, "id": "493476498092860" }