Submit a public participant registration
const url = 'https://aggregator.example.com/public/v1/aggregators/example/registrations/example';const options = {method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Aggregator organisation slug.
Registration link slug.
Request Bodyrequired
Section titled “Request Bodyrequired”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.
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
Examplegenerated
{}Responses
Section titled “Responses”Default Response
object
‘passed’
Example
{ "lifecycle_status": "draft"}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}Default Response
object
‘skipped’
Example
{ "lifecycle_status": "draft"}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}Default Response
object
object
object
Examplegenerated
{ "error": { "code": "example", "title": "example", "detail": "example", "docs": "example", "fields": { "additionalProperty": "example" }, "requestId": "example", "timestamp": "example" }}
