Overview
A PlatformRequest is the canonical envelope that an AI platform sends to an AIP operator to initiate intent-based monetization. It is operator-agnostic: any conforming operator can process it. The schema is designed around five principles:- Consent is first-class. Every request carries an explicit consent envelope. No consent, no processing.
- Classification has two modes. The platform either sends the interaction and the operator classifies it (operator-derived), or the platform sends pre-computed signals and the operator validates them (platform-derived).
- Policy is auditable. The operator produces a structured policy decision with thresholds, basis, and sensitivity — separate from classification and monetization.
- Monetization is not just auction. The
monetizationblock supports auction as one mechanism, not the only one. - Identity is quarantined by default. Platform-internal fields live in
identity.quarantinedand must never be forwarded downstream.
Top-Level Fields
Identifier Model
AIP uses one top-level identifier onPlatformRequest:
message_id: canonical conversation-turn identifier used for auction identity, replay, dedupe, and downstream traceability
messageId, treat it as a client alias that maps to canonical message_id at the API boundary.
platform
identity
consent
Every request must carry an explicit consent envelope. The operator must not process a request where consent is denied or unknown without a policy basis for doing so.
consent.scope
consent.constraints
In AIP v1.0, raw query text and message history MUST NEVER be forwarded downstream to brand agents. Those are protocol prohibitions, not consent-controlled options.
classification_input
A PlatformRequest MUST include exactly one classification input form.
If
classification_input.type is "interaction", the request is operator-derived. The platform provides the interaction data and the operator derives classification outputs from that interaction.If classification_input.type is "provided_signals", the request is platform-derived. The platform provides structured classification signals and the operator validates, normalizes, and governs those signals before using them for policy or monetization decisions.Platform-derived signals MUST NOT be treated as trusted by default. The operator remains the authoritative decision-maker for validation, policy, monetization eligibility, and downstream participation.Mode 1: Operator-Derived (type: "interaction")
Use this mode when the platform sends the interaction data and the operator performs classification.
The platform provides the user interaction, surface metadata, consent, and identity envelope. The operator then classifies intent, maps taxonomy, evaluates policy, determines monetization eligibility, and optionally runs monetization logic.
When to use:
- The platform does not run its own intent classifier
- The platform wants the operator to be the source of truth for classification
- The platform wants simpler integration
- The operator needs consistent classification across all platforms
classification_input.interaction
interaction.session
interaction.surface
interaction.input
interaction.input.messages[]
Operator-derived example
Mode 2: Platform-Derived (type: "provided_signals")
Use this mode when the platform has already generated structured intent signals and sends those signals to the operator.
The platform provides structured intent output, signal provenance, optional taxonomy and inferred context. The operator then validates the provided signals, normalizes scores if needed, applies trust rules, evaluates policy, and determines monetization eligibility.
The operator MUST NOT assume that platform-provided signals are trusted by default.
When to use:
- The platform runs its own classifier
- The platform runs a certified shared classifier locally
- The platform wants lower latency or less raw interaction sharing
- The operator supports signal validation for upstream classification
classification_input.signals
signals.source
signals.intent
signals.iab_content
signals.context
Platform-derived example
Normative Difference Between Modes
policy_hints
Non-binding hints from the platform. The operator may use or ignore them.
signal_validation
Present only when classification_input.type is "provided_signals". Contains the operator’s validation and normalization metadata for platform-derived signals.
The operator MAY reject platform-derived signals if:
- Provenance is missing
- Trust tier is insufficient
- Calibration is unknown
- Signals fail validation
- The request falls into a restricted policy class
policy
Auditable policy decision produced after consent, classification, validation, and operator rules are applied.
decision_basis values:
interaction_classification · provided_signal · normalized_signal · score_threshold · policy_override · regulated_vertical_control · manual_override · consent_denied · consent_unknown · fallback
policy.opportunity
monetization
Monetization configuration and runtime controls. Auction is one monetization mechanism, not the only one.
Processing Expectations
For operator-derived requests
The operator SHOULD:- Derive intent from the interaction
- Produce classification outputs internally
- Use those outputs as the basis for policy and monetization decisions
For platform-derived requests
The operator SHOULD:- Inspect signal provenance
- Validate or normalize the provided signals
- Apply trust-tier logic
- Use validated or normalized signals as the basis for policy and monetization decisions
Full Example: Operator-Derived
Full Example: Platform-Derived
Validation Rules
spec_versionmust be"1.0".message_idmust be a non-empty string.timestampmust be RFC 3339.platform.rolemust be"platform".consentmust containstatus,scope, andconstraints.classification_inputmust contain exactly one ofinteractionorsignalsbased ontype.- When
typeis"interaction",interaction.input.query_textandinteraction.surfaceare required. - When
typeis"provided_signals",signals.sourceandsignals.intentare required. signals.intentmust containtypeanddecision_phase.identity.quarantinedmust never be forwarded downstream.consent.constraints.allow_identity_downstreammust be respected when forwarding identity-related data.- Raw query text and message history must never be forwarded downstream to brand agents in v1.0.