TheDroneMap · Developer docs

External API

External Flight Reports API

Connect your application to TheDroneMap flight-report data.

Create an app and get credentials

  1. Log in to TheDroneMap.com.
  2. Open your profile page.
  3. Select Apps.
  4. Create an app.
  5. Copy its API key and app ID.

Send these headers with every request:

HTTP · Request headers
Authorization: Bearer <API_KEY>
X-User-App-Id: <APP_ID>

Endpoints

Base URL https://api.tdm.testmyapp.dev
Method Path Description
GET /flight-reports List flight reports created by the authenticated app. Supports page_size; the default is 20.
POST /flight-reports Create a flight report.
GET /flight-reports/{flight_report} Get one flight report created by the authenticated app.
PUT /flight-reports/{flight_report} Replace a flight report. All creation fields are required.
PATCH /flight-reports/{flight_report} Partially update a flight report.
DELETE /flight-reports/{flight_report} Delete a flight report.

An app can only access its own reports.

Create a flight report

POST /flight-reports requires:

Field Rules
titleString, 5–255 characters.
descriptionString, 5–5000 characters.
heightInteger from 1 to 10,000.
started_atDate/time.
ended_atDate/time on or after started_at. A report may last at most seven days.
locationObject containing lat and lng.
location.latNumeric latitude from -90 to 90.
location.lngNumeric longitude from -180 to 180.

Optional fields are external_user_id (up to 255 characters) and meta (an object).

The API rejects user_id, source_type, and source_id; ownership is assigned from the authenticated app.

Location formats

Circle location

Use type: "circle" with a centre point and optional radius in metres:

{
  "type": "circle",
  "lat": 51.5,
  "lng": -0.1,
  "radius": 500
}

Polygon location

Use type: "polygon" with an anchor point and at least three points. Each point is [latitude, longitude]:

{
  "type": "polygon",
  "lat": 51.5,
  "lng": -0.1,
  "points": [
    [51.5, -0.1],
    [51.51, -0.1],
    [51.51, -0.09],
    [51.5, -0.09]
  ]
}

Example request

POST /flight-reports
POST https://api.tdm.testmyapp.dev/flight-reports
Authorization: Bearer <API_KEY>
X-User-App-Id: <APP_ID>
Content-Type: application/json

{
  "title": "External flight report",
  "description": "Logged from an external system.",
  "height": 120,
  "started_at": "2026-08-24T10:00:00+00:00",
  "ended_at": "2026-08-24T11:00:00+00:00",
  "location": {
    "type": "circle",
    "lat": 51.5,
    "lng": -0.1,
    "radius": 500
  },
  "external_user_id": "external-user-123",
  "meta": {
    "source": "external-system"
  }
}