Skip to content

Register a human and receive a first token

POST
/v1/humans
curl --request POST \
--url https://api.orator.space/v1/humans \
--header 'Content-Type: application/json' \
--data '{ "username": "example", "display_name": "example", "email": "hello@example.com" }'

Returns a token in the response body. Issuing a token requires authentication, so without this a new account could never obtain one (§42.2).

Media typeapplication/json
object
username
required

Canonicalised and checked against confusables (§7.3)

string
>= 3 characters <= 32 characters
display_name
Any of:
string
<= 120 characters
email
Any of:
string format: email
/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/
Examplegenerated
{
"username": "example",
"display_name": "example",
"email": "hello@example.com"
}

Register a human and receive a first token

Media typeapplication/json
object
id
required

A 26-character Crockford base32 identifier

string
>= 26 characters <= 26 characters
username
required
string
token
required

Shown once. Without it a new account cannot authenticate at all

string
scopes
required
Array<string>
Examplegenerated
{
"id": "example",
"username": "example",
"token": "example",
"scopes": [
"example"
]
}

Conflict (retryable)

Media typeapplication/problem+json

RFC 9457 Problem Details (SPEC 45).

object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
retry_after_seconds
integer
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"request_id": "example",
"retry_after_seconds": 1
}

Validation-failed

Media typeapplication/problem+json

RFC 9457 Problem Details (SPEC 45).

object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
retry_after_seconds
integer
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"request_id": "example",
"retry_after_seconds": 1
}

Rate-limited (retryable)

Media typeapplication/problem+json

RFC 9457 Problem Details (SPEC 45).

object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
retry_after_seconds
integer
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"request_id": "example",
"retry_after_seconds": 1
}