HTTP API
Base URL when serving locally: http://127.0.0.1:8765.
All JSON API routes are under the /api prefix. HTML pages are separate (see below).
Tip
While the server is running you can also explore interactive OpenAPI docs if exposed by FastAPI defaults (/docs, /redoc) depending on app configuration.
Pages (HTML)
Method |
Path |
Description |
|---|---|---|
GET |
|
Dashboard |
GET |
|
Team/Enterprise first-time setup |
GET |
|
Sign-in (when auth required) |
GET |
|
Organizations |
GET |
|
Create / import project |
GET |
|
Project detail |
GET |
|
Annotate UI (CV or samples) |
GET |
|
Upload images |
GET |
|
Static assets |
Projects
Method |
Path |
Body |
Success |
|---|---|---|---|
GET |
|
— |
|
POST |
|
|
|
GET |
|
— |
|
PATCH |
|
|
|
DELETE |
|
— |
204 |
POST |
|
|
|
POST |
|
multipart |
|
POST |
|
|
|
ProjectCreate
{
"name": "string",
"description": "",
"project_type": "object_detection",
"location": "",
"workspace_id": null
}
workspace_id: optional parent workspace (null → Default workspace).
CV: object_detection, instance_segmentation, classification, semantic_segmentation.
Other: text_classification, ner, tabular_classification, tabular_regression, audio_classification, transcription, video_classification, action_recognition, instruction_tuning, preference, rag_eval.
Classes
Method |
Path |
Body |
|---|---|---|
GET |
|
— |
POST |
|
|
DELETE |
|
— |
Images
Method |
Path |
Notes |
|---|---|---|
GET |
|
Optional |
POST |
|
multipart |
DELETE |
|
— |
POST |
|
|
GET |
|
raw image bytes |
Annotations
Method |
Path |
Body |
|---|---|---|
GET |
|
— |
POST |
|
|
PUT |
|
|
DELETE |
|
— |
AnnotationCreate
{
"class_id": 1,
"annotation_type": "bbox",
"geometry": {"x": 0.1, "y": 0.2, "width": 0.3, "height": 0.4},
"confidence": null,
"source": "manual"
}
annotation_type: bbox, polygon, mask, classification.
Auto-annotate
Method |
Path |
Body |
|---|---|---|
POST |
|
|
POST |
|
|
Splits, versions, pipeline defaults
Method |
Path |
Body / query |
|---|---|---|
POST |
|
`?train=70&valid=20&test=10&strategy=random |
GET |
|
— |
POST |
|
|
GET |
|
— |
Plugins & pipelines
Method |
Path |
Notes |
|---|---|---|
GET |
|
optional |
GET |
|
single plugin |
GET |
|
known step types |
GET |
|
PPE example definition |
POST |
|
create (empty definition → example) |
GET |
|
optional |
GET/PUT/DELETE |
|
CRUD |
POST |
|
JSON definition |
POST |
|
YAML text |
POST |
|
create from YAML |
GET |
|
export YAML |
POST |
|
|
GET |
|
run history |
GET |
|
one run |
Text & tabular samples
Method |
Path |
Notes |
|---|---|---|
GET/POST |
|
list / create |
GET/PATCH |
|
get / label / spans / value |
POST |
|
JSONL or CSV upload |
POST |
|
CSV upload |
POST |
|
audio / video / LLM JSONL |
POST |
|
stratified sample splits |
POST |
|
sklearn / huggingface prepare |
POST |
|
sklearn train |
See Text and tabular modalities and Audio, video, and LLM datasets.
Export
Method |
Path |
Body |
|---|---|---|
POST |
|
|
GET |
|
download |
format: coco → COCO JSON; yolo → YOLO zip; jsonl → text; csv → tabular.
Models & training
Method |
Path |
Notes |
|---|---|---|
GET |
|
optional |
GET |
|
registered |
POST |
|
register from path |
POST |
|
multipart upload |
DELETE |
|
— |
GET |
|
discover run weights |
GET |
|
CUDA / default device |
POST |
|
|
GET |
|
active / latest / idle |
GET |
|
job JSON |
TrainRequest
{
"version_id": 1,
"model": "yolov8n.pt",
"epochs": 50,
"imgsz": 640,
"batch": 16,
"device": "auto",
"require_ready": true,
"min_readiness_score": 60
}
Set require_ready to false to bypass the readiness gate.
Identity & collaboration
Method |
Path |
Notes |
|---|---|---|
GET |
|
Current user |
POST |
|
|
POST |
|
|
POST |
|
— |
GET/POST/DELETE |
|
API tokens |
GET |
|
Role catalog |
GET/POST |
|
Organizations |
GET/POST |
|
Project members |
GET/POST |
|
Image assignments |
GET/POST |
|
Review queue / submit |
POST |
|
Approve / reject / changes |
GET/POST/DELETE |
|
Soft sample lock |
GET |
|
Annotation history |
Setup (Team / Enterprise)
Method |
Path |
Notes |
|---|---|---|
GET |
|
Whether setup is required |
POST |
|
Complete first-time admin / org bootstrap |
Platform
Method |
Path |
Notes |
|---|---|---|
GET |
|
Liveness |
GET |
|
DB (+ Redis) readiness |
GET |
|
Check catalog + defaults ( |
GET |
|
Cleaning action catalog ( |
GET |
|
Dataset profile (image or sample) |
GET |
|
Quality report (defaults) |
POST |
|
Quality report with config |
POST |
|
Training readiness (config + adapter) |
POST |
|
Dry-run cleaning |
POST |
|
Apply cleaning actions |
GET |
|
Universal sample schema export |
GET |
|
List experiments |
GET |
|
Experiment detail |
PATCH |
|
Update name / tags / notes |
POST |
|
|
PATCH |
|
|
GET |
|
Adapter registry |
Stats
GET /api/stats
{
"project_count": 0,
"total_images": 0,
"annotated_images": 0,
"total_annotations": 0
}
Example: create → upload → annotate (curl)
# Create project
curl -s http://127.0.0.1:8765/api/projects \
-H "Content-Type: application/json" \
-d '{"name":"demo","project_type":"object_detection"}'
# Add class (use returned project id)
curl -s http://127.0.0.1:8765/api/projects/1/classes \
-H "Content-Type: application/json" \
-d '{"name":"object","color":"#14b8a6"}'
# Upload images
curl -s http://127.0.0.1:8765/api/projects/1/images \
-F "files=@image1.jpg" -F "files=@image2.jpg"