Pixalate - OpenEPG DB™ 1.0 and Pre-Bid API for Open Programmatic CTV
Private Beta

OpenEPG DB™ 1.0 and Pre-Bid API for Open Programmatic CTV

Built to IAB Tech Lab's OpenRTB 2.6 specification, the Pre-Bid API enriches open programmatic CTV bid requests with a standard Content object in real time across 6,192 U.S. apps on Roku, Samsung Tizen, Amazon Fire TV, LG webOS, Vizio SmartCast, Apple tvOS, Android TV, Android and iOS, eliminating show name and genre blind spots.

Request Beta Access
OpenRTB 2.6 Content Object Fields
content.title content.series content.genre content.contentrating content.channel.id content.channel.name confidence
580,000+
TV shows
13,900+
FAST and linear channels
6,192
U.S. streaming apps
375,000+
Bundle ID variations mapped
Show-Level Data With Zero Publisher Opt-In

Today, show-level data for streaming TV comes from two places: program schedules that content owners submit to metadata providers, or automatic content recognition (ACR). Neither appears in most open programmatic bid requests, and the gap is widest on multi-channel FAST aggregators, where a single Bundle ID can carry hundreds of channels. OpenEPG DB™ 1.0 covers the FAST channels distributed through aggregators such as Tubi, Samsung TV Plus and The Roku Channel, and Pixalate's API resolves them at the bid request level using only the fields already in the request.

Built to the OpenRTB 2.6 Standard

The API takes a standard OpenRTB 2.6 bid request and returns it with a standard Content object spliced in. No new schema, no custom extension. Any SSP, DSP or exchange that supports OpenRTB 2.6 can use the output as-is.

Real-Time CTV Bundle ID Mapping

In open programmatic CTV the Bundle ID is often the only reliable inventory identifier, and the same app appears under many variants. Pixalate normalizes 375,000+ Bundle ID variations to their parent apps across 9 platforms, at the moment of the bid request.

A Confidence Score on Every Response

Each response carries a statistical confidence score from 0.00 to 1.00. When the bid stream carries a channel identifier or channel name, the resolution engine incorporates it to increase match confidence and precision.

The API requires zero publisher opt-in and no publisher-side SDK or integration. It operates on the bid request exactly as it exists today.

How It Works

A standard OpenRTB 2.6 bid request goes in. The same bid request comes back with the resolved program spliced into app.content as standard OpenRTB 2.6 Content fields; the confidence score rides in a response header. Nothing else in the request is touched.

OpenRTB 2.6 Pre-Bid Bidstream
The bid request exactly as it exists today, from any SSP, DSP or exchange
Reads: app.bundle + device.ua
Pixalate Pre-Bid Engine
Real-time resolution against OpenEPG DB™ 1.0: 580,000+ shows, 13,900+ channels, 6,192 U.S. apps
Enriched output: Content object + confidence score
200 OK · application/json
X-OpenEPG-Outcome: HIT
X-OpenEPG-Confidence: 0.94

{
  "app": {
    "bundle": "com.pluto.tv",
    "content": {
      "id": "ec-4Fq0X2",
      "title": "SportsCenter",
      "series": "SportsCenter",
      "genre": "Sports",
      "contentrating": "TV-PG",
      "channel": { "id": "eg-Tj5r8w", "name": "ESPN" },
      "ext": { "openepg": { "attribution": "pixalate-openepg/v1" } }
    }
  },
  "device": { "ua": "Roku/DVP-13.0.0" }
}

content - OpenRTB 2.6 Content object

Standard fields buyers and sellers already parse: title, series, genre, contentrating and channel (id, name). On the passthrough route these are written into app.content; every unread field in the request is preserved unchanged.

Confidence - 0.00 to 1.00

Returned as a response header on a hit. How certain the resolution engine is in the returned match. Callers apply their own threshold for bidding, pricing or suitability decisions.

Protocol-Level Mechanics

The API parses incoming OpenRTB 2.6 bid requests using two required fields. When bid streams contain platform channel identifiers or channel names, the resolution engine incorporates these signals to calculate match confidence.

app.bundle
required

App Bundle ID

The CTV or mobile app identifier as it appears in the bid request. Normalized against 375,000+ known variations to a parent app.

device.ua
required

Device User-Agent

Identifies the device and operating system carrying the impression, so the app resolves to the correct platform variant.

app.content.channel.id
optional

Platform Channel Identifier

Native channel identifier from the platform. Increases match confidence and precision on multi-channel aggregator apps.

app.content.channel.name
optional

Channel Name

Display name of the channel, where the bid stream carries one. Used to disambiguate channels inside aggregator apps.

Returned OpenRTB 2.6 Content Object

The API returns a native OpenRTB 2.6 Content object that can include the fields below. Packages are tiered by monthly request volume; contact Pixalate for details.

content.title

Show Title

The program airing at the moment of the bid request.

content.series

Series

Series name, where the schedule carries it.

content.genre

Genre

Genre from a 24-genre taxonomy based on authoritative sources.

content.contentrating

Content Rating

Officially assigned rating as reported by underlying sources (e.g., TV-PG, TV-14). Pixalate does not assign ratings.

content.channel.id / .name

Channel

Canonical channel identifier and display name.

confidence

Confidence Score

Statistical confidence in the match, 0.00 to 1.00.

Use Cases
SSPs & Exchanges

Enriched Bid Requests

Attach show, genre and content rating to outbound bid requests as standard OpenRTB 2.6 Content fields. Content-transparent inventory is easier to buy and supports higher price floors.

Unlock Aggregator App Value

Surface which individual shows inside aggregator apps drive programmatic activity, and price that inventory accordingly.

DSPs & Agencies

Content-Aware Bidding

Bid on inventory priced to its content, not its app shell. Different shows within the same app present different brand environments.

Brand Suitability

Feed genre and officially assigned content ratings into existing policy engines, instead of bidding blind or blocking whole apps.

Post-Bid Verification

Confirm ads ran against the intended program with post-bid show and channel metrics in the OpenEPG™ Analytics dashboard.

Integration Routes

Two ways to call the same resolution engine. Pick the one that fits where you sit in the bid path.

Route 1

Pre-Bid Passthrough

Send your OpenRTB 2.6 bid request as-is. Get it back with the Content object spliced in. Nothing else touched.

Route 2

Flat Lookup

Send a bundle ID and optional channel or title. Get the resolved content and confidence for analytics or offline use.

The full request and response specification, including endpoints and error handling, is published on Pixalate's API Explorer.

OpenEPG DB™ 1.0 Coverage

Everything queryable through the Pre-Bid API. As of September 2026, OpenEPG DB™ 1.0 spans:

Category Coverage Examples
Shows 580,000+ 60 Minutes, The Price Is Right, Survivor, NCIS, South Park, Hell's Kitchen, Sesame Street, Top Gear, Wheel of Fortune, Pawn Stars
Channels 13,900+ FAST and linear channels, including CNN, ESPN, Food Network, HGTV, FOX News, Bloomberg TV, BET, TLC, Telemundo, Disney Channel, NBA, CBS News
U.S. streaming apps 6,192 CNNgo, Food Network GO, DAZN, Scripps News, Yahoo Sports, BET NOW, Univision, The Weather Network
Bundle ID variations normalized 375,000+ Raw variations observed in open programmatic bid streams, mapped to parent apps
Streaming platforms & multi-channel aggregators 12 Tubi, Samsung TV Plus, The Roku Channel, Hulu, Sling TV, Fubo, Plex, Pluto TV, Xumo, and more
Operating systems 9 Roku, Samsung Tizen, Amazon Fire TV, LG webOS, Vizio SmartCast, Apple tvOS, Android TV, Android, iOS
Geographic coverage 210 U.S. media markets

Genre is drawn from a 24-genre taxonomy based on authoritative sources. Content ratings reflect officially assigned ratings as reported by underlying sources (e.g., TV-G, TV-PG, TV-14, TV-MA); Pixalate does not assign ratings.

Deployment & Availability

OpenEPG DB™ 1.0 and the Pre-Bid API are available today in private beta for DSPs, SSPs and exchanges. The same resolution engine is accessible in the bid path or offline.

REST API

Real-time pre-bid passthrough and flat lookup endpoints. Target server-side latency p50 ≤ 10 ms, p99 ≤ 25 ms.

AWS RTB Fabric

In-bidstream pre-bid module for RTB Fabric participants, at roughly half the REST latency (~5 ms p50 / ~12 ms p99).

Integration at a glance
ProtocolOpenRTB 2.6 in / OpenRTB 2.6 Content object out
Required Inputsapp.bundle, device.ua
Optional SignalsPlatform channel identifier, channel name, show title
Access MethodsREST API, AWS RTB Fabric module
PlatformsRoku, Samsung Tizen, Amazon Fire TV, LG webOS, Vizio SmartCast, Apple tvOS, Android TV, Android, iOS
MarketUnited States
Integration Overhead0 SDKs; 0 lines of publisher code

Post-bid metrics are available in the OpenEPG™ Analytics dashboard and the free monthly OpenEPG™ Index.

Frequently Asked Questions

Answers to the most common integration and coverage questions about OpenEPG DB™ 1.0 and the Pre-Bid API.

What is the expected latency for the Pre-Bid API?

The target server-side latency is p50 ≤ 10 ms and p99 ≤ 25 ms for real-time requests (REST). On the AWS RTB Fabric module path, real-time latency is roughly half the REST figures (~5 / ~12 ms).

Is the Pre-Bid API available on the AWS RTB Fabric?

Yes. Enrichment is available via an in-bidstream pre-bid module for AWS RTB Fabric participants, backed by the same resolution engine as the REST API, operating at the lowest latency the bid path allows.

What is your current app, channel and show coverage?

As of September 2026, OpenEPG DB™ 1.0 covers 580,000+ TV shows, 13,900+ FAST and linear channels, and 6,192 U.S. streaming apps across 9 operating systems (Roku, Samsung Tizen, Amazon Fire TV, LG webOS, Vizio SmartCast, Apple tvOS, Android TV, Android, iOS) and 12 streaming platforms and multi-channel aggregators. While we cannot share the entire raw list of 500k+ shows, we can share our indexed channel list under NDA so prospects can cross-check against their supply and prioritize gaps.

Which markets are covered?

OpenEPG DB™ 1.0 covers the United States at launch, across all 210 U.S. media markets.

Which Content object fields will I receive?

The API returns a native OpenRTB 2.6 Content object that can include content.title, content.series, content.genre, content.contentrating, content.channel.id and content.channel.name, and a statistical confidence score (0.00 to 1.00). Packages are tiered by monthly request volume; contact Pixalate for details.

Full details are available in the API reference.

What content genres are available in your taxonomy?

Pixalate's OpenEPG DB™ uses a genre taxonomy based on authoritative sources, consisting of 24 genres:

  • Action & Adventure
  • Animation
  • Comedy
  • Crime
  • Documentary
  • Drama
  • Family
  • Game Show
  • History
  • Horror
  • Kids
  • Music
  • Mystery
  • News
  • Reality
  • Romance
  • Sci-Fi & Fantasy
  • Soap
  • Sport
  • Talk
  • Thriller
  • TV Movie
  • War & Politics
  • Western
What content ratings do you provide?

We return officially assigned content ratings exactly as reported by our underlying sources, in whichever rating system those sources use — most often the TV Parental Guidelines used by the V-Chip (e.g., TV-G, TV-PG, TV-14, TV-MA) and MPAA ratings (e.g., G, PG, PG-13, R). Ratings are available per show. Pixalate does not assign ratings.

Do publishers need to opt in or integrate an SDK for their shows to appear?

No. The API requires zero publisher opt-in and no publisher-side SDK or integration. OpenEPG is built for the open exchange and resolves the show from the CTV Bundle ID, User-Agent and any channel signals already present in the incoming bid request.

What exactly do I need to send to the API?

Two routes. Everything beyond the required fields is optional.

  • Pre-bid passthrough (POST /v1/enrich): a standard OpenRTB 2.6 bid request. Requires app.bundle and device.ua.
  • Flat lookup (POST /v1/lookup): a flat JSON object. Requires bundle.

Full details are available in the API reference.

Do I need to send a fully-formed OpenRTB bid request?

No. Pre-bid passthrough (POST /v1/enrich) reads only app.bundle and device.ua; OpenRTB's own required fields are not enforced, and everything else in the request is returned untouched. Flat lookup (POST /v1/lookup) does not use OpenRTB at all.

Full details are available in the API reference.

What happens if a request cannot be resolved?

You still get an HTTP 200. Pre-bid passthrough returns the bid request unchanged and reports the outcome in the X-OpenEPG-Outcome header; flat lookup returns its usual envelope with no candidates and a reason code.

Full details are available in the API reference.

Bring Show-Level Data to Your CTV Bidstream

OpenEPG DB™ 1.0 and the Pre-Bid API are available today in private beta for DSPs, SSPs and exchanges, via REST or AWS RTB Fabric.

Request Beta Access

Schedule a Demo

Interested in learning more about Pixalate’s ad fraud prevention solutions? Let’s connect. Share your challenges, and our team will be in touch shortly. Thank you for reaching out.