Skip to content
admin

/api/v1/admin/participant (POST)

POST
/api/v1/admin/participant
curl --request POST \
--url https://dpg.example.com/api/v1/admin/participant \
--header 'Content-Type: application/json' \
--header 'x-acting-org-id: example' \
--header 'x-api-key: <x-api-key>' \
--data '{ "email": "hello@example.com", "phone_number": "example", "name": "example", "date_of_birth": "2026-04-15", "terms_accepted": true, "privacy_accepted": true, "channel": "bulk", "source_id": "example", "item_state": { "additionalProperty": "example" }, "item_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "network": "example", "domain": "example", "item_type": "example" }'
x-acting-org-id
required
string

Organization this request acts on behalf of. Required for admin/aggregator operations.

Media typeapplication/json
object
email
string format: email
/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/
phone_number
string
/^\+\d{10,15}$/
name
required
string
>= 1 characters
date_of_birth
Any of:
string format: date
/^(?:(?:\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])))$/
terms_accepted
required
boolean
privacy_accepted
required
boolean
channel
required
string
Allowed values: bulk link voice self
source_id
string
>= 1 characters
item_state

Payload written to the items table; if absent OR an empty object {}, the route enters account_only mode (only the user is created/looked up, no item is written).

object
key
additional properties
item_id

UUID. Only meaningful when acting_org is network_service AND user already exists. Targets that specific item for a PATCH-style update. Ignored otherwise.

string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
network

Network id (default: ‘blue_dot’). Set when this Signals instance serves a different network.

string
>= 1 characters
domain

Domain within the network (default: ‘seeker’).

string
>= 1 characters
item_type

Schema-typed item_type for the item (default: ‘profile_1.0’).

string
>= 1 characters

Default Response

Media typeapplication/json
object
user_id
required
string
user_existed
required
boolean
owned_elsewhere
required
boolean
onboarded_at
required
string format: date-time
nullable /^(?:(?:\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))$/
items
required
Array<object>
object
item_id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
item_network
required
string
item_domain
required
string
item_type
required
string
item_state
required
object
key
additional properties
item_locations
required
Array<object>
object
lat
required
number
>= -90 <= 90
lng
required
number
>= -180 <= 180
label
string
created_at
required
string format: date-time
/^(?:(?:\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))$/
updated_at
required
string format: date-time
/^(?:(?:\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))$/
Examplegenerated
{
"user_id": "example",
"user_existed": true,
"owned_elsewhere": true,
"onboarded_at": "2026-04-15T12:00:00Z",
"items": [
{
"item_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"item_network": "example",
"item_domain": "example",
"item_type": "example",
"item_state": {
"additionalProperty": "example"
},
"item_locations": [
{
"lat": 1,
"lng": 1,
"label": "example"
}
],
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z"
}
]
}