Enable the Merchant API in your Google Cloud project and authorize with OAuth 2.0 using the https://www.googleapis.com/auth/content scope; Merchant API v1 is GA as of summer 2025.
Retrieve your primary dataSource ID: GET https://merchantapi.googleapis.com/products/v1/accounts/{merchantId}/dataSources — look for the dataSource with type 'PRIMARY' and note its name (in the format accounts/{id}/dataSources/{dataSourceId}).
Build a productInput object with at minimum: offerId (your unique product ID), title, description, link, imageLink, availability ('in_stock', 'out_of_stock', 'preorder'), price {amountMicros, currencyCode}, condition, and a Google product category string.
Insert the product: POST https://merchantapi.googleapis.com/products/v1/{parent=accounts/*/dataSources/*}/productInputs:insert?dataSource={dataSourceName} with the productInput body.
Check processing status: GET https://merchantapi.googleapis.com/products/v1/accounts/{merchantId}/products/{productId} — the productStatus.destinationStatuses array shows whether the product is approved for Shopping ads and free listings.
For bulk inserts, use the productInputs.insert endpoint in a loop or batch wrapper; Google Merchant API does not have a dedicated batch endpoint analogous to Content API's custombatch — rely on concurrent API calls with appropriate rate-limit handling.
Known gotchas
The resource identifier scheme in Merchant API v1 is different from Content API — the offerId is now part of a structured productId path; store the full resource name returned on insert for future updates and deletes.
Feed labels from Content API feeds do not automatically carry over to Merchant API dataSources — re-create them as separate dataSources and re-link any Shopping or Performance Max campaigns before cutting over to avoid serving gaps.
Merchant API v1beta was shut down on February 28, 2026; any integration built against the beta must be on v1 GA now — update base URLs from /v1beta/ to /v1/.
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