---
title: WebODM Documentation
language_tabs:
- json
toc_footers:
- WebODM on GitHub
- OpenDroneMap on GitHub
search: true
---
# Introduction
[WebODM](https://github.com/OpenDroneMap/WebODM) is a free, user-friendly, extendable application and API for drone image processing. It generates georeferenced maps, point clouds and textured 3D models from aerial images.
Developers can leverage this API to extend the functionality of [WebODM](https://github.com/OpenDroneMap/WebODM) or integrate it with existing software like [QGIS](http://www.qgis.org/) or [AutoCAD](http://www.autodesk.com/products/autocad/overview).
# Authentication
To access the API, you need to provide a valid username and password. You can create users from WebODM's Administration page.
If authentication is successful, you will be issued a token. For all API calls, always include the following parameter (TODO: how?):
Parameter | Required | Default | Description
--------- | -------- | ------- | -----------
token | * | "" | Authentication Token
> Get authentication token:
```python
# TODO
```
# Processing Images
Images are processed by creating a [Task](#task). A [Project](#project) is a way to group together related [Task](#task) items. A [Project](#project) always needs to exist before a [Task](#task) can be created.
# Project
## Definition
> Example:
```json
{
"id": 2,
"tasks": [
7,
6,
5
],
"created_at": "2016-12-07T02:09:28.515319Z",
"name": "Test",
"description": ""
}
```
A [Project](#project) is a collection of [Task](#task) items.
Field | Type | Description
----- | ---- | -----------
id | int | Unique identifier
tasks | int[] | List of task IDs associated with this project
created_at | string | Creation date and time
name | string | Name of the project
description | string | A more in-depth description
## Create a project
`POST /api/projects/`
Parameter | Required | Default | Description
--------- | -------- | ------- | -----------
name | * | "" | Name of the project
description | | "" | A more in-depth description
## Get list of projects
> Example:
```json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 2,
"tasks": [
7,
6,
5
],
"created_at": "2016-12-07T02:09:28.515319Z",
"name": "Test",
"description": ""
}
]
}
```
`GET /api/projects/?page=N`
If `N` is omitted, defaults to 1.
### Filtering the list
`GET /api/projects/?=`
Where field is one of: `id`, `name`, `description`, `created_at`. Only equality can be used, e.g. `id=3`.
### Sorting the list
`GET /api/projects/?ordering=`
Where field is one of: `id`, `name`, `description`, `created_at`. Results are sorted in ascending order. Placing a minus `-` sign, e.g. `-created_at` sorts in descending order.
### Pagination
The project list is paginated. Items are stored in `results`. `count` is the total number of items. `next` and `previous` are links to retrieve the next and previous page of results, or null. Each page contains 10 items.
# Task
## Definition
TODO