Skip to main content

Bid Schema

Overview

A Bid is the payload a Brand Agent returns for a ContextRequest. It declares:
  • bid identity and versioning
  • where the bid applies (targeting)
  • how the agent wants to be paid (pricing)
  • how much it is willing to spend (budget)
  • what the platform may render (recommendation)
  • how relevant it believes the bid is (declared_relevance)
  • whether it can handle delegated execution (delegation)

Top-Level Fields

FieldTypeRequiredDescription
spec_versionstringYesSpec version. MUST be "1.0"
bid_idstringYesUnique identifier for this bid
brand_agent_idstringYesIdentifier of the Brand Agent placing the bid
context_idstringYesID of the ContextRequest being bid on
wallet_idstringYesWallet to debit if the bid wins
targetingobjectYesBrand-declared applicability constraints
pricingobjectYesBilling model and per-event prices in micros
budgetobjectYesSpend caps and pacing controls
recommendationobjectYesCreative input to render if the bid wins
declared_relevancenumberYesBrand-declared relevance score (0.0-1.0)
supported_opportunitiesarrayYesOpportunity types this bid supports
preferred_formatstringYesPreferred creative format
valid_untilstringYesRFC 3339 expiry timestamp for the bid
timestampstringYesRFC 3339 creation timestamp for the bid
delegationobjectNoDelegation capability declaration
processing_latency_msintegerNoEnd-to-end bid response latency in milliseconds
metadataobjectNoOptional vendor-namespaced metadata

targeting

Defines when the bid should be considered applicable.
FieldTypeRequiredDescription
intent_typesarrayYesSupported intent types such as commercial or transactional
decision_phasesarrayYesSupported phases from the canonical taxonomy such as awareness, consideration, decision, or action
verticalsarrayNoNormalized topical verticals such as crm
countriesarrayNoISO 3166-1 alpha-2 country codes
localesarrayNoBCP 47 locales such as en-US
Valid intent_types: commercial, transactional, informational, navigational, support, unsafe, unknown Valid decision_phases: awareness, research, consideration, decision, action, post_purchase, support

pricing

All pricing values use micros of the declared currency. 1 USD = 1,000,000 micros
FieldTypeRequiredDescription
currencystringYesISO 4217 currency code
cpx_microsintegerNoPrice per exposure in micros
cpc_microsintegerNoPrice per click in micros
cpe_microsintegerNoPrice per delegated-session engagement in micros
cpa_microsintegerNoPrice per acquisition / verified outcome in micros
preferred_pricing_modelstringNoPreferred billing model: CPX, CPC, CPE, or CPA
At least one of cpx_micros, cpc_micros, cpe_micros, or cpa_micros MUST be present.

budget

Budget controls declared by the Brand Agent.
FieldTypeRequiredDescription
max_bid_per_event_microsintegerYesMaximum spend allowed for a single billable event
daily_cap_microsintegerYesMaximum spend allowed for the current day
remaining_budget_microsintegerYesRemaining available budget when the bid is created
pacing_modestringYesBudget pacing strategy: even, accelerated, or manual

recommendation

Platform render instructions for the winning recommendation.
FieldTypeRequiredDescription
formatstringYesCreative format: weave, tail, product_card, or bridge
disclosurestringYesDisclosure label such as [Ad] or Sponsored
creativeobjectYesStructured creative payload
offerIdstringNoUnique identifier for the offer being presented

recommendation.creative

Combined creative object containing brand information, ad assets, and destination.
FieldTypeRequiredDescription
brand_namestringYesAdvertiser or brand name
domainstringNoOptional advertiser domain
headlinestringYesPrimary ad headline
descriptionstringYesAd description text
cta_textstringYesCall-to-action text
follow_up_suggestionstringNoOptional follow-up suggestion the platform can surface after the initial recommendation
logo_urlstringNoOptional logo asset
image_urlsarrayNoOptional creative image assets for creative
landing_page_urlstringYesAdvertiser-controlled destination URL

supported_opportunities

Array of opportunity types this bid is intended to serve. Allowed values:
  • soft_recommendation
  • comparison_slot
  • decision_moment
  • transaction_trigger

delegation

Optional block for Brand Agents that can take over task execution after explicit user consent.
FieldTypeRequiredDescription
supportedbooleanYesWhether delegation is supported
consent_requiredbooleanYes, when supportedWhether explicit user consent is required
supported_for_intentsobjectYes, when supportedIntent types and decision phases where delegation is allowed
required_scopesarrayYes, when supportedContext scopes required for the operator-mediated session-init payload before session start
protocolobjectYes, when supportedDelegation protocol descriptor
mcpobjectYes, when supportedMCP session bootstrap details
session_constraintsobjectYes, when supportedSession timeout and turn limits

delegation.required_scopes

These scopes apply to the operator-mediated handoff payload used to start the delegated session. They do not grant unlimited access to upstream conversation history or automatically extend to new information the user provides later during the delegated session. Allowed values:
  • intent
  • constraints
  • selection_context
  • conversation_summary
In v1.0, new information collected from the user during the live delegated session is session-bound by default unless separately consented.

delegation.protocol

In v1.0, the standardized protocol type is mcp.

delegation.mcp

FieldTypeRequiredDescription
server_urlstringYesMCP server URL
tool_namestringYesMCP tool used to start the delegated session
session_init_schema_refstringYesURI of the session initialization schema

delegation.session_constraints

FieldTypeRequiredDescription
multi_turnbooleanYesWhether the session supports multiple turns
session_timeout_secondsintegerYesInactivity timeout in seconds after delegation_started; the Operator expires the delegated session if no verified session activity arrives before this window elapses
max_turnsintegerYesMaximum turn count allowed
In v1.0, delegated session liveness is tracked from verified delegation_activity events sent by the Platform or Brand Agent. Each verified activity event resets the inactivity timer. If the timer elapses with no activity, the Operator marks the delegated session expired and records delegation_expired.

Example

{
  "spec_version": "1.0",
  "bid_id": "bid_7823",
  "brand_agent_id": "brand_agent_123",
  "context_id": "ctx_92f",
  "wallet_id": "wallet_890",
  "targeting": {
    "intent_types": ["commercial", "transactional"],
    "decision_phases": ["consideration", "decision"],
    "verticals": ["crm", "sales_software"],
    "countries": ["US"],
    "locales": ["en-US"]
  },
  "pricing": {
    "currency": "USD",
    "cpx_micros": 50000,
    "cpc_micros": 450000,
    "cpe_micros": 700000,
    "cpa_micros": 10000000,
    "preferred_pricing_model": "CPA"
  },
  "budget": {
    "max_bid_per_event_micros": 10000000,
    "daily_cap_micros": 50000000,
    "remaining_budget_micros": 32000000,
    "pacing_mode": "even"
  },
  "recommendation": {
    "format": "weave",
    "disclosure": "[Ad]",
    "creative": {
      "brand_name": "Nimbus",
      "domain": "nimbus.example.com",
      "headline": "Scale your CRM with AI",
      "description": "Nimbus CRM Pro helps growing teams automate their sales pipeline with AI-powered insights and collaborative forecasting.",
      "cta_text": "Start Free Trial",
      "follow_up_suggestion": "Get a migration checklist tailored to your current CRM.",
      "logo_url": "https://cdn.example.com/nimbus/logo.png",
      "image_urls": ["https://cdn.example.com/nimbus/crm.png"],
      "landing_page_url": "https://nimbus.example.com/signup"
    },
    "offerId": "offer_12345"
  },
  "declared_relevance": 0.87,
  "supported_opportunities": ["comparison_slot", "decision_moment", "transaction_trigger"],
  "preferred_format": "weave",
  "delegation": {
    "supported": true,
    "consent_required": true,
    "supported_for_intents": {
      "intent_types": ["transactional", "commercial"],
      "decision_phases": ["decision", "post_purchase"]
    },
    "required_scopes": ["intent", "constraints"],
    "protocol": {
      "type": "mcp",
      "version": "1.0"
    },
    "mcp": {
      "server_url": "https://agent.nimbus.example.com/mcp",
      "tool_name": "start_crm_signup_session",
      "session_init_schema_ref": "https://agent.nimbus.example.com/schemas/session-init.json"
    },
    "session_constraints": {
      "multi_turn": true,
      "session_timeout_seconds": 900,
      "max_turns": 25
    }
  },
  "processing_latency_ms": 42,
  "valid_until": "2026-03-26T18:00:10Z",
  "timestamp": "2026-03-26T18:00:01Z"
}

Validation Rules

  • spec_version MUST equal "1.0"
  • At least one of cpx_micros, cpc_micros, or cpa_micros MUST be present
  • declared_relevance MUST be between 0.0 and 1.0
  • currency MUST be a valid ISO 4217 code
  • countries MUST use ISO 3166-1 alpha-2 codes
  • valid_until and timestamp MUST be RFC 3339 timestamps
  • If delegation.supported is true, the rest of the delegation fields become required