Build on the platform
A clean REST surface, native OpenRTB bidding, and a conformance sandbox Everything a DSP or SSP engineering team needs to integrate in days
A small, predictable API surface
Every route is versioned, HTTPS-only, and returns strict JSON. Bidding follows the OpenRTB spec exactly — no proprietary envelope
/v1/auth/token/v1/bid/v1/reporting/delivery/v1/inventory/sellers.jsonAuthentication
POST /v1/auth/token HTTP/1.1
Host: rtb.adspiro.io
Content-Type: application/json
{
"client_id": "sp_9f2c1a4e",
"client_secret": "••••••••••••••••",
"grant_type": "client_credentials"
}{
"access_token": "axm_live_7b1d…",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "bid:read bid:write reporting:read"
} Tokens are OAuth 2.0 bearer credentials, valid for one hour. Pass them in the Authorization header on every subsequent request
Bid request & response, exactly as specified
Here is a complete banner auction round-trip, including SupplyChain and privacy signals. Video, native, and CTV follow the same envelope with their respective objects
Bid Request
{
"id": "8f4b2c1e-6a9d-4f21-9c33-7e0a1b2d3c4e",
"at": 1,
"tmax": 120,
"cur": ["USD"],
"imp": [
{
"id": "1",
"tagid": "slot-atf-970x250",
"bidfloor": 1.75,
"bidfloorcur": "USD",
"secure": 1,
"banner": { "w": 970, "h": 250, "pos": 1 }
}
],
"site": {
"id": "pub-40219",
"domain": "example-news.com",
"cat": ["IAB12"],
"publisher": { "id": "sp_9f2c1a4e", "name": "Example Media" }
},
"device": {
"ua": "Mozilla/5.0 …",
"ip": "203.0.113.7",
"geo": { "country": "USA" },
"devicetype": 2
},
"user": { "id": "u-6c2f…" },
"source": {
"fd": 1,
"ext": {
"schain": {
"complete": 1,
"ver": "1.0",
"nodes": [
{ "asi": "adspiro.io", "sid": "sp_9f2c1a4e", "hp": 1 }
]
}
}
},
"regs": { "ext": { "gdpr": 0, "us_privacy": "1YNN" } }
}Bid Response
{
"id": "8f4b2c1e-6a9d-4f21-9c33-7e0a1b2d3c4e",
"cur": "USD",
"seatbid": [
{
"seat": "dsp-seat-118",
"bid": [
{
"id": "bid-1",
"impid": "1",
"price": 2.41,
"adm": "<div>…creative markup…</div>",
"adomain": ["brand.com"],
"crid": "creative-55210",
"w": 970,
"h": 250,
"nurl": "https://dsp.example/win?px=${AUCTION_PRICE}",
"burl": "https://dsp.example/bill?imp=1"
}
]
}
]
}Example call
curl -X POST https://rtb.adspiro.io/v1/bid \
-H "Authorization: Bearer axm_live_7b1d…" \
-H "Content-Type: application/json" \
-H "x-openrtb-version: 2.6" \
--data-binary @bid-request.jsonFrom credentials to live traffic in five steps
Provision credentials
Receive your client_id / client_secret and sandbox seat from your onboarding engineer
Authenticate
Request a short-lived bearer token via OAuth 2.0 client-credentials. Rotate as needed
Integrate endpoints
Point your RTB stack at our regional bidder endpoints and negotiate OpenRTB version
Certify in sandbox
Validate bid shaping, schain, and privacy signals against our conformance suite
Go live
Ramp traffic gradually with real-time reconciliation and dedicated support on call. Every unfilled bid comes back with one of 18 OpenRTB loss codes on your lurl, so you can tell a floor miss from a creative rejection
Need a sandbox seat?
Our solutions engineers will provision credentials and walk your team through conformance testing