Marketing API Version

Product Catalog Product Feed

Products feeds associated with a catalog. See Dynamic Ads, Catalog Setup. For example, get a list of all product feeds:

curl -G \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<PRODUCT_CATALOG_ID>/product_feeds

Or get a list of product items in a product feed:

curl -G \
-d "access_token=<ACCESS_TOKEN>" \
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>/products

Reading

Product feeds belonging to a catalog.

Graph API Explorer
GET /v2.10/{product-catalog-id}/product_feeds HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
$request = new FacebookRequest(
  $session,
  'GET',
  '/{product-catalog-id}/product_feeds'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
/* make the API call */
FB.api(
    "/{product-catalog-id}/product_feeds",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{product-catalog-id}/product_feeds",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
// For more complex open graph stories, use `FBSDKShareAPI`
// with `FBSDKShareOpenGraphContent`
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{product-catalog-id}/product_feeds"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Permissions

Developers usually request these permissions for this endpoint:

Marketing Apps
  • ads_management
Page management Apps
No data
Other Apps
No data

Parameters

This endpoint doesn't have any parameters.

Fields

Reading from this edge will return a JSON formatted result:

{ "data": [], "paging": {} }

data

A list of ProductFeed nodes.

paging

For more details about pagination, see the Graph API guide.

Validation Rules

ErrorDescription
100Invalid parameter
200Permissions error

Creating

You can make a POST request to product_feeds edge from the following paths:
When posting to this edge, a ProductFeed will be created.

Permissions

Developers usually request these permissions for this endpoint:

Marketing Apps
  • ads_management
Page management Apps
No data
Other Apps
No data

Parameters

NameDescription
country
ISO 3166 Alpha Country Code
Default value: US

Two letter country code where the products can be sold

default_currency
ISO 4217 Currency Code
Default value: USD

The default currency used by provided feed if the currency is not specified in the feed file.

deletion_enabled
boolean
Default value: true

Default value: false (to be changed to true .from API v2.5)
When true, this will remove products from a catalog that are no longer present in a feed. When false, uploading a product feed is additive and products will remain in the catalog even if they are removed from a feed. Once enabled, we do not allow this field to be disabled.

delimiter
enum {AUTODETECT, BAR, COMMA, TAB, TILDE, SEMICOLON}
Default value: AUTODETECT

Product feed delimiter

encoding
enum {AUTODETECT, LATIN1, UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE}
Default value: AUTODETECT

The character encoding used by provided feed

file_name
UTF-8 encoded string

The name of the product feed. .tsv, .xml or compressed files (zip, gzip and bz2) are supported.

name
UTF-8 encoded string

User specified name for the feed

quoted_fields_mode
enum{autodetect, on, off}
Default value: autodetect

Whether or not there will be quotes around each field, only for TSV feeds. If this field is provided, we use it instead of the parameter quoted_fields.

schedule
JSON-encoded string

A JSON-encoded string representing a recurrent schedule for fetching the feed. Default timezone is America/Los_Angeles. Learn more about feed schedules

update_schedule
JSON-encoded string

The configuration for fetching updates to a feed in a recurrent manner. The uploads would only update the items in the feed or create new ones. No items would be deleted. This is useful for sending price and availability updates for selected items in the feed. Learn more about fields in a feed schedule

Return Type

This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
}

Validation Rules

ErrorDescription
100Invalid parameter
200Permissions error
275Cannot determine the target object for this request. Currently supported objects include ad account, business account and associated objects.

Updating

You can't perform this operation on this endpoint.

Deleting

You can't perform this operation on this endpoint.