Docs

OpenRTB JSON Schemas

A JSON Schema for every tracked OpenRTB version, both payload types, generated from the same spec catalogs the validator runs on. IAB Tech Lab ships protobuf but no JSON Schema for 2.6 or 3.0, so nothing else machine-readable tracks the monthly snapshots. Free to fetch, no account, stable URLs.

Latest snapshot

https://rtblint.org/schemas/openrtb-2.6-202606-bid-request.schema.json
https://rtblint.org/schemas/openrtb-2.6-202606-bid-response.schema.json

Schemas declare draft 2020-12 and carry a self-describing $id, so they can be referenced directly from an editor, a CI step, or a code generator:

# validate a payload with check-jsonschema
pipx run check-jsonschema \
  --schemafile https://rtblint.org/schemas/openrtb-2.6-202606-bid-request.schema.json \
  bid-request.json

What the schemas cover

Object nesting, field types, required fields, documented value sets, and the AdCOM enumerated lists a field references. Members outside the catalog are allowed, because exchanges legitimately carry ext objects.

What a schema cannot express is exactly what a linter adds: fields that are deprecated or moved in a given version, fields that belong to a later version than the one you targeted, and semantic rules such as SupplyChain node hygiene, GPP and US Privacy coherence, CTV pod duration sanity, native markup encoding, and mtype/adm agreement on a bid response. Validating against a schema is a type check; the tester and the CLI catch the rest.

Every version

The 3.0 schemas are rooted at the openrtb envelope and pin one payload member, so a request schema will not accept a response. They stop at the AdCOM boundary: item.spec and bid.media are typed as objects and left open.

One tracked version has no schema: the 2.6-202204 snapshot, whose published archive carries no usable object tables. It is listed on OpenRTB versions, where the validator refuses it rather than passing payloads silently.

How they are generated

The catalogs are extracted from the IAB specifications as structured metadata (object names, field names, type notations, value sets, section citations) and compiled into the validator. The schemas fall out of the same data, so they cannot drift from what RTBlint enforces: continuous integration regenerates them on every change and fails if the committed files differ.

cargo run -p rtblint-core --example export_json_schemas

RTBlint is not affiliated with or endorsed by IAB Tech Lab. The schemas carry structural metadata and section references only, no specification prose.