Skip to main content

API Reference

DroneDB Registry exposes a REST API for programmatic access to all features. All endpoints return JSON unless otherwise specified.

Interactive Documentation

Access the interactive API documentation at /scalar/v1 on your Registry instance (e.g., hub.dronedb.app/scalar/v1).

Authentication

Most endpoints require JWT authentication. Obtain a token via the authenticate endpoint:

POST /users/authenticate
Content-Type: application/json

{
"userName": "admin",
"password": "password"
}

Use the token in subsequent requests:

Authorization: Bearer <token>

Tokens can be refreshed before expiration:

POST /users/authenticate/refresh
Authorization: Bearer <token>

Organizations

Base Route: /orgs

MethodEndpointDescription
GET/orgsList all organizations
GET/orgs/publicList public organizations (no auth required)
GET/orgs/{orgSlug}Get organization details
POST/orgsCreate organization
PUT/orgs/{orgSlug}Update organization
DELETE/orgs/{orgSlug}Delete organization

Datasets

Base Route: /orgs/{orgSlug}/ds

MethodEndpointDescription
GET/orgs/{orgSlug}/dsList all datasets in organization
GET/orgs/{orgSlug}/ds/{dsSlug}Get dataset entries
GET/orgs/{orgSlug}/ds/{dsSlug}/exGet extended dataset info
GET/orgs/{orgSlug}/ds/{dsSlug}/stampGet dataset checksum and metadata
POST/orgs/{orgSlug}/dsCreate dataset
PUT/orgs/{orgSlug}/ds/{dsSlug}Update dataset
DELETE/orgs/{orgSlug}/ds/{dsSlug}Delete dataset
POST/orgs/{orgSlug}/ds/{dsSlug}/renameRename dataset
POST/orgs/{orgSlug}/ds/{dsSlug}/chattrChange attributes (visibility)

Objects

Base Route: /orgs/{orgSlug}/ds/{dsSlug}

Listing & Searching

MethodEndpointDescription
GET.../list?path=List objects at path
POST.../listList objects (POST version)
POST.../searchSearch objects in dataset
GET.../obj?path=Get object info

Upload & Modification

MethodEndpointDescription
POST.../objUpload object (multipart form)
PUT.../objMove/rename object
DELETE.../obj?path=Delete object
DELETE.../obj/batchDelete multiple objects

Download

MethodEndpointDescription
GET.../download?path=Download object(s)
POST.../downloadDownload objects (POST version)
GET.../ddbDownload DroneDB index file

Visualization

MethodEndpointDescription
GET.../thumb?path=Generate thumbnail
GET.../tiles/{tz}/{tx}/{ty}.pngGenerate map tile
GET.../build/{hash}/*Get build files (COG, NXS, EPT)

Build Jobs

MethodEndpointDescription
POST.../buildStart build job for object
GET.../buildsList build jobs (paginated)
POST.../builds/clearClear completed build jobs

Share

Base Route: /share

The Share API enables file uploads via the DroneDB CLI (ddb share).

MethodEndpointDescription
POST/share/initInitialize share session
GET/share/{token}Get share batch info
POST/share/{token}/uploadUpload file to share
POST/share/{token}/upload/chunkedUpload large file in chunks
POST/share/{token}/commitFinalize share
POST/share/{token}/rollbackCancel share

Push

Base Route: /orgs/{orgSlug}/ds/{dsSlug}/push

The Push API enables syncing local datasets to Registry via the DroneDB CLI (ddb push).

MethodEndpointDescription
POST.../push/initInitialize push operation
POST.../push/uploadUpload file during push
POST.../push/metaUpload metadata
POST.../push/commitFinalize push

Metadata

Base Route: /orgs/{orgSlug}/ds/{dsSlug}/meta

MethodEndpointDescription
GET.../meta/listList all metadata keys
GET.../meta/{key}Get metadata values by key
POST.../meta/{key}Add metadata entry
POST.../meta/{key}/setSet/replace metadata
DELETE.../meta/{key}Remove all metadata with key
DELETE.../meta/{id}Remove specific metadata entry
POST.../meta/dumpExport all metadata

Users

Base Route: /users

Authentication

MethodEndpointDescription
POST/users/authenticateLogin (returns JWT)
POST/users/authenticate/refreshRefresh JWT token

User Management (Admin)

MethodEndpointDescription
GET/usersList all users
GET/users/detailedList users with extended info
POST/usersCreate user
PUT/users/{userName}Update user
DELETE/users/{userName}Delete user

Password Management

MethodEndpointDescription
POST/users/changepwdChange current user password
PUT/users/{userName}/changepwdChange user password (admin)

Roles

MethodEndpointDescription
GET/users/rolesList all roles
POST/users/roles/{roleName}Create role (admin)
DELETE/users/roles/{roleName}Delete role (admin)

Storage & Metadata

MethodEndpointDescription
GET/users/storageGet current user storage info
GET/users/{userName}/storageGet user storage info (admin)
GET/users/{userName}/metaGet user metadata
POST/users/{userName}/metaSet user metadata (admin)

Organizations

MethodEndpointDescription
GET/users/{userName}/orgsGet user's organizations
PUT/users/{userName}/orgsSet user's organizations (admin)

STAC

The STAC (SpatioTemporal Asset Catalog) API provides standardized access to public datasets.

MethodEndpointDescription
GET/stacRoot STAC Catalog
GET/orgs/{orgSlug}/ds/{dsSlug}/stacDataset STAC Collection

Browse STAC catalogs with tools like STAC Browser.

System

Base Route: /sys

MethodEndpointDescription
GET/sys/versionGet Registry version
POST/sys/importdatasetImport dataset from another Registry
POST/sys/importorgImport organization from another Registry
POST/sys/cleanupbatchesCleanup expired batches
POST/sys/cleanupdatasetsCleanup empty datasets
POST/sys/move-datasetsMove datasets between orgs (admin)
POST/sys/merge-orgsMerge organizations (admin)

Health Checks

EndpointDescription
/versionApplication version (no auth)
/quickhealthBasic health check (requires auth)
/healthFull health check (requires auth)

Error Responses

API errors return JSON with the following structure:

{
"error": "Error message description"
}

Common HTTP status codes:

  • 400 - Bad Request (invalid parameters)
  • 401 - Unauthorized (missing or invalid token)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Not Found
  • 500 - Internal Server Error