Authenticate with a System User access token that has catalog_management permission; obtain the catalog_id from Business Manager
Use the Catalog Batch API by POSTing to https://graph.facebook.com/v19.0/{catalog_id}/items_batch with method set to CREATE, UPDATE, or DELETE and an array of requests each containing retailer_id and item fields (name, description, price, currency, image_url, url, availability, condition)
Monitor the batch job by issuing GET on the batch operation handle returned in the response to check completion status and per-item error details
For large catalogs, use a Product Feed instead: create a feed via POST /{catalog_id}/product_feeds with name and schedule, then upload a CSV/TSV/XML file or provide a hosted feed URL
Verify items are correctly ingested by querying GET /{catalog_id}/products with fields id, name, retailer_id, review_status to check for policy rejections
Set up a feed upload schedule so Meta automatically re-fetches the feed URL daily or hourly for ongoing sync without manual API calls
Known gotchas
Prices must be formatted as a string with currency code appended, e.g. '29.99 USD'; numeric-only price values are rejected
Items disapproved for policy violations (e.g. restricted categories, missing brand) will not appear in ads even if the API returns success; always check review_status
The Catalog Batch API has a limit on items per request; split large updates into multiple batch calls and handle rate limiting with exponential backoff on error code 17 or 32
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp