Create inventory source
Create an inventory source and optionally register an agent for it.
Authorizations
API key or access token
Body
Display name for the inventory source
1 - 255"Retail Network Agent"
Unique identifier for this source within the storefront. Defaults to a slugified version of the name if not provided.
1 - 255"retail-network-agent"
Only external AGENT inventory sources can be created through this endpoint. MANAGED_SALES_AGENT, LINKED_STOREFRONT, and MODULAR_SOURCE rows are created by their dedicated provisioning/linking flows. Storefront-level ADAPTER dispatch is configured on the storefront, not as an inventory source.
AGENT Agent type — required when executionType is "AGENT"
SALES, SIGNAL, CREATIVE, OUTCOME Agent endpoint URL — required when executionType is "AGENT"
2048Agent protocol — required when executionType is "AGENT"
MCP, A2A Auth method for the agent — required when executionType is "AGENT"
API_KEY, NO_AUTH, JWT, OAUTH Initial credentials for testing. Required for non-OAUTH agents when executionType is "AGENT".
- Option 1
- Option 2
- Option 3
Agent description
2000Response
Create inventory source
Inventory source response
Globally unique surrogate id (BIGINT serialized as string). Use this when acting on rows the caller does not own (e.g. a seller approving an inbound link).
Storefront-scoped identifier — unique within the row owner's storefront. Use this for actions on the caller's own rows; use id for cross-customer actions.
Display name
Execution type
Source lifecycle status
PENDING, ACTIVE, DISABLED Linked agent ID (when executionType is agent)
Creation timestamp (ISO 8601)
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Last update timestamp (ISO 8601)
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Agent type
SALES, SIGNAL, CREATIVE, OUTCOME Agent endpoint URL
Agent protocol
MCP, A2A Agent description
Agent authentication type
API_KEY, NO_AUTH, JWT, OAUTH Whether the agent has authentication configured
OAuth authorization info (for OAUTH agents)
Embedded-sales-agent state when executionType is MANAGED_SALES_AGENT. Null/absent for external AGENT-type sources. The current REST surface (/api/v2/storefront/esa/...) remains the way to mutate this state today; subsequent PRs will move those actions under /api/v2/storefront/inventory-sources/:sourceId/....
Link state when executionType is LINKED_STOREFRONT. Stored inline on this row (the buyer owns it; the seller has permission to update the link_* fields when approving / rejecting / cancelling). Null/absent for other kinds. Mutate via /api/v2/storefront/links/....
How the underlying agent reports delivery (WEBHOOK, BUCKET, POLLING). Mirrors the AdCP-spec values used when registering the agent. Projected from the joined adcp_agent row; null for non-AGENT sources.
WEBHOOK, BUCKET, POLLING Polling cadence (DAILY, MONTHLY) — only meaningful when reportingType is POLLING. Projected from the joined adcp_agent row; null for non-AGENT sources or non-polling reporting.
DAILY, MONTHLY True when this source is routed through an official Scope3-hosted adapter (storefront routing_mode is ADAPTER and the source_id matches the configured adapter). When true, the UI labels this as an official adapter rather than a generic external sales agent.