Link to this sectionREST API Referenz#
Ultralytics Platform bietet eine umfassende REST API für den programmgesteuerten Zugriff auf Datensätze, Modelle, Training und Deployments.

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsEntdecke die vollständige interaktive API-Referenz in den Ultralytics Platform API-Dokumenten.
Link to this sectionAPI-Übersicht#
Die API ist um die zentralen Plattform-Ressourcen herum organisiert:
graph LR
A[API Key]:::start --> B[Datasets]:::proc
A --> C[Projects]:::proc
A --> D[Models]:::proc
A --> E[Deployments]:::proc
B -->|train on| D
C -->|contains| D
D -->|deploy to| E
D -->|export| F[Exports]:::proc
B -->|auto-annotate| B
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff| Ressource | Beschreibung | Wichtige Operationen |
|---|---|---|
| Datasets | Beschriftete Bildsammlungen | CRUD, Bilder, Labels, Export, Versionen, Klonen |
| Projects | Arbeitsbereiche für das Training | CRUD, Klonen, Icon |
| Models | Trainierte Checkpoints | CRUD, Vorhersage, Download, Klonen, Export |
| Deployments | Dedizierte Inferenz-Endpunkte | CRUD, Start/Stopp, Metriken, Logs, Status |
| Exports | Format-Konvertierungsaufträge | Erstellen, Status, Download |
| Training | Cloud GPU-Trainingsaufträge | Start, Status, Abbrechen |
| Billing | Guthaben und Nutzung | Guthaben, Nutzung, Transaktionen |
| Teams | Zusammenarbeit im Arbeitsbereich | Workspaces, Mitglieder, Rollen |
Link to this sectionAuthentifizierung#
Ressourcen-APIs verwenden eine Authentifizierung per API-Key, einschließlich der Verwaltung von Dataset-Klassen und -Splits, Klonen, Training, Exporten, Bereitstellungen und unterstützten Konto-Abrufen. Öffentliche Endpunkte unterstützen anonymen Zugriff, sofern vermerkt. Browser-exklusive Anwendungsrouten sind ausgenommen.
Link to this sectionAPI-Key abrufen#
- Gehe zu
Settings>API Keys - Klicke auf
Create Key - Kopiere den generierten Key
Siehe API Keys für detaillierte Anweisungen.
Link to this sectionAutorisierungs-Header#
Füge deinen API-Key in alle Anfragen ein:
Authorization: Bearer YOUR_API_KEYAPI-Keys verwenden das Format ul_ gefolgt von 40 hexadezimalen Zeichen. Halte deinen Key geheim – committe ihn niemals in eine Versionsverwaltung und teile ihn nicht öffentlich.
Link to this sectionBeispiel#
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsLink to this sectionBasis-URL#
Alle API-Endpunkte verwenden:
https://platform.ultralytics.com/apiLink to this sectionRatenbegrenzungen#
Die API erzwingt gleitende, durch Upstash Redis abgesicherte Limits pro API-Schlüssel. Jede Route verwendet die unten stehende passende Kategorie.
Bei Drosselung gibt die API 429 mit Retry-Metadaten zurück:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000ZLink to this sectionLimits pro API-Key#
Ratenbegrenzungen werden automatisch basierend auf dem aufgerufenen Endpunkt angewendet. Aufwendige Operationen haben strengere Limits, um Missbrauch zu verhindern, während Standard-CRUD-Operationen sich ein großzügiges Standardlimit teilen:
| Kategorie | Limit | Gilt für |
|---|---|---|
| Standard | 100 Anfragen/Min. | Routen, die keiner Kategorie unten zugeordnet sind |
| Training | 10 Anfragen/Min. | Cloud-Training starten |
| Upload | 10 Anfragen/Min. | Signierte Upload-URLs, Upload-Abschluss und Dataset-Ingest |
| Predict | 20 Anfragen/Min. | Modell- und Deployment-Inferenz über Platform API-Routen |
| Exportieren | 20 Anfragen/Min. | Modell-Export-Routen und Dataset-Export-/Versions-Routen |
| Download | 30 Anfragen/Min. | Modelldatei-Downloads |
| Mutation | 10 Anfragen/Min. | Erstellung von Teams, Änderungen an Speicherintegrationen, API-Schlüssel, Mitglieder, Einladungen und Start/Stopp von Deployments |
| Abrechnung | 5 Anfragen/Min. | Routen für automatisches Aufladen und Abonnement-Checkout |
| Hydrate | 20 Anfragen/Min. | Hydratisierung eines ausgewählten Sets von Dataset-Bildern |
| Clustering | 10 Anfragen/Min. | Dataset-Bild-Clustering |
Jede Kategorie verfügt über einen unabhängigen Zähler pro API-Key. Wenn du beispielsweise 20 Predict-Anfragen stellst, beeinträchtigt dies nicht dein Standard-Limit von 100 Anfragen/Min.
Link to this sectionDedizierte Endpunkte (Unbegrenzt)#
Dedizierte Endpunkte unterliegen keinen Platform API-Schlüssel-Ratenlimits, wenn du die Endpunkt-URL direkt aufrufst (zum Beispiel https://predict-abc123.run.app/predict). Der Durchsatz hängt dann von der Konfiguration des bereitgestellten Dienstes ab.
Wenn du einen 429-Statuscode erhältst, warte auf Retry-After (oder bis X-RateLimit-Reset), bevor du es erneut versuchst. Siehe die FAQ zu Ratenbegrenzungen für eine Implementierung mit Exponential Backoff.
Link to this sectionAntwortformat#
Link to this sectionErfolgsantworten#
Antworten geben JSON mit ressourcenspezifischen Feldern zurück:
{
"datasets": [...],
"total": 100
}Link to this sectionFehlerantworten#
{
"error": "Dataset not found"
}| HTTP-Status | Bedeutung |
|---|---|
200 | Erfolg |
201 | Erstellt |
400 | Ungültige Anfrage |
401 | Authentifizierung erforderlich |
403 | Unzureichende Berechtigungen |
404 | Ressource nicht gefunden |
409 | Konflikt (Duplikat) |
429 | Ratenlimit überschritten |
500 | Serverfehler |
Link to this sectionDatasets API#
Erstelle, durchsuche und verwalte beschriftete Bild-Datasets für das Training von YOLO Modellen. Siehe Datasets-Dokumentation.
Link to this sectionDatasets auflisten#
GET /api/datasetsAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
username | string | Nach Benutzername filtern |
limit | int | Elemente pro Seite (Standard: 1000, max: 1000) |
owner | string | Benutzername des Workspace-Eigentümers |
includeImageUrls | boolean | Beinhaltet signierte URLs für Beispielbilder in voller Größe (Standard: false) |
includeSamples | boolean | Setze false, um Beispielbilder wegzulassen und die Antwortgröße zu reduzieren. |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"Antwort:
{
"datasets": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"task": "detect",
"imageCount": 1000,
"classCount": 10,
"classNames": ["person", "car"],
"visibility": "private",
"username": "johndoe",
"starCount": 3,
"isStarred": false,
"sampleImages": [
{
"url": "https://storage.example.com/...",
"width": 1920,
"height": 1080,
"labels": [{ "classId": 0, "bbox": [0.5, 0.4, 0.3, 0.6] }]
}
],
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-16T08:30:00Z"
}
],
"total": 1,
"region": "us"
}Link to this sectionDataset abrufen#
GET /api/datasets/{datasetId}Gibt vollständige Dataset-Details zurück, einschließlich Metadaten, Klassennamen und Split-Anzahlen.
Übergebe username, wenn {datasetId} ein Dataset-Slug statt einer ID ist.
Link to this sectionDataset erstellen#
POST /api/datasetsBody:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}Gültige task-Werte: detect, segment, semantic, classify, pose und obb.
Antwort:
{
"datasetId": "dataset_abc123",
"slug": "my-dataset",
"region": "us"
}Link to this sectionDataset aktualisieren#
PATCH /api/datasets/{datasetId}Body (partielle Aktualisierung):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}Link to this sectionDataset-Icon#
POST /api/datasets/{datasetId}/icon
DELETE /api/datasets/{datasetId}/iconLade ein WebP-Icon mit bis zu 5 MB als Multipart-Formularfeld image hoch oder entferne das aktuelle Icon.
Link to this sectionDataset löschen#
DELETE /api/datasets/{datasetId}Löscht das Dataset vorläufig (wird in den Papierkorb verschoben, für 30 Tage wiederherstellbar).
Link to this sectionDataset klonen#
POST /api/datasets/{datasetId}/cloneErstellt eine Kopie eines öffentlichen, eigenen oder bearbeitbaren Workspace-Datasets mit allen Bildern und Labels.
Optionaler Body (alle Felder sind optional):
{
"name": "cloned-dataset",
"slug": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"license": "AGPL-3.0",
"owner": "team-username"
}Link to this sectionDataset exportieren#
GET /api/datasets/{datasetId}/exportGibt eine JSON-Antwort mit einer signierten Download-URL für den neuesten Dataset-Export zurück.
Abfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
v | integer | Versionsnummer (1-basiert). Falls weggelassen, wird der letzte veränderbare Export zurückgegeben, wobei dieser wiederverwendet wird, wenn sich das Dataset nicht geändert hat. |
Antwort:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}Link to this sectionDataset-Version erstellen#
POST /api/datasets/{datasetId}/exportErstelle einen neuen nummerierten Versions-Snapshot des Datasets. Dies erfordert Editor-Zugriff oder höher. Die Version erfasst die aktuelle Anzahl an Bildern, Klassen, Annotationen sowie die Aufteilungsverteilung und generiert und speichert dann einen unveränderlichen NDJSON-Export.
Request Body:
{
"description": "Added 500 training images"
}Alle Felder sind optional. Das Feld description ist ein vom Benutzer bereitgestelltes Label für die Version.
Antwort:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}Link to this sectionVersionsbeschreibung aktualisieren#
PATCH /api/datasets/{datasetId}/exportAktualisiere die Beschreibung einer bestehenden Version. Dies erfordert Editor-Zugriff oder höher.
Request Body:
{
"version": 2,
"description": "Fixed mislabeled classes"
}Antwort:
{
"ok": true
}Link to this sectionDataset-Version wiederherstellen#
POST /api/datasets/{datasetId}/restoreStellt die Bilder, Annotationen und Klassen des Datasets aus einer gespeicherten Version wieder her, ohne die Bild-Bytes zu kopieren.
{
"version": 2
}Link to this sectionKlassenstatistiken abrufen#
GET /api/datasets/{datasetId}/class-statsGibt Klassenverteilung, Standort-Heatmap und Dimensionsstatistiken zurück. Ergebnisse werden für bis zu 5 Minuten zwischengespeichert.
Antwort:
{
"classes": [{ "classId": 0, "count": 1500, "imageCount": 450 }],
"imageStats": {
"widthHistogram": [{ "bin": 640, "count": 120 }],
"heightHistogram": [{ "bin": 480, "count": 95 }],
"pointsHistogram": [{ "bin": 4, "count": 200 }]
},
"locationHeatmap": {
"bins": [
[5, 10],
[8, 3]
],
"maxCount": 50
},
"dimensionHeatmap": {
"bins": [
[2, 5],
[3, 1]
],
"maxCount": 12,
"minWidth": 10,
"maxWidth": 1920,
"minHeight": 10,
"maxHeight": 1080
},
"classNames": ["person", "car", "dog"],
"cached": true,
"sampled": false,
"sampleSize": 1000
}Link to this sectionKlassen verwalten#
Klassen zusammenführen (Annotations von Quellklassen einem Ziel zuweisen und dann die Quellen entfernen):
POST /api/datasets/{datasetId}/classes/merge{
"sourceClassIds": [2, 4],
"targetClassId": 1
}Klassen-IDs sind positionsabhängig, daher ist die Zusammenführung nicht idempotent. Lade das Dataset erneut, bevor du es erneut versuchst.
Klassen löschen:
POST /api/datasets/{datasetId}/classes/delete{
"classIds": [2, 4]
}Link to this sectionSplits neu verteilen#
POST /api/datasets/{datasetId}/splits/redistributeOrdne Bilder zufällig den Splits Training, Validierung und Test zu. Die Prozentsätze müssen insgesamt 100 ergeben.
{
"train": 80,
"val": 20,
"test": 0
}Link to this sectionDataset-Embeddings#
GET /api/datasets/{datasetId}/embeddings
POST /api/datasets/{datasetId}/embeddings
DELETE /api/datasets/{datasetId}/embeddingsGET gibt die aktuelle UMAP-Analysezusammenfassung und den aktiven Jobstatus zurück; POST stellt einen Embeddings-Analysejob in die Warteschlange; DELETE bricht den aktiven Job ab.
Link to this sectionBild-Clustering#
GET /api/datasets/{datasetId}/images/clusteringGibt das UMAP 2D-Layout und die Metadaten pro Bild für die Clustering-Scatter-Ansicht zurück (paged und rate-limited).
Link to this sectionMit Dataset trainierte Modelle abrufen#
GET /api/datasets/{datasetId}/modelsGibt Modelle zurück, die mit diesem Dataset trainiert wurden.
Antwort:
{
"models": [
{
"_id": "model_abc123",
"name": "experiment-1",
"slug": "experiment-1",
"status": "completed",
"task": "detect",
"epochs": 100,
"bestEpoch": 87,
"projectId": "project_xyz",
"projectSlug": "my-project",
"projectIconColor": "#3b82f6",
"projectIconLetter": "M",
"username": "johndoe",
"startedAt": "2024-01-14T22:00:00Z",
"completedAt": "2024-01-15T10:00:00Z",
"createdAt": "2024-01-14T21:55:00Z",
"metrics": {
"mAP50": 0.85,
"mAP50-95": 0.72,
"precision": 0.88,
"recall": 0.81
}
}
],
"count": 1
}Link to this sectionDataset automatisch annotieren#
POST /api/datasets/{datasetId}/predictFühre YOLO-Inferenz auf Dataset-Bildern aus, um Annotationen automatisch zu generieren. Verwendet ein ausgewähltes Modell, um Labels für nicht annotierte Bilder vorherzusagen.
Body:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
imageHash | string | Ja | Hash des zu annotierenden Bildes |
modelId | string | Nein | Für die Inferenz zu verwendendes Modell als ul:// URI (z. B. ul://username/project/model). Falls weggelassen, wird das aufgabenspezifische Standardmodell des Datasets verwendet. |
confidence | float | Nein | Konfidenzschwellenwert (Standard: 0.25) |
iou | float | Nein | IoU-Schwellenwert (Standard: 0.7) |
Link to this sectionDataset-Ingest#
POST /api/datasets/ingestErstelle einen Dataset-Ingest-Job für ein bestehendes Dataset. Das Ziel-Dataset wird immer als datasetId im JSON-Body übergeben, nicht im URL-Pfad.
Der Request-Body erfordert datasetId sowie genau eines der Felder sessionId (eine Upload-Session eines hochgeladenen Archivs) oder sourceUrl (eine URL zu einem Remote-ZIP, TAR, TAR.GZ, TGZ oder NDJSON). Füge optional targetSplit (train, val oder test) hinzu, um die Split-Struktur des Archivs zu überschreiben.
Bei hochgeladenen Archiven ist die Upload-Sitzung bereits an den Datensatz gebunden, über die assetId, die an POST /api/upload/signed-url übergeben wurde; der Ingest validiert, dass die assetId mit der datasetId im Body übereinstimmt. Optionale classMapping-Einträge ordnen jeden eingehenden Klassennamen einem existierenden nullbasierten Klassenindex, einem wiederzuverwendenden oder neu zu erstellenden Klassennamen oder null zum Überspringen der Klasse zu. Bei Remote-Importen über sourceUrl erstelle den Datensatz zuerst und übergebe dann dessen datasetId an den Ingest.
Body (hochgeladenes Archiv):
{
"datasetId": "dataset_abc123",
"sessionId": "session_abc123",
"targetSplit": "train"
}Body (Remote-Archiv oder NDJSON):
{
"datasetId": "dataset_abc123",
"sourceUrl": "https://example.com/my-dataset.zip"
}Body (späterer Ingest, Import von Labels):
{
"datasetId": "dataset_abc123",
"sessionId": "session_abc123",
"classMapping": { "person": 0, "automobile": "car", "background": null }
}Der erste Ingest erstellt Klassen automatisch aus dem Archiv. Bei späteren Ingests greifen Archivklassen, die in classMapping ausgelassen wurden, zunächst auf eine nicht-case-sensitive Übereinstimmung mit existierenden Datensatzklassen zurück. Labels werden nur für Klassen übersprungen, die explizit auf null gesetzt wurden oder für die keine passende existierende Klasse gefunden wird.
Antwort:
{
"jobId": "job_abc123",
"datasetId": "dataset_abc123",
"status": "queued"
}graph LR
A[POST /api/datasets]:::start --> B[POST /api/upload/signed-url]:::proc
B --> C[Upload archive to signed URL]:::proc
C --> D[POST /api/upload/complete]:::proc
D --> E[POST /api/datasets/ingest]:::proc
E --> F[Process archive]:::proc
F --> G[Dataset ready]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffLink to this sectionDataset-Bilder#
Link to this sectionBilder auflisten#
GET /api/datasets/{datasetId}/imagesAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
split | string | Nach Split filtern: train, val, test |
offset | int | Pagination-Offset (Standard: 0) |
limit | int | Elemente pro Seite (Standard: 50, max: 5000) |
sort | string | Sortierreihenfolge: newest, oldest, name-asc, name-desc, height-asc, height-desc, width-asc, width-desc, size-asc, size-desc, labels-asc, labels-desc (einige sind bei Datasets mit >100k Bildern deaktiviert) |
hasLabel | string | Nach Label-Status filtern (true oder false) |
hasError | string | Nach Fehlerstatus filtern (true oder false) |
search | string | Nach Dateiname oder Bild-Hash suchen |
classIds | string | Kommaseparierte Klassen-IDs; gibt Bilder zurück, die eine der angegebenen Klassen enthalten |
includeThumbnails | string | Signierte Thumbnail-URLs einbeziehen (Standard: true) |
includeImageUrls | string | Signierte vollständige Bild-URLs einbeziehen (Standard: false) |
Link to this sectionAusgewählte Bilder abrufen#
POST /api/datasets/{datasetId}/imagesGibt die gleiche Bildform für bis zu 1.000 bereitgestellte Bild-IDs zurück. Es akzeptiert dieselben URL- und Label-Abfragesteuerungen wie der Listenvorgang.
{
"imageIds": ["IMAGE_OBJECT_ID"]
}Link to this sectionSignierte Bild-URLs abrufen#
POST /api/datasets/{datasetId}/images/urlsRufe signierte URLs für eine Charge von Bild-Hashes ab (zur Anzeige im Browser).
Link to this sectionBild löschen#
DELETE /api/datasets/{datasetId}/images/{hash}Link to this sectionBild-Labels abrufen#
GET /api/datasets/{datasetId}/images/{hash}/labelsGibt Annotationen und Klassennamen für ein spezifisches Bild zurück.
Link to this sectionBild-Labels aktualisieren#
PUT /api/datasets/{datasetId}/images/{hash}/labelsBody:
{
"labels": [
{ "classId": 0, "bbox": [0.5, 0.5, 0.2, 0.3] },
{ "classId": 1, "segments": [0.1, 0.2, 0.3, 0.2, 0.2, 0.4] }
]
}Label-Koordinaten verwenden YOLO-normalisierte Werte zwischen 0 und 1. Bounding Boxes verwenden [x_center, y_center, width, height].
Segmentierungs-Labels verwenden segments, eine flache Liste von Polygon-Eckpunkten [x1, y1, x2, y2, ...].
Link to this sectionMassen-Bildoperationen#
Bilder zwischen Splits (train/val/test) innerhalb eines Datasets verschieben:
PATCH /api/datasets/{datasetId}/images/bulkBilder massenhaft löschen:
DELETE /api/datasets/{datasetId}/images/bulkLink to this sectionProjekte API#
Organisiere deine Modelle in Projekten. Jedes Modell gehört zu einem Projekt. Siehe Projekte-Dokumentation.
Link to this sectionProjekte auflisten#
GET /api/projectsAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
username | string | Nach Benutzername filtern |
limit | int | Elemente pro Seite |
owner | string | Benutzername des Workspace-Eigentümers |
Link to this sectionProjekt abrufen#
GET /api/projects/{projectId}Link to this sectionProjekt erstellen#
POST /api/projectscurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-project",
"slug": "my-project",
"description": "Detection experiments"
}' \
https://platform.ultralytics.com/api/projectsLink to this sectionProjekt aktualisieren#
PATCH /api/projects/{projectId}Link to this sectionProjekt löschen#
DELETE /api/projects/{projectId}Löscht das Projekt vorläufig (wird in den Papierkorb verschoben).
Link to this sectionProjekt klonen#
POST /api/projects/{projectId}/cloneKlont ein öffentliches, eigenes oder bearbeitbares Workspace-Projekt und dessen Modelle in dein Konto oder deinen Workspace. Ein optionaler JSON-Body akzeptiert Überschreibungen für name, slug, description, visibility, license und Ziel-owner.
Link to this sectionProjekt-Icon#
POST /api/projects/{projectId}/icon
DELETE /api/projects/{projectId}/iconLade ein WebP-Icon mit bis zu 5 MB als Multipart-Formularfeld image hoch oder entferne das aktuelle Icon.
Link to this sectionModels API#
Verwalte trainierte YOLO-Modelle – zeige Metriken an, lade Weights herunter, führe Inferenzen aus und exportiere in andere Formate. Siehe Models-Dokumentation.
Link to this sectionModelle auflisten#
GET /api/modelsAbfrageparameter:
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
projectId | string | Ja | Projekt-ID (erforderlich) |
fields | string | Nein | Feldgruppe: summary, charts |
ids | string | Nein | Durch Kommas getrennte Modell-IDs |
limit | int | Nein | Maximale Ergebnisse (Standard 20, maximal 100) |
Link to this sectionAbgeschlossene Modelle auflisten#
GET /api/models/completedGibt bis zu 1.000 Modelle mit verwendbaren Gewichten über alle Projekte hinweg für Training und Bereitstellung zurück. Übergebe owner für einen Workspace.
Link to this sectionModell abrufen#
GET /api/models/{modelId}Link to this sectionModell erstellen#
POST /api/modelsJSON Body:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
projectId | string | Ja | Ziel-Projekt-ID |
slug | string | Nein | URL-Slug (kleingeschriebene alphanumerische Zeichen/Bindestriche) |
name | string | Nein | Anzeigename (maximal 100 Zeichen) |
description | string | Nein | Modellbeschreibung (maximal 1000 Zeichen) |
task | string | Nein | Aufgabentyp (detect, segment, semantic, depth, pose, obb, classify) |
Um .pt-Gewichte anzuhängen, fordere eine signierte Upload-URL mit assetType: models und der ID dieses Modells als assetId an, lade die Datei hoch und rufe dann POST /api/upload/complete mit der zurückgegebenen sessionId auf.
Link to this sectionModell aktualisieren#
PATCH /api/models/{modelId}Link to this sectionModell löschen#
DELETE /api/models/{modelId}Link to this sectionModelldateien herunterladen#
GET /api/models/{modelId}/filesGibt signierte Download-URLs für Modelldateien zurück.
Link to this sectionModell klonen#
POST /api/models/{modelId}/cloneKlone ein öffentliches, eigenes oder bearbeitbares Workspace-Modell in eines deiner Projekte.
Body:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
targetProjectSlug | string | Ja | Ziel-Projekt-Slug |
modelName | string | Nein | Name für das geklonte Modell |
description | string | Nein | Modellbeschreibung |
owner | string | Nein | Team-Benutzername (für Workspace-Klonen) |
Link to this sectionDownload nachverfolgen#
POST /api/models/{modelId}/track-downloadAnalysedaten für den Modelldownload nachverfolgen.
Link to this sectionFühre die Inferenz aus.#
POST /api/models/{modelId}/predictÖffentliche Modelle können ohne Authentifizierung vorhergesagt werden. Private und geteilte Modelle erfordern einen API-Key mit Zugriff auf das übergeordnete Projekt.
Multipart Form:
| Parameter | Typ | Standard | Bereich | Beschreibung |
|---|---|---|---|---|
file | Datei | - | - | Bild- oder Videodatei (erforderlich, sofern source nicht gesetzt) |
conf | float | 0.25 | 0.01 – 1.0 | Minimaler Konfidenz-Schwellenwert |
iou | float | 0,7 | 0.0 – 0.95 | NMS IoU-Schwellenwert |
imgsz | int | 640 | 32 – 1280 | Eingabebildgröße in Pixeln |
normalize | bool | false | - | BBox-Koordinaten als 0 – 1 zurückgeben |
decimals | int | 5 | 0 – 10 | Dezimalpräzision für Koordinatenwerte |
source | string | - | - | Bild-URL oder base64-String (Alternative zu file) |
Gib entweder file oder source an. Die maximale Upload-Größe beträgt 100 MB.
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/MODEL_ID/predictAntwort:
Die Antworten enthalten shape, speed, results pro Bild und optional dichte Pixel-Map-Daten (eine semantische Klassen-Map oder eine Tiefen-Map, wobei depth = pixel × max / divisor gilt — divisor 255 für die Standard-8-Bit-Map, 65535 bei bits=12|16), sowie metadata mit Bildanzahl, Funktionslaufzeit, Aufgabe und Service-Versionen. Interne Modellpfade werden niemals zurückgegeben.
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}Link to this sectionTraining API#
Starte das YOLO-Training auf Cloud-GPUs (26 GPU-Typen von RTX 2000 Ada bis B300) und überwache den Fortschritt in Echtzeit. Siehe die Cloud Training-Dokumentation.
graph LR
A[POST /training/start]:::start --> B[Job Created]:::proc
B --> C{Training}:::decide
C -->|progress| D[GET /models/id/training]:::proc
C -->|cancel| E[DELETE /models/id/training]:::error
C -->|complete| F[Model Ready]:::out
F --> G[Deploy or Export]:::proc
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fffLink to this sectionTraining starten#
POST /api/training/startcurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/startVerfügbare GPU-Typen umfassen rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000, b300 und andere. Siehe Cloud-Training für die vollständige Liste mit Preisen.
Link to this sectionGPU-Verfügbarkeit abrufen#
GET /api/training/gpu-availabilityGibt den aktuellen GPU-Lagerstatus zurück (High, Medium, Low oder null), sortiert nach GPU-Typ-ID. Öffentlich, keine Authentifizierung erforderlich; für 5 Minuten zwischengespeichert.
Link to this sectionTrainingsstatus abrufen#
GET /api/models/{modelId}/trainingGibt den aktuellen Status des Trainings-Jobs, Metriken, Fortschritt, Timing, GPU-Details und Fehler zurück. Öffentliche Projekte sind ohne Authentifizierung zugänglich; private und geteilte Projekte erfordern einen API-Key mit Zugriff.
Link to this sectionTraining abbrechen#
DELETE /api/models/{modelId}/trainingBeendet die laufende Recheninstanz und markiert den Job als abgebrochen.
Link to this sectionDeployments API#
Stelle Modelle auf dedizierten Inferenz-Endpunkten mit Gesundheitsprüfungen und Überwachung bereit. Neue Deployments nutzen standardmäßig Scale-to-Zero, und die API akzeptiert ein optionales resources-Objekt. Siehe Endpoints-Dokumentation.
Alle unten aufgeführten Bereitstellungsrouten akzeptieren eine Authentifizierung per API-Key. Für Inferenz mit hohem Durchsatz rufe die eigene Endpunkt-URL der Bereitstellung (z. B. https://predict-abc123.run.app/predict) direkt mit deinem API-Key auf. Dedizierte Endpunkte sind nicht ratenbegrenzt.
graph LR
A[Create]:::start --> B[Deploying]:::proc
B --> C[Ready]:::out
C -->|stop| D[Stopped]:::extern
D -->|start| C
C -->|delete| E[Deleted]:::error
D -->|delete| E
C -->|predict| F[Inference Results]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fffLink to this sectionDeployments auflisten#
GET /api/deploymentsAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
modelId | string | Nach Modell filtern |
status | string | Nach Status filtern |
limit | int | Maximale Ergebnisse (Standard: 20, max: 100) |
owner | string | Benutzername des Workspace-Eigentümers |
Link to this sectionDeployment erstellen#
POST /api/deploymentsBody:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
modelId | string | Ja | Zu deployende Modell-ID |
name | string | Ja | Deployment-Name |
region | string | Ja | Deployment-Region |
resources | Objekt | Nein | Ressourcenkonfiguration (cpu, memoryGi, minInstances, maxInstances) |
Erstellt einen dedizierten Inferenz-Endpunkt in der angegebenen Region. Der Endpunkt ist global über eine eindeutige URL zugänglich.
Der Deployment-Dialog sendet derzeit feste Standards von cpu=1, memoryGi=2, minInstances=0 und maxInstances=1. Der API-Pfad akzeptiert ein resources-Objekt, aber Plangrenzen begrenzen minInstances auf 0 und maxInstances auf 1.
Wähle eine Region in der Nähe deiner Nutzer für die geringste Latenz. Die Benutzeroberfläche der Plattform zeigt Latenzschätzungen für alle 42 verfügbaren Regionen an.
Link to this sectionDeployment abrufen#
GET /api/deployments/{deploymentId}Link to this sectionDeployment löschen#
DELETE /api/deployments/{deploymentId}Link to this sectionDeployment starten#
POST /api/deployments/{deploymentId}/startEin gestopptes Deployment fortsetzen.
Link to this sectionDeployment stoppen#
POST /api/deployments/{deploymentId}/stopStoppe die Bereitstellung von Anfragen, indem du die minimale und maximale Anzahl von Instanzen des Dienstes auf Null setzt.
Link to this sectionGesundheitsprüfung#
GET /api/deployments/{deploymentId}/healthGibt den Gesundheitsstatus des Deployment-Endpunkts zurück.
Link to this sectionInferenz auf Deployment ausführen#
POST /api/deployments/{deploymentId}/predictSende ein Bild direkt an einen Deployment-Endpunkt für die Inferenz. Funktional äquivalent zur Modellvorhersage, aber für geringere Latenz über den dedizierten Endpunkt geroutet.
Multipart Form:
| Parameter | Typ | Standard | Bereich | Beschreibung |
|---|---|---|---|---|
file | Datei | - | - | Bild- oder Videodatei (erforderlich, sofern source nicht gesetzt) |
conf | float | 0.25 | 0.01 – 1.0 | Minimaler Konfidenz-Schwellenwert |
iou | float | 0,7 | 0.0 – 0.95 | NMS IoU-Schwellenwert |
imgsz | int | 640 | 32 – 1280 | Eingabebildgröße in Pixeln |
normalize | bool | false | - | BBox-Koordinaten als 0 – 1 zurückgeben |
decimals | int | 5 | 0 – 10 | Dezimalpräzision für Koordinatenwerte |
source | string | - | - | Bild-URL oder base64-String (Alternative zu file) |
Gib entweder file oder source an. Die Antwort verwendet denselben Bild- und Metadatenvertrag wie die Modellvorhersage und gibt niemals den internen Modellpfad zurück.
Link to this sectionMetriken abrufen#
GET /api/deployments/{deploymentId}/metricsGibt Anfrageanzahlen, Latenz- und Fehlerratenmetriken mit Sparkline-Daten zurück.
Abfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
range | string | Zeitbereich: 1h, 6h, 24h (Standard), 7d, 30d |
sparkline | string | Auf true setzen für optimierte Sparkline-Daten für die Dashboard-Ansicht |
Link to this sectionLogs abrufen#
GET /api/deployments/{deploymentId}/logsAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
severity | string | Durch Kommas getrennter Filter: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | int | Anzahl der Einträge (Standard: 50, max: 200) |
pageToken | string | Pagination-Token von der vorherigen Antwort |
Link to this sectionExport-API#
Konvertiere Modelle für das Edge-Deployment in optimierte Formate wie ONNX, TensorRT, CoreML und LiteRT. Siehe Deploy-Dokumentation.
Link to this sectionExporte auflisten#
GET /api/exportsAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
modelId | string | Modell-ID (erforderlich) |
status | string | Nach Status filtern |
limit | int | Maximale Ergebnisse (Standard: 20, max: 100) |
Link to this sectionExport erstellen#
POST /api/exportsBody:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
modelId | string | Ja | Quellmodell-ID |
format | string | Ja | Exportformat (siehe Tabelle unten) |
gpuType | string | Bedingt | Erforderlich, wenn format gleich engine ist; verwende ein unterstütztes GPU- oder Jetson-Ziel |
args | Objekt | Nein | Export-Argumente (imgsz, quantize, dynamic, etc.) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId": "MODEL_ID", "format": "onnx"}' \
https://platform.ultralytics.com/api/exportsUnterstützte Formate:
Verwende das format-Argument aus der gemeinsamen Exporttabelle unten. PyTorch ist das Quellformat und kein API-Exportziel.
| Format | format-Argument | Modell | Metadaten | Argumente |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
Link to this sectionExport-Status abrufen#
GET /api/exports/{exportId}Link to this sectionExport abbrechen#
DELETE /api/exports/{exportId}Link to this sectionExport-Download verfolgen#
POST /api/exports/{exportId}/track-downloadLink to this sectionAktivitäts-API#
Sieh dir einen Feed der letzten Aktionen in deinem Konto an – Trainingsläufe, Uploads und mehr. Siehe Aktivitäts-Dokumentation.
Alle unten aufgeführten Aktivitätsrouten akzeptieren eine Authentifizierung per API-Key.
Link to this sectionAktivitäten auflisten#
GET /api/activityAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
limit | int | Seitengröße (Standard: 20, Maximum: 100) |
page | int | Seitennummer (Standard: 1) |
archived | boolean | true für Archiv-Tab, false für Posteingang |
search | string | Suche in Ereignisfeldern ohne Berücksichtigung der Groß-/Kleinschreibung |
start | Datum | Ereignisse an oder nach diesem Datum einbeziehen |
end | Datum | Ereignisse an oder vor diesem Datum einbeziehen |
export | boolean | Alle übereinstimmenden Ereignisse als JSON zurückgeben |
owner | string | Workspace-Benutzername |
Link to this sectionEreignisse als gesehen markieren#
POST /api/activity/mark-seenBody:
{
"all": true
}Oder spezifische IDs übergeben:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}Übergebe den optionalen owner-Abfrageparameter, um Ereignisse in einem Workspace zu markieren.
Link to this sectionEreignisse archivieren#
POST /api/activity/archiveBody:
{
"all": true,
"archive": true
}Oder spezifische IDs übergeben:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}Übergebe den optionalen owner-Abfrageparameter, um Workspace-Ereignisse zu archivieren oder wiederherzustellen.
Link to this sectionPapierkorb-API#
Gelöschte Elemente anzeigen und wiederherstellen. Elemente werden nach 30 Tagen endgültig entfernt. Siehe Papierkorb-Dokumentation.
Link to this sectionPapierkorb auflisten#
GET /api/trashAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
type | string | Filter: all, project, dataset, model |
page | int | Seitennummer (Standard: 1) |
limit | int | Elemente pro Seite (Standard: 50, Maximum: 200) |
owner | string | Benutzername des Workspace-Eigentümers |
Link to this sectionElement wiederherstellen#
POST /api/trashBody:
{
"id": "item_abc123",
"type": "dataset"
}Link to this sectionElement endgültig löschen#
DELETE /api/trashBody:
{
"id": "item_abc123",
"type": "dataset"
}Die endgültige Löschung kann nicht rückgängig gemacht werden. Die Ressource und alle zugehörigen Daten werden entfernt.
Link to this sectionPapierkorb leeren#
DELETE /api/trash/emptyLöscht alle Elemente im Papierkorb endgültig.
DELETE /api/trash/empty akzeptiert eine Authentifizierung per API-Key und löscht dauerhaft jedes Element im Papierkorb des ausgewählten Kontos oder Workspaces.
Link to this sectionAbrechnungs-API#
Überprüfe dein Guthaben, deine Plannutzung und deinen Transaktionsverlauf. Siehe Abrechnungsdokumentation.
Die Guthaben- und Transaktionsendpunkte akzeptieren einen optionalen owner-Abfrageparameter mit dem Benutzernamen des Workspace-Eigentümers.
Abrechnungsbeträge verwenden Cent (creditsCents), wobei 100 = $1.00 gilt.
Link to this sectionGuthaben abrufen#
GET /api/billing/balanceAntwort:
{
"creditsCents": 2500,
"plan": "free"
}Link to this sectionNutzungsübersicht abrufen#
GET /api/billing/usage-summaryGibt Plandetails, Limits und Nutzungsmetriken zurück.
Link to this sectionTransaktionen abrufen#
GET /api/billing/transactionsGibt den Transaktionsverlauf zurück (neueste zuerst).
Transaktionen umfassen kundenorientierte Ledger-Felder wie Betrag, resultierendes Guthaben, Datum, optionalen Modellkontext und Quittungs-URL. Interne Notizen, Stripe-Zahlungs-/Rückerstattungs-IDs und Idempotenz-Schlüssel werden nicht zurückgegeben.
Link to this sectionSpeicher-API#
Überprüfe deine Speichernutzungsaufschlüsselung nach Kategorie (Datensätze, Modelle, Exporte) und sieh dir deine größten Elemente an.
GET /api/storage akzeptiert eine Authentifizierung per API-Key. Verwende die Seite Einstellungen > Profil für dieselbe interaktive Aufschlüsselung.
Link to this sectionSpeicherinformationen abrufen#
GET /api/storageAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
details | boolean | Auf true setzen, um topItems (größte Datasets, Modelle, Exporte) einzuschließen. |
owner | string | Workspace-Benutzername. |
Antwort:
{
"tier": "free",
"usage": {
"storage": {
"current": 1073741824,
"limit": 107374182400,
"percent": 1.0
}
},
"region": "us",
"username": "johndoe",
"updatedAt": "2024-01-15T10:00:00Z",
"breakdown": {
"byCategory": {
"datasets": { "bytes": 536870912, "count": 2 },
"models": { "bytes": 268435456, "count": 4 },
"exports": { "bytes": 268435456, "count": 3 }
},
"topItems": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"sizeBytes": 536870912,
"type": "dataset"
},
{
"_id": "model_def456",
"name": "experiment-1",
"slug": "experiment-1",
"sizeBytes": 134217728,
"type": "model",
"parentName": "My Project",
"parentSlug": "my-project"
}
]
}
}Link to this sectionCloud-Speicher-Integrationen#
Verbinde und durchsuche schreibgeschützte GCS-, S3- oder Azure Blob-Speicherintegrationen:
GET /api/integrations/buckets
POST /api/integrations/buckets
POST /api/integrations/buckets/discover
GET /api/integrations/buckets/{id}/objectsAlle vier Vorgänge akzeptieren den optionalen owner-Abfrageparameter für einen Workspace. Das Durchsuchen von Objekten akzeptiert zudem den erforderlichen target-Parameter sowie optionale prefix- und Anbieter-cursor-Abfrageparameter. Request-Bodies für Verbindungs- und Erkennungsanfragen verwenden die Anbieter-Anmeldeinformationsschemata in der interaktiven OpenAPI-Referenz; Anmeldeinformationen werden niemals zurückgegeben.
Link to this sectionUpload-API#
Lade Dateien direkt in den Cloud-Speicher hoch, indem du signierte URLs für schnelle, zuverlässige Übertragungen verwendest. Das Abschließen eines Modell-Uploads hängt dessen Gewichte an. Das Abschließen eines Dataset-Archiv-Uploads zeichnet die Sitzung auf; übergebe diese sessionId an POST /api/datasets/ingest, um die Verarbeitung zu starten. Siehe Datendokumentation.
Link to this sectionSignierte Upload-URL abrufen#
POST /api/upload/signed-urlFordere eine signierte URL an, um eine Datei direkt in den Cloud-Speicher hochzuladen. Die signierte URL umgeht den API-Server für große Dateiübertragungen.
Body:
{
"assetType": "datasets",
"assetId": "dataset_abc123",
"filename": "my-dataset.zip",
"contentType": "application/zip",
"totalBytes": 52428800
}| Feld | Typ | Beschreibung |
|---|---|---|
assetType | string | Asset-Typ: models, datasets, images, videos |
assetId | string | ID des Ziel-Assets |
filename | string | Ursprünglicher Dateiname |
contentType | string | MIME-Typ |
totalBytes | int | Dateigröße in Bytes |
Antwort:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.example.com/...",
"expiresAt": "2026-02-22T12:00:00Z"
}Link to this sectionUpload abschließen#
POST /api/upload/completeBenachrichtige die Plattform, dass ein Datei-Upload abgeschlossen ist. Bei Modellen werden dadurch die hochgeladenen Gewichte angehängt. Bei Dataset-Archiven wird dadurch die Upload-Sitzung verifiziert und aufgezeichnet; rufe anschließend POST /api/datasets/ingest auf, um die Dataset-Verarbeitung zu starten.
Body:
{
"sessionId": "session_abc123",
"checksum": "<optional sha-256 hex>"
}Link to this sectionIntegrations-API#
Importiere Datasets von Drittanbietern. Siehe Integrations-Dokumentation.
Link to this sectionRoboflow-Importvorschau#
POST /api/integrations/roboflow/previewLöse einen Roboflow API-Key in einen Bulk-Import-Plan auf: Workspace-Informationen, welche Projekte neu importiert würden, Anzahl der bereits importierten Versionen (übersprungen) und nicht unterstützte Projekttypen. Der Roboflow API-Key wird im Body übergeben und nicht gespeichert.
Link to this sectionImport von Roboflow#
POST /api/integrations/roboflow/importStelle Dataset-Ingest-Jobs in die Warteschlange, um die ausgewählten Roboflow-Projekte in deinen Workspace zu importieren. Erfordert Speicherplatz, und jedes Dataset muss innerhalb des Import-Größenlimits deines Plans liegen.
Link to this sectionAPI-Keys API#
Verwalte deine API-Keys für den programmatischen Zugriff. Siehe API-Keys Dokumentation.
Link to this sectionAPI-Keys auflisten#
GET /api/api-keysAuthentifizierte API-Key-Clients erhalten wichtige Metadaten, niemals entschlüsselte existierende Schlüsselwerte. Ein neu erstellter Schlüssel wird einmal durch POST /api/api-keys zurückgegeben.
Übergebe den optionalen owner-Abfrageparameter, um Schlüssel für einen Workspace zu verwalten, für den du Bearbeiterzugriff hast.
Link to this sectionAPI-Key erstellen#
POST /api/api-keysBody:
{
"name": "training-server"
}Link to this sectionAPI-Key löschen#
DELETE /api/api-keysAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
keyId | string | Zu widerrufende API-Key-ID |
owner | string | Optionaler Workspace-Benutzername. |
Beispiel:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"Link to this sectionTeams & Mitglieder API#
Erstelle Team-Arbeitsbereiche, lade Mitglieder ein und verwalte Rollen für die Zusammenarbeit. Siehe Teams-Dokumentation.
Link to this sectionTeams auflisten#
GET /api/teamsLink to this sectionTeam erstellen#
POST /api/teams/createBody:
{
"username": "my-team",
"fullName": "My Team"
}Link to this sectionMitglieder auflisten#
GET /api/membersGibt Mitglieder des aktuellen Arbeitsbereichs zurück.
Link to this sectionMitglied einladen#
POST /api/membersBody:
{
"email": "user@example.com",
"role": "editor"
}| Rolle | Berechtigungen |
|---|---|
viewer | Schreibgeschützter Zugriff auf Arbeitsbereichsressourcen |
editor | Ressourcen erstellen, bearbeiten und löschen |
admin | Mitglieder, Abrechnung und alle Ressourcen verwalten (kann nur vom Team-Besitzer zugewiesen werden) |
Der Team-owner ist der Ersteller und kann nicht eingeladen werden. Die Eigentümerschaft wird separat über POST /api/members/transfer-ownership übertragen. Siehe Teams für vollständige Rollendetails.
Link to this sectionMitgliedsrolle aktualisieren#
PATCH /api/members/{userId}Link to this sectionMitglied entfernen#
DELETE /api/members/{userId}Link to this sectionEigentümerschaft übertragen#
POST /api/members/transfer-ownershipLink to this sectionExplore API#
Suche und durchstöbere öffentliche Datensätze und Projekte, die von der Community geteilt wurden. Siehe Explore-Dokumentation.
Link to this sectionÖffentliche Inhalte durchsuchen#
GET /api/explore/searchAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
q | string | Suchanfrage |
type | string | Ressourcentyp: all (Standard), projects, datasets |
sort | string | Sortierreihenfolge: newest (Standard), stars, oldest, name-asc, name-desc, count-desc, count-asc |
offset | int | Paginierungs-Offset (Standard: 0). Ergebnisse liefern 20 Elemente pro Seite. |
task | string | Optional: kommaseparierte YOLO-Aufgabentypen zum Filtern von Datasets (detect, segment, semantic, classify, pose, obb) |
author | string | Optionaler Filter für den Benutzername des Eigentümers. |
starred | boolean | Setze true, um den mit Stern markierten Inhalt des authentifizierten Aufrufers zurückzugeben; erfordert einen API-Key. |
Link to this sectionSidebar-Daten#
GET /api/explore/sidebarGibt kuratierte Inhalte für die Explore-Sidebar zurück.
Link to this sectionBenutzer- & Einstellungs-APIs#
Verwalte dein Profil, API-Keys, Speichernutzung und Team-Workspaces. Siehe Einstellungsdokumentation.
Link to this sectionKontoübersicht#
GET /api/account/summaryGibt den Plan, das Guthaben, die Ressourcenanzahl und die Team-Workspaces des authentifizierten Kontos zurück.
Link to this sectionBenutzer nach Benutzername abrufen#
GET /api/usersAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
username | string | Zu suchender Benutzername |
Link to this sectionBenutzer folgen oder entfolgen#
PATCH /api/usersBody:
{
"username": "target-user",
"followed": true
}Link to this sectionBenutzernamen-Verfügbarkeit prüfen#
GET /api/username/checkAbfrageparameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
username | string | Zu prüfender Benutzername |
suggest | bool | Optional: true, um einen Vorschlag einzuschließen, falls vergeben |
Link to this sectionEinstellungen#
GET /api/settings
POST /api/settingsBenutzerprofileinstellungen abrufen oder aktualisieren (Anzeigename, Bio, soziale Links, etc.).
Link to this sectionWorkspace-Icon#
POST /api/settings/icon
DELETE /api/settings/iconLade ein WebP-Profil-/Workspace-Icon mit bis zu 5 MB als Multipart-Formularfeld image hoch oder entferne es. Übergebe optional owner für ein Team-Workspace.
Link to this sectionPython-Integration#
Für eine einfachere Integration nutze das Ultralytics Python-Paket, das Authentifizierung, Uploads und das Streaming von Echtzeit-Metriken automatisch übernimmt.
Link to this sectionInstallation & Einrichtung#
pip install "ultralytics>=8.4.104"Installation überprüfen:
yolo checkLink to this sectionAuthentifizierung#
yolo settings api_key=YOUR_API_KEYLink to this sectionPlattform-Datensätze verwenden#
Referenziere Datensätze mit ul:// URIs:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/datasets/your-dataset",
epochs=100,
imgsz=640,
)URI-Format:
| Muster | Beschreibung |
|---|---|
ul://username/datasets/slug | Datensatz |
ul://username/project-name | Projekt |
ul://username/project/model-name | Spezifisches Modell |
ul://ultralytics/yolo26/yolo26n | Offizielles Modell |
Link to this sectionPush an die Plattform#
Ergebnisse an ein Plattform-Projekt senden:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Results automatically sync to Platform
model.train(
data="coco8.yaml",
epochs=100,
project="your-username/my-project",
name="experiment-1",
)Was synchronisiert wird:
- Trainingsmetriken (Echtzeit)
- Finale Modellgewichte
- Validierungsdiagramme
- Konsolenausgabe
- Systemmetriken
Link to this sectionAPI-Beispiele#
Lade ein Modell von der Plattform:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")Inferenz ausführen:
results = model("image.jpg")
# Access results
for r in results:
boxes = r.boxes # Detection boxes
masks = r.masks # Segmentation masks
keypoints = r.keypoints # Pose keypoints
probs = r.probs # Classification probabilitiesModell exportieren:
# Export to ONNX
model.export(format="onnx", imgsz=640, quantize=16)
# Export to TensorRT
model.export(format="engine", imgsz=640, quantize=16)
# Export to CoreML
model.export(format="coreml", imgsz=640) # use imgsz=224 for classificationValidierung:
metrics = model.val(data="ul://username/datasets/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")Link to this sectionFAQ#
Link to this sectionWie paginiere ich große Ergebnisse?#
Die meisten Endpunkte verwenden einen limit-Parameter, um zu steuern, wie viele Ergebnisse pro Anfrage zurückgegeben werden:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"Die Aktivitäts- und Papierkorb-Endpunkte unterstützen zusätzlich einen page-Parameter für seitenbasierte Paginierung:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"Der Explore-Search-Endpunkt verwendet offset anstelle von page, mit einer festen Seitengröße von 20:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"Link to this sectionKann ich die API ohne SDK nutzen?#
Die oben dokumentierten öffentlichen REST-Vorgänge sind ohne das Python SDK verfügbar. Das SDK ist ein praktischer Wrapper, der Funktionen wie Echtzeit-Metrik-Streaming und automatische Modell-Uploads hinzufügt. Du kannst den maschinenlesbaren Vertrag interaktiv unter platform.ultralytics.com/api/docs erkunden; Kontoflüsse, die nur über Browsersitzungen laufen, verbleiben in der Platform UI.
Link to this sectionGibt es API-Client-Bibliotheken?#
Verwende das Ultralytics Python-Paket oder stelle direkte HTTP-Anfragen aus einer beliebigen Sprache.
Link to this sectionWie gehe ich mit Ratenbegrenzungen um?#
Nutze den Retry-After-Header aus der 429-Antwort, um die richtige Zeit zu warten:
import time
import requests
def api_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code != 429:
return response
wait = int(response.headers.get("Retry-After", 2**attempt))
time.sleep(wait)
raise RuntimeError("Rate limit exceeded")Link to this sectionWie finde ich meine Modell- oder Datensatz-ID?#
Ressourcen-IDs werden von Create-, List- und Get-API-Antworten zurückgegeben. Platform-Seiten-URLs verwenden menschenlesbare Slugs, keine Datenbank-IDs:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project modelVerwende die Listenendpunkte, um die entsprechende _id für ein Modell, ein Dataset, ein Projekt, ein Deployment oder eine andere Ressource zu finden.