# Introduction

Nexx360 provides an OpenRTB 2.5 compliant endpoint for programmatic ad requests.

## Endpoint

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

## 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 OpenRTB 2.5. 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 Extension (`user.ext`)

| Field     | Type   | Description                              |
| --------- | ------ | ---------------------------------------- |
| `consent` | string | TCF consent string                       |
| `eids`    | array  | Extended user identifiers for ID sharing |

### Regulations (`regs.ext`)

| Field        | Type   | Description              |
| ------------ | ------ | ------------------------ |
| `gdpr`       | 0 \| 1 | GDPR applies flag        |
| `us_privacy` | string | US Privacy (CCPA) string |

## Examples

{% content-ref url="video-example" %}
[video-example](https://developer.nexx360.io/openrtb/video-example)
{% endcontent-ref %}

{% content-ref url="mobile-example" %}
[mobile-example](https://developer.nexx360.io/openrtb/mobile-example)
{% endcontent-ref %}

{% content-ref url="cookie-sync" %}
[cookie-sync](https://developer.nexx360.io/openrtb/cookie-sync)
{% endcontent-ref %}
