Skip to content

Bid Endpoint Reference

Endpoint

URLhttp://rtb.revosurge.com/api/v1/openrtb2/{sspId}/bid
MethodPOST
Content-Typeapplication/json
ProtocolOpenRTB 2.5

Bid Request

Top-level fields

FieldTypeRequiredDescription
idstringYesUnique ID for this bid request
imparrayYesList of impression objects (see below)
siteobjectRecommendedSite where the ad will appear
deviceobjectRecommendedDevice and user environment
userobjectNoUser identity
atintegerNoAuction type. We support 1 (first-price)
tmaxintegerNoMaximum response timeout in milliseconds (e.g. 250)
curarrayNoAllowed currencies (e.g. ["USD"])
allimpsintegerNoIndicator of available impressions

Impression object (imp[])

FieldTypeRequiredDescription
idstringYesUnique impression ID
bannerobjectOne ofBanner ad slot (see below)
nativeobjectOne ofNative ad slot
bidfloorfloatNoMinimum bid price in CPM (USD). Defaults to 0
bidfloorcurstringNoCurrency for bid floor. Defaults to USD
instlintegerNoSet to 1 for popunder (fullscreen/interstitial)
tagidstringNoSSP zone/tag ID for the impression
ext.typestringNoFormat hint from SSP. Use "pop" to signal popunder
FieldTypeDescription
wintegerWidth in pixels
hintegerHeight in pixels

Site object (site)

FieldTypeDescription
idstringSite ID on your platform
namestringHuman-readable site name
domainstringSite domain
pagestringFull URL of the page
catarrayIAB content categories
publisher.idstringPublisher ID
keywordsstringComma-separated keywords

Device object (device)

FieldTypeDescription
uastringUser agent string
ipstringIPv4 address of the user
ipv6stringIPv6 address of the user (send if no IPv4 is available)
geo.countrystringISO 3166-1 alpha-3 country code (e.g., IND, IDN, USA)
osstringOperating system (e.g., Android, iOS)
devicetypeintegerOpenRTB device type code (e.g., 1 = mobile)
languagestringBrowser/device language code
carrierstringMobile carrier name
jsinteger1 if JavaScript is supported, 0 otherwise

User object (user)

FieldTypeDescription
idstringBuyer-specific user ID

Bid Response

On a successful bid, we return HTTP 200 with a JSON body. If we have no matching campaign, we return HTTP 204 No Content (no body).

Top-level fields

FieldTypeDescription
idstringEchoes the bid request id
seatbidarrayArray with one seat bid object
curstringCurrency — always USD

Bid object (seatbid[].bid[])

FieldTypeDescription
idstringUnique bid ID
impidstringImpression ID from the request
pricefloatBid price in CPM (USD)
adidstringCampaign ID
cridstringCreative ID
admstringAd markup — HTML for banner/native; redirect URL for popunder
ext.popurlstringPopunder landing URL (popunder only, mirrors adm)
wintegerCreative width (0 for popunder)
hintegerCreative height (0 for popunder)
nurlstringWin notification URL (fire when we win)
burlstringBilling notification URL (fire on impression)
lurlstringLoss notification URL with ${AUCTION_LOSS} macro (fire when we lose)

Example

Request

json
{
  "id": "xqoErTidWX",
  "imp": [
    {
      "id": "AhpTG",
      "banner": { "w": 300, "h": 250 },
      "bidfloor": 0
    }
  ],
  "site": {
    "id": "674721464",
    "domain": "example.com",
    "page": "https://example.com",
    "cat": ["IAB25-3"],
    "publisher": { "id": "17918" }
  },
  "device": {
    "ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
    "geo": { "country": "IND" },
    "ip": "223.184.195.38",
    "os": "Android",
    "language": "en"
  },
  "user": { "id": "platform:2fda85882b825efbb54e84d014ff8fb9" },
  "at": 1
}

Response (bid)

json
{
  "id": "xqoErTidWX",
  "seatbid": [
    {
      "bid": [
        {
          "id": "xqoErTidWX",
          "impid": "AhpTG",
          "price": 0.5,
          "adid": "AWC-20251003-094732-029-6102",
          "crid": "AWC-20251003-094732-029-6102",
          "adm": "<a href='https://...' target='_blank'><img src='https://...' width='300' height='250'></a>",
          "w": 300,
          "h": 250,
          "nurl": "http://rtb.revosurge.com/rtb/win?id=xqoErTidWX&impId=AhpTG",
          "burl": "http://rtb.revosurge.com/rtb/bill?id=xqoErTidWX&impId=AhpTG",
          "lurl": "http://rtb.revosurge.com/rtb/loss?id=xqoErTidWX&impId=AhpTG&nbr=${AUCTION_LOSS}"
        }
      ],
      "seat": "revo"
    }
  ],
  "cur": "USD"
}

Response (no bid)

HTTP 204 No Content

Popunder format

To request popunder inventory, set imp[].instl: 1 and imp[].ext.type: "pop". The response adm will be a redirect URL (not HTML), and the bid will also include ext.popurl with the same value.

Request (popunder)

json
{
  "id": "pxBrQtYuWZ",
  "imp": [
    {
      "id": "ImpPop1",
      "instl": 1,
      "bidfloor": 0.1,
      "ext": { "type": "pop" }
    }
  ],
  "site": {
    "id": "70915",
    "domain": "example.com",
    "page": "https://example.com/",
    "ext": { "categories": "Entertainment" }
  },
  "device": {
    "ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36",
    "geo": { "country": "VNM" },
    "ip": "113.175.11.125",
    "os": "Android"
  },
  "at": 1,
  "tmax": 250
}

Response (popunder bid)

json
{
  "id": "pxBrQtYuWZ",
  "seatbid": [
    {
      "bid": [
        {
          "id": "b91c3e2a-7f4d-4b1a-93ec-8f21ad047c12",
          "impid": "ImpPop1",
          "price": 0.64,
          "adid": "AWA-20260403-060030-100-5550",
          "crid": "AWR-20260326-024959-045-0754",
          "adm": "https://ingestor.revosurge.com/pop?...",
          "ext": { "popurl": "https://ingestor.revosurge.com/pop?..." },
          "w": 0,
          "h": 0,
          "nurl": "http://rtb.revosurge.com/rtb/win?id=pxBrQtYuWZ&impId=ImpPop1",
          "burl": "http://rtb.revosurge.com/rtb/bill?id=pxBrQtYuWZ&impId=ImpPop1",
          "lurl": "http://rtb.revosurge.com/rtb/loss?id=pxBrQtYuWZ&impId=ImpPop1&nbr=${AUCTION_LOSS}"
        }
      ],
      "seat": "revo"
    }
  ],
  "cur": "USD"
}