Skip to main content

Engage Header Bidding API

Overview​

The Engage Reports API provides RESTful interfaces for interacting with the Header Bidding Reports product.

The API is structured around core entities:

  • Publisher: A publisher account
  • Report: Analytics entities to retrieve metrics
Support Contact

For questions, issues, or feature requests, contact hb@outbrain.com.


API URL​

The base URL for all API endpoints is:

https://api.outbrain.com/engage/v2/

Authentication​

Obtaining a token is the first step toward using the Engage API. The token must be included in all further requests using the HTTP header OB-TOKEN-V1.

Token Lifecycle
  • Tokens are valid for 30 days. Expired tokens cannot access the Engage API.
  • Generating a new token does not invalidate older tokens.
  • When an account password or email is changed, all previously generated tokens are revoked and a new token must be generated.

How to Obtain a Token​

Tokens are obtained by making a request to the login endpoint using Basic Authentication.

  • Endpoint: https://api.outbrain.com/engage/v1/login
  • Authentication Header Format:
    Authorization: BASIC BASE64(YOUR_OUTBRAIN_USERNAME:YOUR_OUTBRAIN_PASSWORD)
info

All communication with the Engage API uses HTTPS, ensuring credentials are secure.

cURL Example​

curl -u YOUR_OUTBRAIN_USERNAME:YOUR_OUTBRAIN_PASSWORD https://api.outbrain.com/engage/v1/login

Use the -v flag to view the Authorization HTTP header in the response.

Token Management Recommendation​

Store an active token for use in all requests and periodically update it (every 30 days or less) to stay within authentication limits.


Rate Limits​

Endpoint / LevelLimitWindow
Authentication requests (/login)2 requestsPer hour per user
Reporting API30 requestsPer minute per publisher
warning

When rate limits are exceeded, the API returns HTTP status code 429 (Too Many Requests).


Users​

Users represent individual account access to Teads services and to the publisher dashboard. Users have permissions to one or more Publisher accounts.

note

Users cannot be managed via this API and must be created with the help of your Teads representative.


Reports​

Report endpoints allow you to retrieve metrics at various levels of granularity.

Performance Metric Latency

Performance reports have a 2–4 hour delay. Performance metrics for the current day are partial.

Response Structure​

All reporting endpoints share a common response structure:

PropertyTypeDescription
itemsArrayReport items for the specific report type.
totalItemsNumberCount of total results after filtering.
metricsSumsObjectAggregated metrics for the returned set of data after filtering.

Filter Parameters​

OperatorDescriptionExample
:eq:Equal/reports/headerBidding?filter=revenue:eq:2000
:gt:Greater than/reports/headerBidding?filter=revenue:gt:300
:lt:Less than/reports/headerBidding?filter=revenue:lt:890
:between:Between/reports/headerBidding?filter=revenue:between:20,900
:in:In (list)/reports/headerBidding?filter=placement:in:2089,84984,38984
:not_in:Not in (list)/reports/headerBidding?filter=placement:not_in:2089,8466
:contains:Contains (string)/reports/headerBidding?filter=placement:contains:ar
:not_contains:Not contains (string)/reports/headerBidding?filter=placement:not_contains:ar
Chaining Filters

Use semicolon (;) to chain multiple filters:

filter=revenue:gt:2000;placement:in:234,657

Note: Nesting of Boolean operators is not currently supported.

ReportItems Fields​

PropertyTypeDescriptionBreakdown Availability
dayStringDate in format yyyyMMddOptional breakdown
revenueNumberPublisher revenue in USDAll
impressionsNumberTotal number of impressions servedAll
clicksNumberTotal number of clicksAll
ctrNumberAverage CTR: (clicks / impressions) * 100All
rpmNumberRevenue per thousand impressions: (revenue / impressions) * 1000All
countryStringCountry entityOptional breakdown
deviceStringUser deviceOptional breakdown
tagIdStringTagID / placement entity provided by publisherOptional breakdown
environmentStringApp or WebOptional breakdown
domainStringPage domainOptional breakdown
channelStringMedia typeOptional breakdown

Request Structure / Parameters​

ParameterTypeRequiredDetails
entityIdStringYesExternal ID of the entity (publisher/group). Contact your account manager for this ID.
entityTypeStringYesEntity type. This API supports only PUBLISHER.
fromDateStringYesStart date (yyyyMMdd).
toDateStringYesEnd date (yyyyMMdd).
limitNumberNoMax results to return. Default: 500, Max: 10000.
offsetNumberNoOrdinal index of first result to retrieve. Default: 0.
sortStringNoSorting field. Default: revenue.
orderStringNoSorting order (asc or desc). Default: desc.
filterStringNoFilter expression string.
breakdownsArrayNoAggregation entities. Default: day. Max: 4.
currencyCodeStringNoRevenue currency code. Default: USD.

Breakdowns​

BreakdownDescriptionExample
dayDay entity/reports/headerBidding?breakdowns=day
deviceDevice entity/reports/headerBidding?breakdowns=device
tagIdTagId / placement entity/reports/headerBidding?breakdowns=tagId
environmentEnvironment entity/reports/headerBidding?breakdowns=environment
domainDomain entity/reports/headerBidding?breakdowns=domain
channelChannel entity/reports/headerBidding?breakdowns=channel
countryCountry entity/reports/headerBidding?breakdowns=country
Chaining Breakdowns

Use comma (,) to chain multiple breakdowns (up to 4 supported):

breakdowns=day,tagId

Error Handling​

The API follows RESTful conventions for HTTP status codes:

Status CodeMeaningDescription
200OKThe request was successful.
400Bad RequestThe request could not be understood or was missing required parameters.
401UnauthorizedAuthentication failed or user lacks permissions.
403ForbiddenAccess denied.
404Not FoundResource was not found.
429Too Many RequestsRate limit exceeded.
504Gateway TimeoutRequest timed out.

When an error status code is returned, a JSON response describes the error:

{
"moreInfo": "getReport",
"errorMessage": "access denied"
}

Troubleshooting​

  1. Community Support: Post in the Outbrain Engage API Google Group.
  2. Trace Header: Include the x-traceid header from the response in your inquiry to help our support team trace and resolve the issue quickly.