Epsilon Ads API

The Ads API from Epsilon — 2 operation(s) for ads.

Operations 2

POST /ads/generate Generate product and banner ads #
POST /ads/bannerx Generate banner X ads #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/epsilon-ads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

epsilon-ads-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Epsilon Retail Media Integration Ads API
  version: '1'
  x-source: https://developers.citrusad.com/integration/reference/
servers:
- url: https://integration-BASE-URL.citrusad.com/v1/
security:
- sec0: []
tags:
- name: Ads
paths:
  /ads/generate:
    post:
      summary: Generate product and banner ads
      description: ''
      operationId: generate
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - catalogId
              - placement
              - maxNumberOfAds
              properties:
                catalogId:
                  type: string
                  description: The catalogId you are requesting ads for. Typically a single identifier for a retailer.
                placement:
                  type: string
                  description: The placement you are requesting ads for.
                customerId:
                  type: string
                  description: Your unique customerId. Optional.
                sessionId:
                  type: string
                  description: Unique sessionId used for attribution. Required to be consistent between a user's session and order reporting.
                searchTerm:
                  type: string
                  description: Used for search placements. The exact search term entered by the customer on your site.
                targetedProductGtin:
                  type: string
                  description: Used for cross-sell placements. The product code that is being advertised against
                maxNumberOfAds:
                  type: integer
                  description: The maximum number of product ads to receive.
                  format: int32
                contentStandardId:
                  type: string
                  description: The banner contentStandardId. Required for banners.
                bannerSlotIds:
                  type: array
                  description: The banner slots ads are required. Will be superseded by bannerSlots array object.
                  items:
                    type: string
                productFilters:
                  type: string
                  description: An array or arrays are required depending on your ad generation filtering. Used in category placements or any other placement to further define business rules. Not currently compatible with cross-sell or upsell placements.
                  default: '[     [       "category:Frozen"     ],     ["Location:Brisbane Central"]]'
                  format: json
                options:
                  type: array
                  items:
                    properties:
                      filtermode:
                        type: string
                        description: Defines the ad generation filtering mode.
                        default: AndOr
                      cached:
                        type: boolean
                        description: Defines if the retailer expects to cache the adId
                        default: false
                      includeAdvertiserInfo:
                        type: boolean
                        description: Defines if the retailer requires advertiser information to comply with the EU's Digital Services Act
                        default: true
                    type: object
                bannerSlots:
                  type: array
                  description: The banner slots that are requested. Specifying maxNumberOfAds for the banner allows you to retrieve multiple of the same banner slot.
                  items:
                    properties:
                      slotId:
                        type: string
                        description: The bannerSlotId ads are required for.
                      maxNumberOfAds:
                        type: integer
                        description: The maximum number of product ads to receive.
                        format: int32
                    type: object
                audience:
                  type: array
                  items:
                    properties:
                      segmentIds:
                        type: array
                        description: The list of segment IDs that the customer can access.
                        default: []
                        items:
                          type: string
                      sourceId:
                        type: string
                        description: The agreed ID of the source between Epsilon and yourself. Used when multiple sources are used for segments. Not required if only syncing from one source.
                        default: retailer-cdp-1
                    type: object
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"ads\": [\n        {\n            \"id\": \"string\",\n            \"gtin\": \"string\",\n            \"discount\": {\n                \"amount\": \"number\",\n                \"minPrice\": \"number\",\n                \"maxPerCustomer\": \"integer\"\n            },\n            \"expiry\": \"string\",\n            \"position\": \"integer\",\n          \t\"metadata\": {\n        \t\t\t\"advertiserInfo\": {\n       \t\t\t\t\t\"advertiser\": \"string\",\n          \t\t\t\"onBehalfOf\": \"string\",\n      \t\t\t},\n     {\n            \"id\": \"string\",\n            \"gtin\": \"string\",\n            \"discount\": {\n                \"amount\": \"number\",\n                \"minPrice\": \"number\",\n                \"maxPerCustomer\": \"integer\"\n            },\n            \"expiry\": \"string\",\n            \"position\": \"integer\"\n          \t\"metadata\": {\n        \t\t\t\"advertiserInfo\": {\n       \t\t\t\t\t\"advertiser\": \"string\",\n          \t\t\t\"onBehalfOf\": \"string\",\n        },\n       {\n            \"id\": \"string\",\n            \"gtin\": \"string\",\n            \"discount\": {\n                \"amount\": \"number\",\n                \"minPrice\": \"number\",\n                \"maxPerCustomer\": \"integer\"\n            },\n            \"expiry\": \"string\",\n            \"position\": \"integer\"\n          \t\"metadata\": {\n        \t\t\t\"advertiserInfo\": {\n       \t\t\t\t\t\"advertiser\": \"string\",\n          \t\t\t\"onBehalfOf\": \"string\",         \n        }\n    ],\n    \"banners\": [\n        {\n            \"id\": \"string\",\n            \"contentStandardId\": \"string\",\n            \"slotId\": \"string\",\n            \"imageUrl\": \"string\",\n            \"linkUrl\": \"string\",\n            \"altText\": \"string\",\n            \"text\": \"\",\n            \"gtins\": [\n                \"string\",\n                \"string\"\n            ],\n            \"expiry\": \"2022-03-10T05:53:14.653320236Z\",\n            \"tags\": {}\n        }\n    ],\n      \"products\": [],  \n  \"metadata\": []\n\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: ''
        '401':
          description: '401'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '403':
          description: '403'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '404':
          description: '404'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '429':
          description: '429'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '500':
          description: '500'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '502':
          description: '502'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '503':
          description: '503'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '504':
          description: '504'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
      deprecated: false
      tags:
      - Ads
  /ads/bannerx:
    post:
      summary: Generate banner X ads
      description: ''
      operationId: bannerx
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - catalogId
              - placement
              properties:
                catalogId:
                  type: string
                  description: The catalogId you are requesting ads for. Typically a single identifier for a retailer.
                placement:
                  type: string
                  description: The placement you are requesting ads for.
                customerId:
                  type: string
                  description: Your unique customerId. Optional.
                sessionId:
                  type: string
                  description: Unique sessionId used for attribution. Required to be consistent between a user's session and order reporting.
                searchTerm:
                  type: string
                  description: Used for search placements. The exact search term entered by the customer on your site.
                contentStandardId:
                  type: string
                  description: The banner contentStandardId. Required for banners.
                bannerSlotIds:
                  type: array
                  description: The banner slots ads are required for.
                  items:
                    properties:
                      slotId:
                        type: string
                        description: The bannerSlotId ads are required for.
                      maxNumberOfAds:
                        type: integer
                        description: The maximum number of product ads to receive.
                        format: int32
                    type: object
                productFilters:
                  type: string
                  description: An array or arrays are required depending on your ad generation filtering. Used in category placements or any other placement to further define business rules. Not currently compatible with cross-sell or upsell placements.
                  default: '[     [       "category:Frozen"     ],     ["Location:Brisbane Central"]]'
                  format: json
                options:
                  type: array
                  items:
                    properties:
                      filtermode:
                        type: string
                        description: Defines the ad generation filtering mode.
                        default: AndOr
                      cached:
                        type: boolean
                        description: Defines if the retailer expects to cache the adId
                        default: false
                      includeAdvertiserInfo:
                        type: boolean
                        description: Defines if the retailer requires advertiser information to comply with the EU's Digital Services Act
                        default: true
                    type: object
                audience:
                  type: array
                  items:
                    properties:
                      segmentIds:
                        type: array
                        description: The list of segment IDs that the customer can access.
                        default: []
                        items:
                          type: string
                      sourceId:
                        type: string
                        description: The agreed ID of the source between Epsilon and yourself. Used when multiple sources are used for segments. Not required if only syncing from one source.
                        default: retailer-cdp-1
                    type: object
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"ads\": [\n        {\n            \"contentStandardId\": \"string\",\n            \"slotId\": \"string\",\n            \"banners\": [\n                {\n                    \"citrusAdId\": \"string\",\n                    \"citrusCampaignName\": \"string\",\n                    \"citrusContentStandardId\": \"string\",\n                    \"citrusSlotId\": \"string\",\n                    \"citrusExpiry\": \"string\",\n                    \"headingText\": \"string\",\n                    \"bannerText\": \"string\",\n                    \"bannerTextColour\": \"string\",\n                    \"ctaFlag\": boolean,\n                    \"ctaText\": \"string\",\n                    \"ctaTextAccessibility\": \"string\",\n                    \"ctaLink\": \"string\",\n                    \"backgroundColour\": \"string\",\n                    \"backgroundImage\": \"string\",\n                    \"backgroundImagePosition\": \"string\",\n                    \"heroImage\": \"string\",\n                    \"heroImageAltText\": \"string\",\n                    \"secondaryHeroImage\": \"string\",\n                    \"secondaryHeroImageAltText\": \"string\",\n                    \"tags\": {},\n                    \"gtins\": [\n                        \"string\",\n                        \"string\"\n                    ],\n                    \"position\": integer,\n                  \t\"metadata\": {\n        \t\t\t\t\t\t\t\"advertiserInfo\": {\n          \t\t\t\t\t\t\t\"advertiser\": \"string\",\n          \t\t\t\t\t\t\t\"onBehalfOf\": \"string\"\n                      }\n                }\n            ]\n        }\n    ],  \n  \"metadata\": []\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: ''
        '401':
          description: '401'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '403':
          description: '403'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '404':
          description: '404'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '429':
          description: '429'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '500':
          description: '500'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '502':
          description: '502'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '503':
          description: '503'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
        '504':
          description: '504'
          content:
            text/plain:
              examples:
                Result:
                  value: ''
      deprecated: false
      tags:
      - Ads
components:
  securitySchemes:
    sec0:
      type: apiKey
      name: Authorization
      in: header
      x-bearer-format: basic
      x-default: YOUR_API_KEY