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-orders-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: 3.2.0
info:
title: Epsilon Retail Media Integration Orders API
version: '1'
x-source: https://developers.citrusad.com/integration/reference/
servers:
- url: https://integration-BASE-URL.citrusad.com/v1/
security:
- sec0: []
tags:
- name: Orders
paths:
/orders:
post:
summary: Report an order
description: ''
operationId: report-an-order
requestBody:
content:
application/json:
schema:
type: object
properties:
orders:
type: array
items:
properties:
id:
type: string
description: The order ID in the retailer's site. If not provided it is generated by CitrusAd in the response.
sessionId:
type: string
description: Unique sessionId used for attribution. Required to be consistent between a user's session and order reporting.
orderDate:
type: string
description: This is the date or the date and time of the order. This must be in the format of ISO-8601 RFC 3339 standard and must be a precise, full timestamp, e.g. 2019-03-14T15:06:17+10:00
format: date-time
orderItems:
type: array
items:
properties:
gtin:
type: string
description: The product code of the purchased product.
quantity:
type: integer
description: The quantity (units) of the product purchased.
format: int32
regularUnitPrice:
type: string
description: This is regular unit price of the product in the order. If provided, it MUST be a number.
totalOrderItemPriceAfterDiscounts:
type: string
description: This is the total price of the products with discounts. It MUST be a number, e.g. if an order item contains 3 items with a price of 2.00, the value will be 6.
sellerId:
type: string
description: The unique Id of the seller. Only required if onboarding marketplace sellers. Can be left blank for non marketplace products. There are additional requirements to integrate seller_ids, please refer to [Marketplace sellerId](https://developers.citrusad.com/integration/reference/marketplace-sellerid) for more information.
required:
- gtin
- quantity
- totalOrderItemPriceAfterDiscounts
type: object
type: object
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"orders\": [\n {\n \"adIds\": \"string\",\n \"teamId\": \"string\",\n \"customerId\": \"string\",\n \"sessionId\": \"string\",\n \"id\": \"string\",\n \"orderItems\": [\n {\n \"regularUnitPrice\": \"number\",\n \"citrusDiscountAmount\": \"number\",\n \"gtin\": \"string\",\n \"adId\": \"string\".\n \"quantity\": \"number\",\n \"substitutedFor\": \"string\",\n \"totalOrderItemPriceAfterDiscounts\": \"number\"\n }\n ],\n \"orderDate\": \"string\"\n }\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"additionalInfo\": [\n {\n \"code\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"message\": \"string\"\n}"
schema:
type: object
properties:
additionalInfo:
type: array
items:
type: object
properties:
code:
type: string
example: string
message:
type: string
example: string
message:
type: string
example: string
'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:
- Orders
get:
summary: Retrieve a list of orders
description: ''
operationId: retrieve-a-list-of-orders
parameters:
- name: teamId
in: query
description: If a teamId is not provided, then the teamId will fall back onto the teamId provided by the authentication.
schema:
type: string
- name: limit
in: query
schema:
type: integer
format: int32
- name: skip
in: query
schema:
type: integer
format: int32
- name: orderIds
in: query
schema:
type: array
items:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
orders:
type: array
items:
properties:
id:
type: string
description: The order ID in the retailer's site. If not provided it is generated by CitrusAd in the response.
sessionId:
type: string
description: Unique sessionId used for attribution. Required to be consistent between a user's session and order reporting.
orderDate:
type: string
description: This is the date or the date and time of the order. This must be in the format of ISO-8601 RFC 3339 standard and must be a precise, full timestamp, e.g. 2019-03-14T15:06:17+10:00
format: date-time
orderItems:
type: array
items:
properties:
gtin:
type: string
description: The product code of the purchased product.
quantity:
type: integer
description: The quantity (units) of the product purchased.
format: int32
regularUnitPrice:
type: string
description: This is regular unit price of the product in the order. If provided, it MUST be a number.
totalOrderItemPriceAfterDiscounts:
type: string
description: This is the total price of the products with discounts. It MUST be a number, e.g. if an order item contains 3 items with a price of 2.00, the value will be 6.
sellerId:
type: string
description: The unique Id of the seller. Only required if onboarding marketplace sellers. Can be left blank for non marketplace products. There are additional requirements to integrate seller_ids, please refer to [Marketplace sellerId](https://developers.citrusad.com/integration/reference/marketplace-sellerid) for more information.
required:
- gtin
- quantity
- totalOrderItemPriceAfterDiscounts
type: object
type: object
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"orders\": [\n {\n \"adIds\": \"string\",\n \"teamId\": \"string\",\n \"customerId\": \"string\",\n \"sessionId\": \"string\",\n \"id\": \"string\",\n \"orderItems\": [\n {\n \"regularUnitPrice\": \"number\",\n \"citrusDiscountAmount\": \"number\",\n \"gtin\": \"string\",\n \"adId\": \"string\".\n \"quantity\": \"number\",\n \"substitutedFor\": \"string\",\n \"totalOrderItemPriceAfterDiscounts\": \"number\"\n }\n ],\n \"orderDate\": \"string\"\n }\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"additionalInfo\": [\n {\n \"code\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"message\": \"string\"\n}"
schema:
type: object
properties:
additionalInfo:
type: array
items:
type: object
properties:
code:
type: string
example: string
message:
type: string
example: string
message:
type: string
example: string
'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:
- Orders
/orders/{orderId}:
get:
summary: Retrieve an order
description: ''
operationId: retrieve-an-order
parameters:
- name: orderId
in: path
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"adIds\": \"string\",\n \"teamId\": \"string\",\n \"customerId\": \"string\",\n \"sessionId\": \"string\",\n \"id\": \"string\",\n \"orderItems\": [\n {\n \"regularUnitPrice\": \"number\",\n \"citrusDiscountAmount\": \"number\",\n \"gtin\": \"string\",\n \"adId\": \"string\".\n \"quantity\": \"number\",\n \"substitutedFor\": \"string\",\n \"totalOrderItemPriceAfterDiscounts\": \"number\"\n }\n ],\n \"orderDate\": \"string\"\n}\n "
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"additionalInfo\": [\n {\n \"code\": \"string\",\n \"message\": \"string\"\n }\n ],\n \"message\": \"string\"\n}"
schema:
type: object
properties:
additionalInfo:
type: array
items:
type: object
properties:
code:
type: string
example: string
message:
type: string
example: string
message:
type: string
example: string
'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:
- Orders
components:
securitySchemes:
sec0:
type: apiKey
name: Authorization
in: header
x-bearer-format: basic
x-default: YOUR_API_KEY