> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/data-api/api-overview.md).

# API overview

## How does Epsilon Retail Media work?

The API is organised around REST. The API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. The API uses built-in HTTP features including HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients.

Authentication to the API is managed through the use of API keys. API keys are used during communication between your backend and the API.

The Integration API supports the upload of products, catalogs, customers, and order data, which is used to generate ads. You can use the Integration API to request ads and report on interactions with those ads.

## Integration endpoints

Epsilon Retail Media uses various endpoints to sync data and generate ads. A brief summary is provided below:

| Endpoint           | Use                                                                                                                                                                                                                                               | Description                                                                                                                            |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `catalogs`         | [Syncing catalog via API](/retail-media-interface/integration/data-api/catalog-products-2/syncing-catalog-via-api.md)                                                                                                                             | Used to create catalogs via API. For single catalog namespaces, this is something your Technical Account Manager can organise for you. |
| `catalog-products` | [Syncing products via API](/retail-media-interface/integration/data-api/catalog-products-2/syncing-products-via-api.md)                                                                                                                           | Used to create and update product data within a catalog.                                                                               |
| `customers`        | [Syncing customer data via API](/retail-media-interface/integration/data-api/customer-data/syncing-customer-data-via-api-1.md)                                                                                                                    | Used to create and update customer data within a catalog.                                                                              |
| `orders`           | [Syncing order data via API](/retail-media-interface/integration/data-api/order-data-1/syncing-order-data-via-api.md)                                                                                                                             | Used to send order data.                                                                                                               |
| `/resource/`       | [Reporting impressions & clicks](/retail-media-interface/integration/data-api/api-overview/reporting-impressions-clicks.md) [Syncing order data via API](/retail-media-interface/integration/data-api/order-data-1/syncing-order-data-via-api.md) | Used to report clicks and impressions, as well as orders if reporting via front-end.                                                   |
| `/ads/generate`    | Generating ads                                                                                                                                                                                                                                    | Used to generate product ads and banner ads.                                                                                           |
| `/ads/bannerx`     | Generating ads                                                                                                                                                                                                                                    | Used to generate banner x ads.                                                                                                         |

{% hint style="info" %}
You don’t need to use endpoints for catalog, product, customer, and order syncing. Epsilon Retail Media supports syncing data via file, which may be suitable for your requirements.
{% endhint %}

## Content type & payload

The data payload is in JSON format. The `Content-Type` for these endpoints is `application/json`, which should be passed as a header in your requests as follows:

```
-H "Content-Type: application/json" \
```

## Authenticating requests

### Basic authentication

All integration resources use basic authentication which should be passed as a header with your API key as follows:

```
-H "Authorization: Basic 4ww25f70-b52s-40de-8f29-07b139b5cdc8" \
```

Your API Key can be accessed in the Integration Settings section of the retailer team. You will only need the secret API key.

### OAuth2.0 authentication

Epsilon Retail Media's ad generation endpoint is additionally compatible with OAuth2.0. Review [OAuth 2.0 Authentication](/retail-media-interface/integration/data-api/api-overview/oauth-20-authentication.md) for more information.

## Base URLs

Epsilon Retail Media uses different base URLs for staging and production environments.

{% hint style="info" %}
To receive your staging base URL, please contact Epsilon Retail Media. Once your integration is in progress, we will provide you with production base URLs.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/data-api/api-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
