> 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
