API REFERENCE

Create another isolated business

POST/api/v1/businesses

Verified administrator identity becomes administrator of the new active business. Uses existing verified identity; does not re-register credentials.

Authentication

Requires an authorized administrator bearer session; business membership rules apply. Do not assume an integration key can replace an account session.

Parameters

No path or query parameters.

Request

FieldTypeDescription & constraints
nameRequiredstringHuman-readable name shown in the workspace.Min length: 1 · Max length: 120
time_zoneRequiredstringResource-specific value; see the related workflow and schema.

Example JSON body

{
  "name": "Example Services",
  "time_zone": "Europe/Warsaw"
}
Request schema
{
  "$ref": "#/components/schemas/BusinessWrite"
}

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/businesses' \
  --header 'Authorization: Bearer REPLACE_WITH_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"name":"Example Services","time_zone":"Europe/Warsaw"}' \
  --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.

201 · Successful response.

application/json

FieldTypeDescription & constraints
idRequiredstringIdentifier unique within its authorized business. Some create operations generate it when omitted.Format: uuid
nameRequiredstringHuman-readable name shown in the workspace.
time_zoneRequiredstringNamed IANA time zone, validated by the backend.
deleted_atstring | nullSystem-managed UTC soft-deletion instant; null for active records.Format: date-time
deleted_bystring | nullDeletion actor retained for history.Format: uuid
Illustrative response
{
  "id": "11111111-1111-4111-8111-111111111111",
  "name": "Example Services",
  "time_zone": "Europe/Warsaw",
  "deleted_at": "2026-11-02T09:00:00Z",
  "deleted_by": "11111111-1111-4111-8111-111111111111"
}
Response schema
{
  "$ref": "#/components/schemas/Business"
}

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.

401 · Invalid credentials, missing bearer token, or expired/unverified session.

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": "unauthorized",
    "message": "Invalid credentials, missing bearer token, or expired/unverified session."
  }
}
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"
}

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 →