Operator endpoints
Register and retrieve operator profiles
Create Operator
POST /api/operators
Register a new operator and receive a UUID. This UUID is required as operator_uuid when submitting flight requests.
Request Body (JSON)
{
"company_name": "Drone Operations BV",
"email": "info@droneops.nl",
"password": "SecurePass123",
"phone": "+31612345678",
"operational_authorisation_number": "NL-AUTH-12345",
"operator_registration_number": "NLD-OP-2026-0042",
"exemption_for_ctr": true,
"ctr_exemption_number": "CTR-2026-0087",
"timezone": "Europe/Amsterdam"
}
Required Fields
| Field | Type | Description |
|---|---|---|
| company_name | string | Operator company name (max 255 characters) |
| string | Contact email address (must be unique) | |
| password | string | Account password (min 8 characters) |
| phone | string | Contact phone number (max 50 characters) |
Optional Fields
| Field | Type | Description |
|---|---|---|
| operational_authorisation_number | string | Operational authorisation number |
| operator_registration_number | string | National operator registration number |
| exemption_for_ctr | boolean | Whether the operator holds a CTR exemption (default: false) |
| ctr_exemption_number | string | CTR exemption reference number (required if exemption_for_ctr is true) |
| timezone | string | IANA timezone name (e.g. Europe/Amsterdam). See Supported Timezones |
Response (201)
{
"data": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"company_name": "Drone Operations BV",
"email": "info@droneops.nl",
"phone": "+31612345678",
"operational_authorisation_number": "NL-AUTH-12345",
"operator_registration_number": "NLD-OP-2026-0042",
"exemption_for_ctr": true,
"ctr_exemption_number": "CTR-2026-0087",
"timezone": "Europe/Amsterdam",
"created_at": "2026-02-09T14:30:00+00:00",
"updated_at": "2026-02-09T14:30:00+00:00"
}
}
The uuid field is the operator's public identifier — store it and use it as operator_uuid when submitting flight requests.
Error Response (422)
Returned when validation fails, for example when the email is already registered or required fields are missing.
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
],
"company_name": [
"The company name field is required."
]
}
}
Get Operator
GET /api/operators/{uuid}
Retrieve the operator profile for a given UUID.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| uuid | uuid | The operator's UUID (returned by Create Operator) |
Response (200)
{
"data": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"company_name": "Drone Operations BV",
"email": "info@droneops.nl",
"phone": "+31612345678",
"operational_authorisation_number": "NL-AUTH-12345",
"operator_registration_number": "NLD-OP-2026-0042",
"exemption_for_ctr": true,
"ctr_exemption_number": "CTR-2026-0087",
"timezone": "Europe/Amsterdam",
"created_at": "2026-02-09T14:30:00+00:00",
"updated_at": "2026-02-09T14:30:00+00:00"
}
}
Error Response (404)
Returned when no operator exists for the given UUID.
Supported Timezones
The timezone field accepts any IANA timezone identifier. Common examples:
| Timezone | UTC Offset |
|---|---|
| Europe/Amsterdam | +01:00 |
| Europe/London | +00:00 |
| Europe/Berlin | +01:00 |
| Europe/Paris | +01:00 |
| America/New_York | −05:00 |
| Asia/Tokyo | +09:00 |
| UTC | +00:00 |
If omitted, no timezone is set on the operator record. A full list of supported values is available from the API team.