> For the complete documentation index, see [llms.txt](https://developer.nexx360.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.nexx360.io/integration-methods/openrtb.md).

# OpenRTB

Nexx360 provides an endpoint for programmatic ad requests that supports both OpenRTB 2.5 and OpenRTB 2.6.

## Endpoint

```
POST https://fast.nexx360.io/open-rtb
```

{% hint style="info" %}
Both OpenRTB 2.5 and 2.6 requests are accepted. The two versions are backward compatible — privacy, consent and supply-chain fields are read from both their 2.6 first-class locations and their legacy 2.5 `.ext` locations, so requests built for either version work unchanged.
{% endhint %}

## HTTP Headers

### Response Headers

| Header              | Value | Description                                                                                                                                                                                                                                      |
| ------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `x-openrtb-version` | `2.6` | Advertises the OpenRTB protocol version the endpoint complies with. Set on every response from the OpenRTB endpoints (`/open-rtb`, `/prebid-server`, `/inapp`, `/ortb-lib`). Echoes the `x-openrtb-version` request header when one is supplied. |

## URL Query Parameters

| Parameter   | Required | Description                                                                                                                                                                                                         |
| ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `site_id`   | No       | Nexx360 site identifier                                                                                                                                                                                             |
| `placement` | No       | Placement identifier for tracking and reporting. Value is automatically uppercased. Injected into `imp.ext.nexx360.placement` for all impressions if not already set. Example: `/open-rtb?placement=digitalturbine` |
| `tag_id`    | No       | Nexx360 tagId. Injected into `imp.ext.nexx360.tagId` for all impressions if not already set. Useful when all impressions share the same tag ID. Example: `/open-rtb?tag_id=my-tag`                                  |

\*Either `site_id`, `tag_id`, or `placement` must be provided.

**Note:** URL query parameters only fill in missing values - they do not overwrite values already present in the request body.

## Request Payload

Nexx360 is compliant with both OpenRTB 2.5 and 2.6. The main addition to the spec is the `imp[].ext.nexx360.tagId` field which identifies the Nexx360 placement configuration.

### Supported Formats

* Banner
* Video
* Native

### Impression Extension (`imp[].ext`)

| Field                  | Type      | Required | Description                                                                               |
| ---------------------- | --------- | -------- | ----------------------------------------------------------------------------------------- |
| `nexx360.tagId`        | string    | Yes\*    | Nexx360 placement ID from the platform (can also be set via `tag_id` URL query parameter) |
| `nexx360.placement`    | string    | No       | Placement identifier (can also be set via `placement` URL query parameter)                |
| `nexx360.bidders`      | object    | No       | SSP-specific configuration overrides                                                      |
| `nexx360.disabledSsps` | string\[] | No       | List of SSP names to exclude from the auction for this impression                         |

### Request Extension (`ext`)

| Field           | Type   | Description                        |
| --------------- | ------ | ---------------------------------- |
| `bidderVersion` | string | Client bidder version              |
| `nexx360Id`     | string | Nexx360 user identifier            |
| `pageViewId`    | string | Unique page view identifier        |
| `source`        | string | Request source (e.g., "prebid.js") |
| `version`       | string | Client version                     |

### User (`user`)

In OpenRTB 2.6 the TCF consent string is promoted to the first-class `user.consent` field. The legacy `user.ext.consent` location is still accepted as a fallback.

| Field         | Type   | Description                                        |
| ------------- | ------ | -------------------------------------------------- |
| `consent`     | string | TCF consent string (2.6 first-class location)      |
| `ext.consent` | string | TCF consent string (2.5 legacy location, fallback) |
| `ext.eids`    | array  | Extended user identifiers for ID sharing           |

### Regulations (`regs`)

OpenRTB 2.6 promotes the privacy signals from `regs.ext` to first-class `regs` fields. Both locations are accepted; first-class values take precedence.

| Field        | Type      | Description                                                                      |
| ------------ | --------- | -------------------------------------------------------------------------------- |
| `gdpr`       | 0 \| 1    | GDPR applies flag (2.6 first-class; also read from `regs.ext.gdpr`)              |
| `us_privacy` | string    | US Privacy (CCPA) string (2.6 first-class; also read from `regs.ext.us_privacy`) |
| `gpp`        | string    | Global Privacy Platform (GPP) string (also read from `regs.ext.gpp`)             |
| `gpp_sid`    | number\[] | GPP section IDs that apply (also read from `regs.ext.gpp_sid`)                   |

### Source (`source`)

OpenRTB 2.6 promotes the supply chain object to the first-class `source.schain` field. The legacy `source.ext.schain` location is still accepted as a fallback.

| Field        | Type   | Description                                         |
| ------------ | ------ | --------------------------------------------------- |
| `schain`     | object | Supply chain object (2.6 first-class location)      |
| `ext.schain` | object | Supply chain object (2.5 legacy location, fallback) |

### DOOH (Digital Out-Of-Home)

OpenRTB 2.6 introduces Digital Out-Of-Home inventory support. DOOH fields are accepted on the `/open-rtb` and `/prebid-server` endpoints.

| Field       | Type   | Description                                                                                                                                   |
| ----------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `dooh`      | object | Top-level DOOH object describing the venue (`id`, `name`, `domain`, `venuetype`, `venuetypetax`, …)                                           |
| `imp[].qty` | object | Impression multiplier for DOOH: `multiplier` (number, required), `sourcetype` (0–3, required), `vendor` (string), `ext.display_time` (number) |

## Examples

{% content-ref url="/pages/rjcVLNIXvLmxOd0dBDlb" %}
[Video Example](/integration-methods/openrtb/video-example.md)
{% endcontent-ref %}

{% content-ref url="/pages/4hBFJEzIvfBmJDLYiKdh" %}
[Mobile Example](/integration-methods/openrtb/mobile-example.md)
{% endcontent-ref %}

{% content-ref url="/pages/Fb92xGGbMr8rDWKZJ7u8" %}
[Cookie Sync](/integration-methods/openrtb/cookie-sync.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.nexx360.io/integration-methods/openrtb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
