> ## Documentation Index
> Fetch the complete documentation index at: https://developers.criteo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# App Scopes

> OAuth scopes required per endpoint for the Retail Media API.

Retail Media API endpoints are protected by OAuth 2.0 scopes. Each endpoint requires one scope. Calling an endpoint without that scope results in `403 Forbidden` errors at runtime.

<Info>
  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.
</Info>

## 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 |
| `RetailMedia_Catalog_Read` | Read access to store inventory and catalog data |
| `RetailMedia_OnSiteRecommendation_Read` | Read access to on-site recommendation endpoints |
| `RetailMedia_ThirdPartyAccounts_Manage` | Create and manage third-party account integrations |

***

## Endpoint scope requirements

### Accounts

| Method | Endpoint | Required scope |
| - | - | - |
| `GET` | `/experimental/retail-media/account-management/accounts/{accountId}/private-market-child-accounts` | `RetailMedia_Accounts_Read` |
| `POST` | `/experimental/retail-media/brands/search` | `RetailMedia_Accounts_Read` |

### Analytics

| Method | Endpoint | Required scope |
| - | - | - |
| `POST` | `/experimental/retail-media/insights/digital-shelf-intelligence` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/insights/share-of-voice` | `RetailMedia_Analytics_Read` |
| `GET` | `/experimental/retail-media/insights/{insightId}/output` | `RetailMedia_Analytics_Read` |
| `GET` | `/experimental/retail-media/insights/{insightId}/status` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/accounts` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/campaigns` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/fillrate` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/line-items` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/offsite` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/sync/attributed-transactions` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/sync/campaigns` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/sync/line-items` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/sync/real-time-performance` | `RetailMedia_Analytics_Read` |
| `POST` | `/experimental/retail-media/reports/unfilled-placements` | `RetailMedia_Analytics_Read` |
| `GET` | `/experimental/retail-media/reports/{reportId}/output` | `RetailMedia_Analytics_Read` |
| `GET` | `/experimental/retail-media/reports/{reportId}/status` | `RetailMedia_Analytics_Read` |

### Audience

| Method | Endpoint | Required scope |
| - | - | - |
| `PATCH` | `/experimental/retail-media/accounts/{accountId}/audience-segments` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audience-segments/compute-sizes` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audience-segments/create` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audience-segments/delete` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audience-segments/estimate-size` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audience-segments/search` | `RetailMedia_Audience_Read` |
| `GET` | `/experimental/retail-media/accounts/{accountId}/audience-segments/{audienceSegmentId}/contact-list` | `RetailMedia_Audience_Read` |
| `PATCH` | `/experimental/retail-media/accounts/{accountId}/audiences` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audiences/compute-sizes` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audiences/create` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audiences/delete` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audiences/estimate-size` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/audiences/search` | `RetailMedia_Audience_Read` |
| `POST` | `/experimental/retail-media/audience-segments/{audienceSegmentId}/contact-list/add-remove` | `RetailMedia_Audience_Manage` |
| `POST` | `/experimental/retail-media/audience-segments/{audienceSegmentId}/contact-list/clear` | `RetailMedia_Audience_Manage` |

### Balance

| Method | Endpoint | Required scope |
| - | - | - |
| `PATCH` | `/experimental/retail-media/accounts/{accountId}/balances/{balanceId}` | `RetailMedia_Balance_Manage` |
| `GET` | `/experimental/retail-media/accounts/{accountId}/balances` | `RetailMedia_Balance_Read` |
| `GET` | `/experimental/retail-media/balances/{balanceId}` | `RetailMedia_Balance_Read` |
| `GET` | `/experimental/retail-media/balances/{balanceId}/history` | `RetailMedia_Balance_Read` |

### Campaign

| Method | Endpoint | Required scope |
| - | - | - |
| `POST` | `/experimental/retail-media/accounts/{accountId}/campaigns` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/creatives` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/creatives/search` | `RetailMedia_Campaign_Read` |
| `GET` | `/experimental/retail-media/accounts/{accountId}/creatives/{creativeId}` | `RetailMedia_Campaign_Read` |
| `PUT` | `/experimental/retail-media/accounts/{accountId}/creatives/{creativeId}` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/line-items/cap-out-history` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/accounts/{accountId}/retailers/search` | `RetailMedia_Campaign_Read` |
| `GET` | `/experimental/retail-media/auction-line-items/{lineItemId}` | `RetailMedia_Campaign_Read` |
| `PUT` | `/experimental/retail-media/auction-line-items/{lineItemId}` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/balances/{balanceId}/campaigns/append` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/balances/{balanceId}/campaigns/delete` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/campaigns/{campaignId}/preferred-line-items` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/campaigns/{campaignId}/preferred-line-items` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/campaigns/{campaignId}/auction-line-items` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/campaigns/{campaignId}/auction-line-items` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/catalogs/{catalogId}/status` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/line-items` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/line-items/demand-search` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/line-items/supply-search` | `RetailMedia_Campaign_Read` |
| `PATCH` | `/experimental/retail-media/line-items/{lineItemId}` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/line-items/{lineItemId}/bidding-strategy` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/creatives/upsert` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/line-items/{lineItemId}/product-buttons` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/product-buttons/create` | `RetailMedia_Campaign_Manage` |
| `DELETE` | `/experimental/retail-media/line-items/{lineItemId}/product-buttons/{productButtonId}` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/line-items/{lineItemId}/product-buttons/{productButtonId}` | `RetailMedia_Campaign_Read` |
| `PUT` | `/experimental/retail-media/line-items/{lineItemId}/product-buttons/{productButtonId}` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/line-items/{lineItemId}/products` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/products/add` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/products/append` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/products/delete` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/products/pause` | `RetailMedia_Campaign_Manage` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/products/unpause` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/line-items/{lineItemId}/targets` | `RetailMedia_Campaign_Read` |
| `POST` | `/experimental/retail-media/line-items/{lineItemId}/targets/create` | `RetailMedia_Campaign_Manage` |
| `GET` | `/experimental/retail-media/preferred-line-items/{lineItemId}` | `RetailMedia_Campaign_Read` |
| `PUT` | `/experimental/retail-media/preferred-line-items/{lineItemId}` | `RetailMedia_Campaign_Manage` |

### Catalog

| Method | Endpoint | Required scope |
| - | - | - |
| `POST` | `/experimental/retail-media/catalog/merchants/{merchantId}/store-inventory/delete` | `RetailMedia_Catalog_Manage` |
| `POST` | `/experimental/retail-media/catalog/merchants/{merchantId}/store-inventory/upsert` | `RetailMedia_Catalog_Manage` |
| `POST` | `/experimental/retail-media/catalog/products/batch` | `RetailMedia_Catalog_Manage` |
| `GET` | `/experimental/retail-media/catalog/products/batch/report/{operationToken}` | `RetailMedia_Catalog_Read` |
| `POST` | `/experimental/retail-media/retailers/{retailerId}/offers/update` | `RetailMedia_Catalog_Manage` |
| `POST` | `/experimental/retail-media/retailers/{retailerId}/products/set-buy-box-winners` | `RetailMedia_Catalog_Manage` |

### Gateway

| Method | Endpoint | Required scope |
| - | - | - |
| `GET` | `/experimental/retail-media/me` | `(none)` |

### OnSiteRecommendation

| Method | Endpoint | Required scope |
| - | - | - |
| `POST` | `/experimental/retail-media/chatbot-catalogs/{catalogid}/product-recommendations` | `RetailMedia_OnSiteRecommendation_Read` |

### ThirdPartyAccounts

| Method | Endpoint | Required scope |
| - | - | - |
| `POST` | `/experimental/retail-media/accounts/{accountId}/grant-third-party-consent` | `RetailMedia_ThirdPartyAccounts_Manage` |
| `POST` | `/experimental/retail-media/third-party-accounts/{accountId}/brands/add` | `RetailMedia_ThirdPartyAccounts_Manage` |
| `POST` | `/experimental/retail-media/third-party-accounts/{accountId}/brands/{brandId}/remove` | `RetailMedia_ThirdPartyAccounts_Manage` |
| `POST` | `/experimental/retail-media/third-party-accounts/{accountId}/create-brand-account` | `RetailMedia_ThirdPartyAccounts_Manage` |
| `POST` | `/experimental/retail-media/third-party-accounts/{accountId}/create-seller-account` | `RetailMedia_ThirdPartyAccounts_Manage` |
| `PUT` | `/experimental/retail-media/third-party-accounts/{accountId}/sellers` | `RetailMedia_ThirdPartyAccounts_Manage` |
