Skip to content
public-registration

Submit a public participant registration

POST
/public/v1/aggregators/{orgSlug}/registrations/{slug}
curl --request POST \
--url https://aggregator.example.com/public/v1/aggregators/example/registrations/example \
--header 'Content-Type: application/json' \
--data '{}'

Public endpoint reached by the QR-link registration form. Validates the submission against the link’s domain schema (runtime Ajv — the body shape is dynamic per network/domain), creates the participant + user, and pushes to signalstack. Returns 201 on success, 409 (outcome:‘skipped’) when the phone/email is already registered with this aggregator, and 429 when the per-link rate limit trips.

orgSlug
required
string
>= 1 characters

Aggregator organisation slug.

slug
required
string
>= 1 characters

Registration link slug.

Dynamic registration payload validated at runtime against the link domain’s participant JSON Schema (identity fields such as name/phone/email plus profile fields). consent_terms / consent_privacy are accepted on account_only links.

Media typeapplication/json

Dynamic registration payload validated at runtime against the link domain’s participant JSON Schema (identity fields such as name/phone/email plus profile fields). consent_terms / consent_privacy are accepted on account_only links.

object
key
additional properties
any
Examplegenerated
{}

Default Response

Media typeapplication/json
object
outcome
required

‘passed’

string
submission_id
string
registration_mode
required
string
submission_shape
required
string
lifecycle_status
required
string
nullable
Allowed values: draft live paused
owned_elsewhere
required
boolean
key
additional properties
any
Example
{
"lifecycle_status": "draft"
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
outcome
required

‘skipped’

string
submission_id
string
registration_mode
required
string
submission_shape
required
string
lifecycle_status
required
string
nullable
Allowed values: draft live paused
owned_elsewhere
required
boolean
message
required
string
key
additional properties
any
Example
{
"lifecycle_status": "draft"
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}

Default Response

Media typeapplication/json
object
error
required
object
code
required
string
title
required
string
detail
required
string
docs
string
fields
object
key
additional properties
requestId
required
string
timestamp
required
string
key
additional properties
any
key
additional properties
any
Examplegenerated
{
"error": {
"code": "example",
"title": "example",
"detail": "example",
"docs": "example",
"fields": {
"additionalProperty": "example"
},
"requestId": "example",
"timestamp": "example"
}
}