POST /api/v2/storefront/signals
Registers a signal so it can be deployed and surfaced to buyers. You set the key types and regions at creation; keyType and regions are immutable afterward. Use access records to control visibility (PUBLIC or PROPRIETARY) and optional per-seat pricing.
Request
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
signalId | string | Yes | Caller-supplied stable identifier. Pattern ^[\w\-:.]+$, max 255. Immutable |
name | string | Yes | Human-readable name (max 255) |
keyType | string[] | Yes | Identifiers the segment is keyed on. At least one of property, postal_code, uk_postal_district, maid, rampid, lat_long_radius, id5, coreid, yahoo_connect, uid2, euid, pairid, url. Immutable |
agentId | string | No | Owning signals agent (for agent-managed signals) |
description | string | No | What the segment represents (max 5000) |
regions | string[] | No | Availability regions: NORAM, LATAM, EMEA, APAC, ANZ, GLOBAL (max 6). Immutable |
metadata | object | No | Free-form key/value metadata |
access | object[] | No | Access records. Each requires seatId (int64) and visibility (PUBLIC or PROPRIETARY); optional price |
isLive | boolean | No | Whether the signal is deployed and accepting buys. Default false |
Response
id and the string signalId are both returned. Pass signalId to every sibling operation.
Errors
400 VALIDATION_ERROR— missingsignalId,name, orkeyType; malformedsignalId; or an emptykeyTypearray.401 UNAUTHORIZED— missing or invalid bearer token.
Related
Signal tasks
All signal operations
Signal overview
Fields, lifecycle, and concepts
Update signal
Change metadata and access records
Discover signals
Find external segments from agents