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)

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)
email 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)

JSON
{
    "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.

JSON
{
    "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)

JSON
{
    "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.