πŸ“œAPI Endpoints Overview

This document tracks all active RESTful endpoints in the UDAI API. For detailed request schemas, response codes, and business logic, click on the respective documentation links.

1. πŸ” Authentication APIs

00. πŸ” Access Control

Docs: Access Control Matrix

  • Explains the strict 12-module Access Matrix mapping endpoints to users

  • Details Context-Based Access Control (CBAC) ownership rules

  • Details Role-Based Access Control (RBAC) membership rules (Owner, Admin, Member)

  • Maps the 7 different org_type classifications to permissions

01. 🌐 Base URL & Common Responses

Docs: Hostname & Error Codes

  • Outlines the primary REST endpoints for STG, UAT, and PROD

  • Defines the unified error schema required for all 4xx and 5xx responses

  • Maps HTTP status codes used globally across the API

02. πŸ”‘ Authentication Endpoints

Docs: Authentication APIarrow-up-right

  • POST /auth/register β€” Register a new user and create an associated organisation

  • POST /auth/verify/send-otp β€” Send verification OTP to unverified email/phone

  • POST /auth/verify β€” Verify email/phone using OTP

  • POST /auth/login/send-otp β€” Send OTP for password-less login

  • POST /auth/login-password β€” Authenticate using password

  • POST /auth/login-otp β€” Authenticate using OTP

  • POST /auth/logout β€” Invalidate current access token

  • POST /auth/refresh-token β€” Issue new access token using refresh token

  • POST /auth/forgot-password β€” Send password reset link

  • POST /auth/change-password β€” Change password for authenticated user

03. πŸ‘€ User Management Endpoints

Docs: User Management API

Header Required: X-Organization-ID

  • GET /users β€” Get all members of the organisation

  • GET /users/{user_uuid} β€” Get specific member's details

  • PUT /users/{user_uuid}/role β€” Update a member's role

  • DELETE /users/{user_uuid} β€” Set member's org validation status to INACTIVE

  • PUT /users/{user_uuid} β€” Update the authenticated user's own profile

  • POST /users/{user_uuid}/pilot-creds β€” Create or update the user's pilot credentials

  • GET /users/{user_uuid}/pilot-creds β€” Return the user's pilot credentials

04. 🏒 Organisation Endpoints

Docs: Organisation API

  • GET /organisations/{org_uuid} β€” Get current user's organisation details

  • PUT /organisations/{org_uuid} β€” Update organisation details

05. 🀝 Organisation Membership Endpoints

Docs: Membership API

Header Required: X-Organization-ID

  • POST /users/invite β€” Invite one or multiple users to the organisation

  • POST /users/invite/accept β€” Accept or decline a pending invitation

  • GET /invitations β€” Get all invitations sent by the organisation

  • GET /invitations/{invitation_uuid} β€” Get details of a specific invitation

  • DELETE /invitations/{invitation_uuid} β€” Revoke a pending invitation

  • DELETE /memberships β€” Remove active members (soft-delete to INACTIVE)

2. 🚁 Fleet APIs

06. 🚁 Drone Model Endpoints

Docs: Drone Model APIarrow-up-right

Header Required: X-Organization-ID

  • POST /drone-models β€” Create a new drone model

  • GET /drone-models β€” Get all drone models from manufacturer

  • GET /drone-models/{drone_uuid} β€” Get details of a specific drone model

  • PUT /drone-models/{model_uuid} β€” Update a drone model

  • DELETE /drone-models/{drone_uuid} β€” Update drone model status to INACTIVE

07. πŸ“¦ Payload Endpoints

Docs: Payload APIarrow-up-right

Header Required: X-Organization-ID

  • POST /payloads β€” Register a physical payload

  • GET /payloads β€” Get all payloads owned by organisation

  • GET /payloads/{payload_uuid} β€” Get specific payload details

  • PUT /payloads/{payload_uuid} β€” Update specific payload details

  • DELETE /payloads/{payload_uuid} β€” Remove the payload (soft-delete to INACTIVE)

08. 🚁 Drone Endpoints

Docs: Drone APIarrow-up-right

Header Required: X-Organization-ID

  • POST /drones β€” Register a single drone into the organisation

  • POST /drones/bulk β€” Register multiple drones in bulk

  • GET /drones β€” Get all drones owned by organisation

  • GET /drones/{drone_uuid} β€” Get specific drone details

  • PUT /drones/{drone_uuid} β€” Update specific drone details

  • DELETE /drones/{drone_uuid} β€” Remove the drone (soft-delete to INACTIVE)

09. πŸ”„ Drone Ownership Endpoints

Docs: Drone Ownership APIarrow-up-right

Header Required: X-Organization-ID

  • POST /drone-transfer β€” Initiate a transfer (single or bulk)

  • POST /drone-transfers/accept β€” Accept or reject a pending drone transfer

  • GET /drone-transfers β€” List all transfer requests for org

  • GET /drone-transfers/{transfer_uuid} β€” Get details of a specific transfer

  • GET /drone-ownership β€” List all active/inactive drone ownerships

  • GET /drone-ownership/{ownership_uuid} β€” Get details of a specific ownership record

  • DELETE /drone-ownership/{ownership_uuid} β€” Revoke an active drone ownership

3. πŸ“‹ Mission APIs

10. πŸ“‹ Mission Endpoints

Docs: Mission APIarrow-up-right

Header Required: X-Organization-ID

  • POST /missions β€” Create a new mission

  • GET /missions β€” Get all missions

  • GET /missions/{mission_uuid} β€” Get specific mission details

  • PUT /missions/{mission_uuid} β€” Update a mission

  • DELETE /missions/{mission_uuid} β€” Soft delete mission (update status to INACTIVE)

  • POST /permissions?parent_type=MISSION&parent_uuid=\{mission_uuid\} β€” Request access to an airspace segment for this mission

  • PUT /permissions/\{permission_uuid\} β€” Grant or deny access to a specific airspace segment

  • POST /flight-plans?mission_uuid=\{mission_uuid\} β€” Create a flight plan under a mission

  • GET /flight-plans?mission_uuid=\{mission_uuid\} β€” Get all flight plans for a mission

  • GET /flight-plans/\{plan_uuid\} β€” Get specific flight plan details

  • PUT /flight-plans/\{plan_uuid\} β€” Update a flight plan

  • POST /permissions?parent_type=FLIGHT_PLAN&parent_uuid=\{plan_uuid\} β€” Request access to an airspace segment for a flight plan

  • PUT /permissions/\{permission_uuid\} β€” Grant or deny access to a specific airspace segment for flight plan

  • GET /flight-plans/log?s β€” Get combined list of all flight plans

4. πŸ“Š Telemetry APIs

11. πŸ•’ Flight Sessions and Data

Docs: Flight Sessions APIarrow-up-right

Header Required: X-Organization-ID

  • POST /flight-sessions β€” Initiate a new flight session (ad-hoc or planned)

  • GET /flight-sessions β€” Get all flight sessions

  • GET /flight-sessions/{session_uuid} β€” Get specific flight session details

  • POST /flight-sessions/{session_uuid}/telemetry β€” Submit Live Telemetry (Placeholder)

12. πŸ›°οΈ Airspace Monitoring Management Endpoints

Docs: Airspace Monitoring APIarrow-up-right

Header Required: X-Organization-ID

  • GET /airspace/drones/{drone_uuid} β€” Get detailed drone information for monitoring

  • GET /airspace/drones/{drone_uuid}/plans β€” Get all flight plans associated with a drone

  • GET /airspace/drones/{drone_uuid}/plans/{plan_uuid} β€” Get details of a specific flight plan for a drone

  • POST /airspace/drones/{drone_uuid}/alert β€” Trigger or log a flight alert or incident

5. πŸ—ΊοΈ Airspace APIs

13. πŸ—ΊοΈ Airspace Zone Endpoints

Docs: Airspace Zone APIarrow-up-right

  • POST /airspaces β€” Create a new airspace zone

  • GET /airspaces β€” List all airspace zones

  • GET /airspaces/{zone_uuid} β€” Get specific zone details

  • PUT /airspaces/{zone_uuid} β€” Update a zone

14. πŸ—ΊοΈ Airspace Zone Membership Endpoints

Docs: Airspace Zone Memberships APIarrow-up-right

  • POST /airspaces/{zone_uuid}/memberships β€” Link an org to a zone as Manager/Monitor

  • GET /airspaces/{zone_uuid}/memberships β€” Get all memberships for a specific zone

  • GET /airspace-memberships β€” List all zones an organisation is linked to

  • DELETE /airspaces/{zone_uuid}/memberships/{membership_uuid} β€” Remove an organisation's link (soft-delete to INACTIVE)

15. 🧱 Constraint Engine Endpoints

Docs: Constraint Engine APIarrow-up-right

  • POST /constraints β€” Create a new spatial constraint

  • GET /constraints/{constraint_uuid} β€” Get specific constraint details

  • POST /constraints/intersect β€” Query constraints by geospatial intersection

Last updated