403 Forbidden errors at runtime.
Scopes are granted at app creation time and cannot be widened afterwards. If your app is missing a scope, you need to create a new app with the correct scope set and obtain consent again.
Available scopes
| Scope | What it covers |
|---|---|
RetailMedia_Accounts_Read | Read access to accounts, brands, sellers, and fees |
RetailMedia_Accounts_Manage | Create and manage accounts, brands, sellers, fees, and consent |
RetailMedia_Campaign_Read | Read access to campaigns, line items, creatives, products, keywords, and catalog data |
RetailMedia_Campaign_Manage | Create and manage campaigns, line items, creatives, products, keywords, and catalog exports |
RetailMedia_Analytics_Read | Read access to performance, revenue, attribution, and reporting endpoints |
RetailMedia_Audience_Read | Read access to audience segments and contact lists |
RetailMedia_Audience_Manage | Create and manage audience segments and contact lists |
RetailMedia_Balance_Read | Read access to balances and balance history |
RetailMedia_Balance_Manage | Create and manage balances, add funds, and change balance dates |
RetailMedia_Billing_Read | Read access to billing and partner reports |
RetailMedia_Catalog_Manage | Create and manage store inventory in the product catalog |
Endpoint scope requirements
Accounts
| Method | Endpoint | Required scope |
|---|---|---|
POST | /2026-07/retail-media/account-management/accounts/{accountId}/brands/add | RetailMedia_Accounts_Manage |
POST | /2026-07/retail-media/account-management/accounts/{accountId}/brands/remove | RetailMedia_Accounts_Manage |
POST | /2026-07/retail-media/account-management/accounts/{accountId}/create-brand-account | RetailMedia_Accounts_Manage |
POST | /2026-07/retail-media/account-management/accounts/{accountId}/create-seller-account | RetailMedia_Accounts_Manage |
GET | /2026-07/retail-media/account-management/accounts/{accountId}/private-market-child-accounts | RetailMedia_Accounts_Read |
PUT | /2026-07/retail-media/account-management/accounts/{accountId}/sellers | RetailMedia_Accounts_Manage |
GET | /2026-07/retail-media/accounts | RetailMedia_Accounts_Read |
POST | /2026-07/retail-media/accounts/fees/search | RetailMedia_Accounts_Read |
POST | /2026-07/retail-media/accounts/fees/update | RetailMedia_Accounts_Manage |
POST | /2026-07/retail-media/accounts/sellers/search | RetailMedia_Accounts_Read |
POST | /2026-07/retail-media/accounts/{accountId}/grant-consent | RetailMedia_Accounts_Manage |
POST | /2026-07/retail-media/brands/search | RetailMedia_Accounts_Read |
Analytics
| Method | Endpoint | Required scope |
|---|---|---|
POST | /2026-07/retail-media/reports/accounts | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/attributed-transactions | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/campaigns | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/fillrate | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/line-items | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/missed-opportunities | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/performance | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/revenue | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/sync/attributed-transactions | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/sync/campaigns | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/sync/line-items | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/sync/real-time-performance | RetailMedia_Analytics_Read |
POST | /2026-07/retail-media/reports/unfilled-placements | RetailMedia_Analytics_Read |
GET | /2026-07/retail-media/reports/{reportId}/output | RetailMedia_Analytics_Read |
GET | /2026-07/retail-media/reports/{reportId}/status | RetailMedia_Analytics_Read |
Audience
| Method | Endpoint | Required scope |
|---|---|---|
PATCH | /2026-07/retail-media/accounts/{accountId}/audience-segments | RetailMedia_Audience_Manage |
POST | /2026-07/retail-media/accounts/{accountId}/audience-segments/create | RetailMedia_Audience_Manage |
POST | /2026-07/retail-media/accounts/{accountId}/audience-segments/delete | RetailMedia_Audience_Manage |
POST | /2026-07/retail-media/accounts/{accountId}/audience-segments/search | RetailMedia_Audience_Read |
GET | /2026-07/retail-media/accounts/{accountId}/audience-segments/{audienceSegmentId}/contact-list | RetailMedia_Audience_Read |
POST | /2026-07/retail-media/accounts/{accountId}/audiences/search | RetailMedia_Audience_Read |
POST | /2026-07/retail-media/audience-segments/{audienceSegmentId}/contact-list/add-remove | RetailMedia_Audience_Manage |
POST | /2026-07/retail-media/audience-segments/{audienceSegmentId}/contact-list/clear | RetailMedia_Audience_Manage |
Balance
| Method | Endpoint | Required scope |
|---|---|---|
POST | /2026-07/retail-media/accounts/{accountId}/balances | RetailMedia_Balance_Manage |
GET | /2026-07/retail-media/accounts/{accountId}/balances/{balanceId} | RetailMedia_Balance_Read |
PATCH | /2026-07/retail-media/accounts/{accountId}/balances/{balanceId} | RetailMedia_Balance_Manage |
POST | /2026-07/retail-media/accounts/{accountId}/balances/{balanceId}/add-funds | RetailMedia_Balance_Manage |
POST | /2026-07/retail-media/accounts/{accountId}/balances/{balanceId}/change-dates | RetailMedia_Balance_Manage |
GET | /2026-07/retail-media/accounts/{accountId}/balances | RetailMedia_Balance_Read |
GET | /2026-07/retail-media/balances/{balanceId}/campaigns | RetailMedia_Balance_Read |
GET | /2026-07/retail-media/balances/{balanceId} | RetailMedia_Balance_Read |
GET | /2026-07/retail-media/balances/{balanceId}/history | RetailMedia_Balance_Read |
Billing
| Method | Endpoint | Required scope |
|---|---|---|
POST | /2026-07/retail-media/billing/partner-report | RetailMedia_Billing_Read |
GET | /2026-07/retail-media/billing/partner-report/{requestId}/output | RetailMedia_Billing_Read |
GET | /2026-07/retail-media/billing/partner-report/{requestId}/status | RetailMedia_Billing_Read |
Campaign
| Method | Endpoint | Required scope |
|---|---|---|
GET | /2026-07/retail-media/accounts/{accountId}/campaigns | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/campaigns | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/accounts/{accountId}/creatives | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/creatives | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/accounts/{accountId}/creatives/search | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/accounts/{accountId}/creatives/{creativeId} | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/accounts/{accountId}/creatives/{creativeId} | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/accounts/{accountId}/keywords/in-review-report | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/accounts/{accountId}/line-items | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/brand-catalog-export | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/accounts/{accountId}/brands | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/catalogs | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/catalogs/sellers | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/retailers/search | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/accounts/{accountId}/seller-catalog-export | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/assets | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/auction-line-items/{lineItemId} | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/auction-line-items/{lineItemId} | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/balances/{balanceId}/campaigns/append | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/balances/{balanceId}/campaigns/delete | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/campaigns/{campaignId}/preferred-line-items | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/campaigns/{campaignId}/preferred-line-items | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/campaigns/{campaignId} | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/campaigns/{campaignId} | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/campaigns/{campaignId}/auction-line-items | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/campaigns/{campaignId}/auction-line-items | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/campaigns/{campaignId}/campaign-budget-overrides | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/campaigns/{campaignId}/campaign-budget-overrides | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/catalogs/{catalogId}/output | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/catalogs/{catalogId}/status | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/categories | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/categories/{categoryId} | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/line-items/{externalLineItemId}/keywords/recommended | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/line-items/{id}/keywords | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/line-items/{id}/keywords/add-remove | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/line-items/{id}/keywords/set-bid | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/line-items/{lineItemId} | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/line-items/{lineItemId}/bid-multipliers | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/line-items/{lineItemId}/bid-multipliers | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/line-items/{lineItemId}/keywords/review | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/line-items/{lineItemId}/products | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/line-items/{lineItemId}/products/append | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/line-items/{lineItemId}/products/delete | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/line-items/{lineItemId}/products/pause | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/line-items/{lineItemId}/products/unpause | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/line-items/{lineItemId}/line-item-budget-overrides | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/line-items/{lineItemId}/line-item-budget-overrides | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/preferred-line-items/{lineItemId} | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/preferred-line-items/{lineItemId} | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/add-to-basket | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/add-to-basket | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/add-to-basket/append | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/add-to-basket/delete | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/audiences | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/audiences | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/audiences/append | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/audiences/delete | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/stores | RetailMedia_Campaign_Read |
PUT | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/stores | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/stores/append | RetailMedia_Campaign_Manage |
POST | /2026-07/retail-media/preferred-line-items/{lineItemId}/targeting/stores/delete | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/retailers/{retailerId}/templates | RetailMedia_Campaign_Read |
GET | /2026-07/retail-media/retailers/{retailerId}/templates/{templateId} | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/retailers/{retailerId}/categories/search | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/retailers/{retailerId}/cpc-min-bids | RetailMedia_Campaign_Manage |
GET | /2026-07/retail-media/retailers/{retailerId}/pages | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/retailers/{retailerId}/recommend-categories | RetailMedia_Campaign_Read |
POST | /2026-07/retail-media/retailers/{retailerId}/recommend-keywords | RetailMedia_Campaign_Read |
Catalog
| Method | Endpoint | Required scope |
|---|---|---|
POST | /2026-07/retail-media/catalog/merchants/{merchantId}/store-inventory/delete | RetailMedia_Catalog_Manage |
POST | /2026-07/retail-media/catalog/merchants/{merchantId}/store-inventory/upsert | RetailMedia_Catalog_Manage |
Gateway
| Method | Endpoint | Required scope |
|---|---|---|
GET | /2026-07/retail-media/me | (none) |