# OpenRTB 2.x Bid Request

The top-level bid request object contains a globally unique bid request or auction ID. This `id` attribute is required as is at least one impression object. Other attributes in this top-level object establish rules and restrictions that apply to all impressions being offered.

## Attributes
- **allimps**: `int32 | null`  ≥ 0  Flag to indicate if Exchange can verify that the impressions offered represent all of the impressions available in context.
- **app**: `object | null`  This object should be included if the ad supported content is a non-browser application.
- **at**: `int64 | null`  Auction type, where 1 = First Price, 2 = Second Price Plus.
- **badv**: `array of strings | null`  Block list of advertisers by their domains.
- **bapp**: `array of strings | null`  Block list of applications by their platform-specific identifiers.
- **bcat**: `array of strings | null`  Blocked advertiser categories using the IAB content categories.
- **bseat**: `array of strings | null`  Block list of buyer seats restricted from bidding on this impression.
- **curr**: `array of strings | null`  Array of allowed currencies for bids using ISO-4217 alpha codes.
- **device**: `object | null`  Provides information about the device through which the user is interacting.
- **ext**: `object | null`  Placeholder for extensions to OpenRTB.
- **id**: `string` (required)  Unique ID of the bid request, provided by the exchange.
- **imp**: `array of objects` (required)  Array of Imp objects representing the impressions offered.
- **regs**: `object | null`  Regulations related to the bid.
- **site**: `object | null`  This object should be included if the ad supported content is a website.
- **source**: `object | null`  Information about the source of the bid request.
- **test**: `int64 | null`  Indicator of test mode.
- **tmax**: `int64 | null`  Maximum time in milliseconds for bids to be received.
- **user**: `object | null`  Information about the human user of the device.
- **wlang**: `array of strings | null`  White list of languages for creatives.
- **wseat**: `array of strings | null`  White list of buyer seats allowed to bid on this impression.

# Bid Response

The bid response object is the unnamed outer JSON object. The `id` attribute reflects the bid request ID for logging purposes. At least one `seatbid` object is required.

## Attributes
- **bidid**: `string | null`  Bidder generated response ID.
- **cur**: `string | null`  Bid currency using ISO-4217 alpha codes.
- **customdata**: `string | null`  Optional feature for additional data.
- **id**: `string` (required)  ID of the bid request to which this is a response.
- **nbr**: `int64 | null`  Reason for not bidding.
- **seatbid**: `array of objects | null`  Array of seatbid objects, containing one or more individual bids.

## SeatBid Object

A `SeatBid` object can contain multiple `Bid` objects, each of which relates to a specific impression.

### Attributes
- **bid**: `array of objects` (required)  Array of 1+ Bid objects each related to an impression.
- **group**: `int32 | null`  0 = impressions can be won individually; 1 = impressions must be won as a group.
- **seat**: `string | null`  ID of the buyer seat on whose behalf this bid is made.

## Bid Object

### Attributes
- **adid**: `string | null`  ID of a preloaded ad to be served if the bid wins.
- **adm**: `string | null`  Markup to convey ad content if the bid wins.
- **adomain**: `array of strings | null`  Advertiser domain for block list checking.
- **api**: `int32 | null`  API required by the markup.
- **attr**: `array of objects | null`  Set of attributes describing the creative.
- **bundle**: `string | null`  Application identifier unique to the app.
- **burl**: `string | null`  Billing notice URL called when a winning bid is billable.
- **cat**: `array of strings | null`  IAB content categories of the creative.
- **cid**: `string | null`  Campaign ID for ad quality checking.
- **crid**: `string | null`  Creative ID for tracking.
- **dealid**: `string | null`  Reference to the deal ID from the bid request.
- **exp**: `int64 | null`  Willingness to wait between the auction and impression.
- **h**: `int64 | null`  Height of the creative.
- **hratio**: `int64 | null`  Relative height of the creative.
- **id**: `string` (required)  Bidder generated bid ID.
- **impid**: `string` (required)  ID of the Imp object in the related bid request.
- **iurl**: `string | null`  URL to an image representative of the campaign.
- **language**: `string | null`  Language of the creative.
- **lurl**: `string | null`  Loss notice URL when a bid is known to be lost.
- **nurl**: `string | null`  Win notice URL if the bid wins.
- **price**: `double` (required)  Bid price expressed as CPM.
- **protocol**: `int32 | null`  Video response protocol.
- **qagmediarating**: `int64 | null`  Creative media rating per guidelines.
- **tactic**: `string | null`  Tactic ID for reporting.
- **w**: `int64 | null`  Width of the creative.
- **wratio**: `int64 | null`  Relative width of the creative.
