# Developer Guide

Comprehensive resource to help you build applications, integrate with Tator’s API, and extend Tator’s functionality.

## 🚀 Getting Started

Essential first steps for developers new to Tator.

[**Install tator-py** 
\
Install the Python client library](/content/docs/developer-guide/getting-started/install-tator-py/index.html)  
[**Get an API Token** 
\
Authenticate with Tator’s API](/content/docs/developer-guide/getting-started/get-an-api-token/index.html)  
[**Tator Data Concepts** 
\
Understand Tator’s data model](/content/docs/developer-guide/getting-started/tator-data-concepts/index.html)  
[**Using the Swagger UI** 
\
Explore the REST API interactively](/content/docs/developer-guide/getting-started/using-the-swagger-ui/index.html)

## 📁 Project & Media Management

Programmatically manage projects, upload media, and organize data.

[**Create a Project with Python** 
\
Set up new projects via API](/content/docs/developer-guide/project-and-media-management/create-a-project-with-python/index.html)  
[**Upload Media with Python** 
\
Batch upload videos and images](/content/docs/developer-guide/project-and-media-management/upload-media-with-python/index.html)  
[**Download Media** 
\
Programmatically download media files](/content/docs/developer-guide/project-and-media-management/download-media/index.html)  
[**Import Hosted Media** 
\
Import media from external URLs](/content/docs/developer-guide/project-and-media-management/import-hosted-media/index.html)  
[**Create Multi-stream Videos** 
\
Work with synchronized video streams](/content/docs/developer-guide/project-and-media-management/create-multi-stream-videos/index.html)  
[**Local Transcodes** 
\
Process videos locally before upload](/content/docs/developer-guide/project-and-media-management/local-transcodes/index.html)  
[**Attach Files to Media** 
\
Associate additional files with media](/content/docs/developer-guide/project-and-media-management/attach-files-to-media/index.html)  
[**Nested Folders with Python** 
\
Organize media in folder hierarchies](/content/docs/developer-guide/project-and-media-management/nested-folders-with-python/index.html)  
[**Using the Changelog** 
\
Track changes to your data](/content/docs/developer-guide/project-and-media-management/using-the-changelog/index.html)  
[**Archive and Restore Media with Python** 
\
Implement data lifecycle management](/content/docs/developer-guide/project-and-media-management/archive-and-restore-media-with-python/index.html)  
[**Extract Frames and Video Clips** 
\
Export video segments programmatically](/content/docs/developer-guide/project-and-media-management/extract-frames-and-video-clips/index.html)  
[**Extract Localization Images and Track Animations** 
\
Generate crops and animations from annotations](/content/docs/developer-guide/project-and-media-management/extract-localization-images-and-track-animations/index.html)  
[**Migrate Data** 
\
Transfer data between Tator instances](/content/docs/developer-guide/project-and-media-management/migrate-data/index.html)

## 🏷️ Working with Annotations

Create, manage, and analyze annotations programmatically.

[**Entities and Attributes** 
\
Understand Tator’s annotation data model](/content/docs/developer-guide/working-with-annotations/entities-and-attributes/index.html)  
[**Create Annotations** 
\
Add annotations via API](/content/docs/developer-guide/working-with-annotations/create-annotations/index.html)  
[**Create Localizations without Geometry** 
\
Create frame-level annotations](/content/docs/developer-guide/working-with-annotations/create-localizations-without-geometry/index.html)  
[**Define a Label Tree** 
\
Set up hierarchical labeling systems](/content/docs/developer-guide/working-with-annotations/define-a-label-tree/index.html)  
[**Labeling Activities** 
\
Annotate temporal events and activities](/content/docs/developer-guide/working-with-annotations/labeling-activities/index.html)

## 🤖 Reports & Algorithms

Integrate machine learning and automated analysis workflows.

[**Register an Algorithm** 
\
Add custom processing algorithms](/content/docs/developer-guide/reports-and-algorithms/register-an-algorithm/index.html)  
[**Launch Algorithms with Python** 
\
Execute algorithms programmatically](/content/docs/developer-guide/reports-and-algorithms/launch-algorithms-with-python/index.html)  
[**AI-assisted Annotation** 
\
Implement machine learning workflows](/content/docs/developer-guide/reports-and-algorithms/ai-assisted-annotation/index.html)

## 📊 Applets & Dashboards

Create custom interfaces and visualization tools.

[**Create Analytics Dashboards** 
\
Build custom data visualizations](/content/docs/developer-guide/applets-and-dashboards/create-analytics-dashboards/index.html)  
[**Canvas Applets** 
\
Develop interactive canvas-based tools](/content/docs/developer-guide/applets-and-dashboards/canvas-applets/index.html)  
[**Create Annotator Menu Applets** 
\
Add custom tools to the annotation interface](/content/docs/developer-guide/applets-and-dashboards/create-annotator-menu-applets/index.html)  
[**Hosted Templates** 
\
Use pre-built dashboard templates](/content/docs/developer-guide/applets-and-dashboards/hosted-templates/index.html)

## 🛠️ Contributing to Tator

Help improve Tator by contributing to the open source project.

[**Using the Tator Build System** 
\
Set up the development environment](/content/docs/developer-guide/contributing-to-tator/using-the-tator-build-system/index.html)  
[**Run Unit Tests** 
\
Test your contributions](/content/docs/developer-guide/contributing-to-tator/run-unit-tests/index.html)

_Looking for user instructions? Check out our_
_[User Guide](/content/docs/user-guide/index.html)._  
_Need help with deployment? See our_
_[Administrator Guide](/content/docs/administrator-guide/index.html)._
