> For the complete documentation index, see [llms.txt](https://learn.spexi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.spexi.com/api-reference/tasking-api.md).

# Tasking API

The Tasking API lets you request new drone captures of an area of interest and track their progress from submission through delivery. Submit an order specifying the area, the products you need, and your customer details - then follow each product through its lifecycle.

### Endpoints

* [Submit Tasking Order](/api-reference/tasking-api/submit-tasking-order.md) - create a new capture request
* [Get Tasking Order Details](/api-reference/tasking-api/list-tasking-order-details.md) - fetch full details for a single order
* [List Tasking Orders](/api-reference/tasking-api/list-all-tasking-orders.md) - list and filter orders for your organization

### Area of Interest

An order's area is defined one of two ways, never both: a list of H3 **`zones`**, or a GeoJSON **`geometry`** polygon.

### Products

Each order requests one or more products. Every product on an order is tracked independently and moves through its own status lifecycle.

### Order Product Status Lifecycle

Each product on an order moves independently through this lifecycle:

<table data-search="false"><thead><tr><th>Status</th><th>Definition</th></tr></thead><tbody><tr><td><mark style="background-color:$info;"><code>submitted</code></mark></td><td>Order received, not yet reviewed</td></tr><tr><td><mark style="background-color:cyan;"><code>in_review</code></mark></td><td>Spexi is reviewing the request</td></tr><tr><td><mark style="background-color:orange;"><code>feasibility_check</code></mark></td><td>Assessing whether the capture is achievable (site access, airspace, terrain, etc.)</td></tr><tr><td><mark style="background-color:orange;"><code>pending_confirmation</code></mark></td><td>Awaiting customer confirmation before mission planning begins</td></tr><tr><td><mark style="background-color:orange;"><code>in_planning</code></mark></td><td>Mission planning in progress</td></tr><tr><td><mark style="background-color:blue;"><code>capture_in_progress</code></mark></td><td>Pilots are actively capturing the area</td></tr><tr><td><mark style="background-color:violet;"><code>processing</code></mark></td><td>Captured data is being stitched/processed into the final product</td></tr><tr><td><mark style="background-color:violet;"><code>qa</code></mark></td><td>Product is in quality review before delivery</td></tr><tr><td><mark style="background-color:green;"><code>delivered</code></mark></td><td>Product delivered</td></tr><tr><td><mark style="background-color:$info;"><code>cancelled</code></mark></td><td>Order product was cancelled</td></tr><tr><td><mark style="background-color:$info;"><code>unfulfillable</code></mark></td><td>Spexi determined the product can't be completed (e.g. failed feasibility)</td></tr></tbody></table>

The `status` filter on [**List Tasking Orders**](/api-reference/tasking-api/list-all-tasking-orders.md) uses this lifecycle: `current` matches orders with at least one product not yet in a terminal state, `past` matches orders where every product has reached `delivered`, `cancelled`, or `unfulfillable`.

### Authentication

All tasking endpoints accept an API key via the `x-api-key` header or the `api_key` query parameter.&#x20;
