Reticle Contact sales
On this document

Reporting

Reporting API

Pull delivery and spend metrics for your account. A single read-only endpoint returns daily rows of requests, impressions and spend, sliced by the dimensions you ask for.

Version · v1 Transport · HTTPS GET + JSON Currency · USD

Overview

The Reporting API is a read-only HTTP endpoint. You issue a GET with a date range and an optional set of dimensions; Reticle returns aggregated daily rows of request opportunities, impressions and spend. There are two variants — one for supply partners and one for demand partners — that share an identical request and response shape.

  • All dates are UTC and ranges are inclusive on both ends.
  • The finest granularity is one day; there is no hourly reporting.
  • Monetary values are in USD, as raw values to four decimal places.
  • Results are paged.

Authentication

Every request carries an api_key, passed as a query parameter. The key and your base endpoint are issued per partner — contact us to obtain them. Keep the key server-side; it grants access to your account's figures.

Endpoints

Two endpoints, chosen by which side of the exchange you sit on. Both take the same parameters and return the same shape.

MethodPathFor
GET/openapi/v1/reporting/supplySupply partners (SSP).
GET/openapi/v1/reporting/demandDemand partners (DSP).

The host is your issued base endpoint; the paths above are appended to it.

Example request · cURL
curl "https://YOUR-ENDPOINT/openapi/v1/reporting/supply\
?api_key=YOUR_API_KEY\
&start_date=2026-07-01\
&end_date=2026-07-19\
&dimensions=date,country,format\
&page=1\
&page_size=1000"

Query parameters

ParameterRequiredDescription
api_keyyesPartner key. See Authentication.
start_dateyesStart of the range, YYYY-MM-DD, UTC. Inclusive.
end_dateyesEnd of the range, YYYY-MM-DD, UTC. Inclusive.
dimensionsnoComma-separated subset of date, region, country, format. Omit to aggregate the whole range into a single row.
pagenoPage number. Default 1.
page_sizenoRows per page. Default 1000, maximum 10000.

Constraints

A request that violates any of these returns HTTP 400:

  • The range end_date − start_date must be 31 days or fewer.
  • end_date must be T-1 or earlier — today's and future dates are not queryable.
  • Granularity is fixed at one day; there is no finer slice.
  • page_size must not exceed 10000.

Response

Every response is a JSON envelope with a status code, a message, and a data object holding pagination metadata and the result rows.

Response · JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "currency": "USD",
    "page": 1,
    "page_size": 1000,
    "total": 1342,
    "rows": [
      {
        "date": "2026-07-19",
        "region": "ap",
        "country": "US",
        "format": "banner",
        "request_oppo": 1284322,
        "impressions": 41100,
        "spend": 82.4413
      }
    ]
  }
}

Envelope

FieldTypeDescription
codeinteger0 on success; a non-zero value indicates an error. See Errors.
messagestringHuman-readable status. ok on success.
dataobjectResult payload.

data object

FieldTypeDescription
currencystringCurrency of monetary fields. Always USD.
pageintegerCurrent page number.
page_sizeintegerRows per page.
totalintegerTotal number of rows across all pages for this query.
rowsobject[]Array of result rows. See Dimensions & metrics.

Dimensions & metrics

Each row carries the metrics below, plus one column per requested dimension. Dimension columns appear only when requested in dimensions; with no dimensions, a single aggregated row is returned for the whole range.

Dimensions

FieldTypeDescription
datestringDay, YYYY-MM-DD (UTC). Present only if date is requested.
regionstringReticle serving region: ap, us or eu. Present only if region is requested.
countrystringEnd-user country, ISO 3166-1 alpha-2 (e.g. US). Present only if country is requested.
formatstringCreative format (e.g. banner). Present only if format is requested.

Metrics

FieldTypeDescription
request_oppointegerRequest opportunities — ad/bid requests eligible for this slice.
impressionsintegerServed impressions.
spendfloatSpend in currency (USD), a raw value to four decimal places.

Errors

Successful requests return HTTP 200 with code: 0 and message: "ok". Any non-zero code indicates an error, with message describing it. Requests that violate the constraints return HTTP 400.

For the full list of error codes, contact us.

Changelog

Version Change
v1Initial release: supply and demand reporting endpoints, date / region / country / format dimensions, request / impression / spend metrics.