Answers

Where is the official OpenRTB spec?

Short answer

The current OpenRTB 2.x specification is the file 2.6.md in IAB Tech Lab's openrtb2.x repository on GitHub, where main always holds the latest dated release and each release is tagged 2.6-YYYYMM. OpenRTB 3.0 lives in a separate repository (openrtb), with its domain model AdCOM in a third (AdCOM). Versions 2.5 and earlier were published as PDFs, linked from iabtechlab.com. Loss reason codes and other community extensions sit under extensions/community_extensions/ inside openrtb2.x.

The map

You wantIt lives at
The current 2.x spec2.6.md at the root of the openrtb2.x repository; main always holds the latest release
A specific dated releaseThe repository's release tags, named 2.6-YYYYMM
Changes not yet releasedThe develop branch of the same repository
OpenRTB 3.0The separate openrtb repository
AdCOM (the object model and enum lists)The AdCOM repository
Versions 2.5 and earlierPDFs linked from IAB Tech Lab's OpenRTB page
Community extensions (loss reason codes, and more)extensions/community_extensions inside openrtb2.x
Protocol buffer definitionsThe proto directory inside openrtb2.x

How the spec ships now

OpenRTB stopped being a sequence of numbered documents in late 2022. The working rule since then: the version number moves only for breaking changes, and everything additive lands as a dated release of 2.6. Each release is tagged 2.6-YYYYMM, the main branch always reflects the most recent one, and development happens on develop. So “OpenRTB 2.6” without a date is ambiguous: 2.6-202204 and 2.6-202606 differ by four years of fields. The post on the dated-snapshot era explains why the numbering stopped, and the version index tracks all eighteen versions RTBlint validates against, with what each one added.

Why the spec is split across three repositories

The 2.x document defines the transaction: bid request, bid response, auction mechanics. Since 2.6 it delegates its enumerated lists (device types, creative attributes, API frameworks, placement subtypes) to AdCOM, the Advertising Common Object Model, which is versioned separately. OpenRTB 3.0 goes further and builds the whole message on AdCOM objects, which is why it lives in its own repository and is not an in-place upgrade of 2.x. The guides on what AdCOM is and 2.6 versus 3.0 cover both splits.

Machine-readable forms

The normative spec is prose plus tables; the only official machine-readable artifact is the protobuf set in proto/. For validation and tooling, RTBlint generates a JSON Schema per dated snapshot, listed on the JSON Schemas page, and the tester validates a pasted bid request against any of the eighteen tracked versions without reading a single table yourself.