Skip to main content

Purpose (normative)

RetrieveRequest is a platform-declared, permissioned request sent by an AI platform to a publisher’s AIP retrieve endpoint to access content in response to a live user query. It is intentionally separate from PlatformRequest and ContextRequest. No ads. No bidding. No operator semantics. Only permissioned retrieval. It is evaluated against:
  • aip.json
  • editorial_domains
  • publisher policy

Canonical schema location


Schema summary

intent

  • domain - Primary intent domain (must align with publisher editorial_domains). Pattern: ^[a-z0-9]+(\.[a-z0-9-]+)*$
  • subdomain - Optional. Same pattern.
  • confidence - Optional. 0.0–1.0.

context

  • language - BCP 47 (e.g. en-US). Required.
  • geography.country - ISO 3166-1 alpha-2. Optional.
  • placement - Surface (e.g. conversation, chat, voice). Optional.

runtime

  • session_id, turn_index - Required.
  • query_text, latency_budget_ms - Optional.

Example

Well-formed RetrieveRequest body (e.g. POST to publisher’s retrieve endpoint):

What this schema deliberately excludes

This is intentional and important.
  • No auction data
  • No CPX / CPM / pricing
  • No brand or creative metadata
  • No embeddings
  • No operator scoring
  • No user identity beyond session context
If any of those appear in a RetrieveRequest, the request is non-compliant.

How publishers evaluate a RetrieveRequest

A publisher MUST evaluate, in this order:
  1. Verify authentication / signature (out of scope of this schema)
  2. Check intent_access.enabled and state (from aip.json)
  3. Match intent.domain (and optionally intent.subdomain) against editorial_domains
  4. Enforce retrieval limits (from aip.json)
  5. Respond or deny
This schema gives publishers everything they need - and nothing they don’t.

Why this schema will survive scrutiny

  • Clean separation from advertising
  • Explicit platform-declared intent
  • Deterministic consent matching
  • Minimal personal data surface
  • Future-safe via extensions

Schema file

Full JSON Schema (Draft 2020-12): retrieve-request.json

See also