API REFERENCE

Register pending business owner

POST/api/v1/auth/register

Creates pending administrator identity/business/membership and queued verification email atomically. Operational login is unavailable until verification. Default initial zone UTC. Link targets admin ?verify_token=... . Limit 5 requests per connection IP per 60 seconds.

Authentication

No bearer token required. This does not remove validation or rate limits.

Parameters

No path or query parameters.

Request

FieldTypeDescription & constraints
emailRequiredstringAccount email address.Format: email · Max length: 254
passwordRequiredstringPrivate chosen password; never expose it in client bundles or logs.Min length: 12 · Max length: 128 · Write only
display_nameRequiredstringResource-specific value; see the related workflow and schema.Min length: 1 · Max length: 120
business_nameRequiredstringResource-specific value; see the related workflow and schema.Min length: 1 · Max length: 120

Example JSON body

{
  "email": "dispatcher@example.com",
  "password": "Example-passphrase-42!",
  "display_name": "Alex",
  "business_name": "Example Services"
}
Request schema
{
  "$ref": "#/components/schemas/RegisterRequest"
}

Example request

Replace synthetic identifiers and credentials. Example dates, coordinates, revisions, and IDs are not production defaults. Read the workflow guide before making a write.

curl --request POST 'https://route-api.okok.space/api/v1/auth/register' \
  --header 'Content-Type: application/json' \
  --data '{"email":"dispatcher@example.com","password":"Example-passphrase-42!","display_name":"Alex","business_name":"Example Services"}' \
  --output response.bin

Responses

Examples illustrate the documented shape; optional fields and current state can differ. JSON extraction/body-limit errors may be plain text.

202 · Successful response.

application/json

FieldTypeDescription & constraints
messageRequiredstringResource-specific value; see the related workflow and schema.
Illustrative response
{
  "message": "example"
}
Response schema
{
  "$ref": "#/components/schemas/Message"
}

400 · Axum extraction rejects invalid JSON/type, oversized body, or malformed UUID before the domain handler. These responses may be text/plain rather than the domain Error object.

text/plain

Binary response. Save the returned bytes to a file; do not parse as JSON.

409 · Conflict, including an existing registration email.

application/json

FieldTypeDescription & constraints
errorRequiredobjectResource-specific value; see the related workflow and schema.
error fields
FieldTypeDescription & constraints
error.codeRequiredvalidation | unauthorized | not_found | conflict | unavailable | rate_limitedPrivate activation or recovery code supplied to the driver.
error.messageRequiredstringResource-specific value; see the related workflow and schema.
Illustrative response
{
  "error": {
    "code": "conflict",
    "message": "Conflict, including an existing registration email."
  }
}
Response schema
{
  "$ref": "#/components/schemas/Error"
}

413 · Axum extraction rejects invalid JSON/type, oversized body, or malformed UUID before the domain handler. These responses may be text/plain rather than the domain Error object.

text/plain

Binary response. Save the returned bytes to a file; do not parse as JSON.

415 · Axum extraction rejects invalid JSON/type, oversized body, or malformed UUID before the domain handler. These responses may be text/plain rather than the domain Error object.

text/plain

Binary response. Save the returned bytes to a file; do not parse as JSON.

422 · Domain validation failure; names are trimmed and emails normalized.

application/json

FieldTypeDescription & constraints
errorRequiredobjectResource-specific value; see the related workflow and schema.
error fields
FieldTypeDescription & constraints
error.codeRequiredvalidation | unauthorized | not_found | conflict | unavailable | rate_limitedPrivate activation or recovery code supplied to the driver.
error.messageRequiredstringResource-specific value; see the related workflow and schema.
Illustrative response
{
  "error": {
    "code": "validation",
    "message": "Domain validation failure; names are trimmed and emails normalized."
  }
}
Response schema
{
  "$ref": "#/components/schemas/Error"
}

429 · Connection-address request limit reached. Retry after the stated interval.

application/json

FieldTypeDescription & constraints
errorRequiredobjectResource-specific value; see the related workflow and schema.
error fields
FieldTypeDescription & constraints
error.codeRequiredvalidation | unauthorized | not_found | conflict | unavailable | rate_limitedPrivate activation or recovery code supplied to the driver.
error.messageRequiredstringResource-specific value; see the related workflow and schema.
Illustrative response
{
  "error": {
    "code": "rate_limited",
    "message": "Connection-address request limit reached. Retry after the stated interval."
  }
}
Response schema
{
  "$ref": "#/components/schemas/Error"
}

503 · Required persistence or credential operation unavailable.

application/json

FieldTypeDescription & constraints
errorRequiredobjectResource-specific value; see the related workflow and schema.
error fields
FieldTypeDescription & constraints
error.codeRequiredvalidation | unauthorized | not_found | conflict | unavailable | rate_limitedPrivate activation or recovery code supplied to the driver.
error.messageRequiredstringResource-specific value; see the related workflow and schema.
Illustrative response
{
  "error": {
    "code": "unavailable",
    "message": "Required persistence or credential operation unavailable."
  }
}
Response schema
{
  "$ref": "#/components/schemas/Error"
}
← All endpointsIntegration workflows →