Overview
The Enterprise Sync API provides TAK-compatible endpoints for uploading, downloading, and managing data packages (files) across TAK clients. This API handles mission packages, attachments, and other synchronized content.Upload Endpoints
Upload File (Standard)
Name of the file being uploaded (can also use “name” parameter)
UID of the creator/uploader
Optional hash for the content
Privacy setting: “public” or “private”
MIME type of the uploaded file
File data (multipart form data) or raw request body
Upload File (Content)
Hash identifier for the content
Name of the file
UID of the creator
Privacy setting
File data as multipart form data
Upload Mission Package
Hash for the mission package
Filename for the package
Creator UID
Privacy setting
Mission package file
HTTPS variant returns
https:// URL instead of http://Download Endpoints
Download Content
Hash of the content to download
UID of the content to download
Binary file data with appropriate Content-Type header
Check Content Exists
Hash of the content to check
Query Mission Package
Hash of the mission package
Search Endpoints
Search Data Packages
Keyword to search for
Filter by privacy setting
Metadata Management
Update Package Privacy
Hash of the package
Either “private” (sets private=1) or anything else (sets private=0)
Download Package by Hash
Hash of the package to download
File data sent as attachment with original filename
This endpoint supports CORS with wildcard (
@cross_origin(send_wildcard=True))Data Storage
Enterprise Sync stores the following metadata for each uploaded file:- UID: Unique identifier
- Hash: SHA-256 hash of the content
- PrimaryKey: Database primary key
- SubmissionDateTime: Upload timestamp
- SubmissionUser: Submitter UID
- CreatorUid: Creator UID
- Keywords: Searchable keywords (includes filename, creator UID, and type)
- MIMEType: Content type
- Size: File size in bytes
- Tool: Privacy setting (“public” or “private”)
- Private: Boolean flag (0=public, 1=private)
HTTP vs HTTPS Differences
Both HTTP and HTTPS services implement identical Enterprise Sync endpoints with these differences:- Controller: HTTP uses
HTTPTakApiCommunicationController, HTTPS usesHTTPSTakApiCommunicationController - Upload Response: Mission upload returns
http://URLs for HTTP,https://for HTTPS - Download Methods: HTTP returns tuple
(data, status), HTTPS may return data directly
Integration with Missions
Enterprise Sync integrates with the Mission API:- Files uploaded via Enterprise Sync receive a hash
- The hash can be added to mission contents via
/Marti/api/missions/{mission_id}/contents - Mission package uploads automatically add content to missions
- Mission subscribers can download content using the sync endpoints
Example Workflow
Upload and Add to Mission
Search and Download
Error Responses
- 404 Not Found: Content does not exist
- 500 Internal Server Error: Processing error during upload/download
Source Code References
- HTTP Blueprint:
FreeTAKServer/services/http_tak_api_service/blueprints/enterprise_sync_blueprint.py:1-144 - HTTPS Blueprint:
FreeTAKServer/services/https_tak_api_service/blueprints/enterprise_sync_blueprint.py:1-148 - Core Facade:
FreeTAKServer/core/enterprise_sync/enterprise_sync_facade.py:1-103