(root)

BidRequest

The top-level container for an auction. Carries the impressions on offer plus everything the bidder needs to value them.

Fields

FieldTypeLevelDescription
idstringrequiredID of the bid request, assigned by the exchange.
impobject[]requiredThe impressions on offer. At least one is required.
siteobjectrecommendedDetails of the publisher website. Mutually exclusive with app.
appobjectrecommendedDetails of the publisher application. Mutually exclusive with site.
deviceobjectrecommendedThe end user's device.
userobjectrecommendedThe human user of the device.
tmaxintegeroptionalMaximum time in milliseconds the exchange will wait for a response.
atintegeroptionalAuction type. Defaults to 2, second price.
curstring[]optionalAllowed bid currencies, ISO-4217.
testintegeroptionalTest mode. Defaults to 0.

Example

What matters in practice

Two things here account for a large share of confused debugging. First, a request carries exactly one of site, app or dooh — never two — so a bidder reading site on in-app traffic will find nothing. Second, tmax is the whole reason otherwise valid bids never appear in reporting: respond after it and the bid is simply discarded, with no error and no record on the buy side. When win rate looks inexplicably low, compare your response latency against tmax before looking at price.

Related objects

Field names, types and requirement levels from the IAB Tech Lab OpenRTB 2.6 specification (2.6-202211), verified 30 July 2026. The practice notes are not spec text.