Link to this sectionRiferimento REST API#
Ultralytics Platform fornisce una REST API completa per l'accesso programmatico a dataset, modelli, training e deployment.

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsEsplora il riferimento completo dell'API interattiva nella documentazione API di Ultralytics Platform.
Link to this sectionPanoramica API#
L'API è organizzata attorno alle risorse principali della piattaforma:
graph LR
A[API Key] --> B[Datasets]
A --> C[Projects]
A --> D[Models]
A --> E[Deployments]
B -->|train on| D
C -->|contains| D
D -->|deploy to| E
D -->|export| F[Exports]
B -->|auto-annotate| B| Risorsa | Descrizione | Operazioni chiave |
|---|---|---|
| Dataset | Raccolte di immagini etichettate | CRUD, immagini, etichette, esportazione, versioni, clonazione |
| Progetti | Spazi di lavoro per il training | CRUD, clonazione, icona |
| Modelli | Checkpoint addestrati | CRUD, predizione, download, clonazione, esportazione |
| Deployment | Endpoint di inferenza dedicati | CRUD, avvio/arresto, metriche, log, stato |
| Esportazioni | Processi di conversione di formato | Creazione, stato, download |
| Training | Processi di training su GPU in cloud | Avvio, stato, annullamento |
| Fatturazione | Crediti e abbonamenti | Saldo, ricarica, metodi di pagamento |
| Team | Collaborazione nello spazio di lavoro | Membri, inviti, ruoli |
Link to this sectionAutenticazione#
Le API delle risorse come dataset, progetti, modelli, training, esportazioni e predizioni utilizzano l'autenticazione tramite API key. Gli endpoint pubblici (elenco di dataset, progetti e modelli pubblici) supportano l'accesso in lettura anonimo senza una chiave. Le rotte orientate all'account, inclusi flussi di attività, impostazioni, team, fatturazione e GDPR, richiedono attualmente una sessione browser autenticata e non sono disponibili tramite API key.
Link to this sectionOttieni API Key#
- Vai su
Settings>API Keys - Clicca su
Create Key - Copia la chiave generata
Vedi API Keys per istruzioni dettagliate.
Link to this sectionHeader di autorizzazione#
Includi la tua API key in tutte le richieste:
Authorization: Bearer YOUR_API_KEYLe API key utilizzano il formato ul_ seguito da 40 caratteri esadecimali. Mantieni segreta la tua chiave: non caricarla mai sul controllo versione e non condividerla pubblicamente.
Link to this sectionEsempio#
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsLink to this sectionBase URL#
Tutti gli endpoint API utilizzano:
https://platform.ultralytics.com/api
Link to this sectionLimiti di frequenza#
L'API impone limiti di frequenza per API key (sliding-window, basati su Upstash Redis) per proteggersi dagli abusi, mantenendo al contempo l'uso legittimo senza restrizioni. Il traffico anonimo è inoltre protetto dai controlli contro gli abusi a livello di piattaforma di Vercel.
In caso di limitazione, l'API restituisce 429 con metadati per il ripristino:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000ZLink to this sectionLimiti per API Key#
I limiti di frequenza vengono applicati automaticamente in base all'endpoint chiamato. Le operazioni onerose hanno limiti più rigidi per prevenire abusi, mentre le operazioni CRUD standard condividono un generoso limite predefinito:
| Endpoint | Limite | Si applica a |
|---|---|---|
| Predefinito | 100 richieste/min | Tutti gli endpoint non elencati di seguito (elenco, get, creazione, aggiornamento, eliminazione) |
| Training | 10 richieste/min | Avvio di processi di training in cloud (POST /api/training/start) |
| Upload | 10 richieste/min | Caricamento file, URL firmati e ingestione dataset |
| Predizione | 20 richieste/min | Inferenza condivisa del modello (POST /api/models/{id}/predict) |
| Esporta | 20 richieste/min | Esportazioni di formato del modello (POST /api/exports), esportazioni NDJSON di dataset e creazione di versioni |
| Download | 30 richieste/min | Download di file dei pesi del modello (GET /api/models/{id}/files) |
| Dedicato | Illimitato | Endpoint dedicati — il tuo servizio, senza limiti API |
Ogni categoria ha un contatore indipendente per ogni API key. Ad esempio, effettuare 20 richieste di predizione non influisce sulla tua soglia predefinita di 100 richieste/min.
Link to this sectionEndpoint dedicati (Illimitato)#
Gli endpoint dedicati non sono soggetti ai limiti di frequenza delle API key. Quando distribuisci un modello su un endpoint dedicato, le richieste a quell'URL dell'endpoint (ad esempio, https://predict-abc123.run.app/predict) vanno direttamente al tuo servizio dedicato senza limitazioni di frequenza dalla piattaforma. Paghi per la potenza di calcolo, quindi ottieni il throughput dalla configurazione del tuo servizio dedicato anziché dai limiti API condivisi.
Quando ricevi un codice di stato 429, attendi Retry-After (o fino a X-RateLimit-Reset) prima di riprovare. Vedi le FAQ sui limiti di frequenza per un'implementazione dell'esponenziale backoff.
Link to this sectionFormato risposta#
Link to this sectionRisposte di successo#
Le risposte restituiscono JSON con campi specifici per la risorsa:
{
"datasets": [...],
"total": 100
}Link to this sectionRisposte di errore#
{
"error": "Dataset not found"
}| Stato HTTP | Significato |
|---|---|
200 | Successo |
201 | Creato |
400 | Richiesta non valida |
401 | Autenticazione richiesta |
403 | Permessi insufficienti |
404 | Risorsa non trovata |
409 | Conflitto (duplicato) |
429 | Limite di richieste superato |
500 | Errore del server |
Link to this sectionAPI dei Dataset#
Crea, consulta e gestisci dataset di immagini etichettate per l'addestramento dei modelli YOLO. Vedi la documentazione sui Dataset.
Link to this sectionElenca Dataset#
GET /api/datasetsParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
username | stringa | Filtra per nome utente |
slug | stringa | Recupera un singolo dataset tramite slug |
limit | int | Elementi per pagina (predefinito: 1000, massimo: 1000) |
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"Risposta:
{
"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 sectionOttieni Dataset#
GET /api/datasets/{datasetId}Restituisce i dettagli completi del dataset inclusi metadati, nomi delle classi e conteggi delle suddivisioni.
Link to this sectionCrea Dataset#
POST /api/datasetsCorpo:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}Valori task validi: detect, segment, semantic, classify, pose, obb.
Link to this sectionAggiorna Dataset#
PATCH /api/datasets/{datasetId}Corpo (aggiornamento parziale):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}Link to this sectionIcona del dataset#
Carica un'icona del dataset (form multipart con file immagine):
POST /api/datasets/{datasetId}/iconRimuovi l'icona del dataset:
DELETE /api/datasets/{datasetId}/iconEntrambi richiedono una sessione browser attiva sulla piattaforma; non sono disponibili tramite chiave API.
Link to this sectionElimina Dataset#
DELETE /api/datasets/{datasetId}Esegue l'eliminazione logica del dataset (spostato nel cestino, recuperabile per 30 giorni).
Link to this sectionClona dataset#
POST /api/datasets/{datasetId}/cloneCrea una copia del dataset con tutte le immagini e le etichette. Possono essere clonati solo i dataset pubblici, di tua proprietà o modificabili all'interno del workspace. Richiede una sessione browser attiva sulla piattaforma — non disponibile tramite API key.
Corpo (tutti i campi sono opzionali):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}Link to this sectionEsporta Dataset#
GET /api/datasets/{datasetId}/exportRestituisce una risposta JSON con un URL di download firmato per l'ultima esportazione del dataset.
Parametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
v | intero | Numero di versione (indicizzato da 1). Se omesso, restituisce l'ultima esportazione (non memorizzata nella cache). |
Risposta:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}Link to this sectionCrea Versione Dataset#
POST /api/datasets/{datasetId}/exportCrea un nuovo snapshot di versione numerato del dataset. Solo per il proprietario. La versione cattura il conteggio attuale delle immagini, delle classi, delle annotazioni e la distribuzione delle suddivisioni, quindi genera e archivia un'esportazione NDJSON immutabile.
Corpo della richiesta:
{
"description": "Added 500 training images"
}Tutti i campi sono opzionali. Il campo description è un'etichetta fornita dall'utente per la versione.
Risposta:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}Link to this sectionAggiorna Descrizione Versione#
PATCH /api/datasets/{datasetId}/exportAggiorna la descrizione di una versione esistente. Solo per il proprietario.
Corpo della richiesta:
{
"version": 2,
"description": "Fixed mislabeled classes"
}Risposta:
{
"ok": true
}Link to this sectionOttieni Statistiche Classi#
GET /api/datasets/{datasetId}/class-statsRestituisce la distribuzione delle classi, la mappa di calore della posizione e le statistiche dimensionali. I risultati sono memorizzati nella cache fino a 5 minuti.
Risposta:
{
"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 sectionGestisci Classi#
Unisci classi (riassegna le annotazioni dalle classi di origine a una destinazione, quindi rimuovi le origini):
POST /api/datasets/{datasetId}/classes/mergeElimina classi:
POST /api/datasets/{datasetId}/classes/deleteLink to this sectionRidistribuisci Split#
POST /api/datasets/{datasetId}/splits/redistributeRiassegna le immagini tra gli split train/val/test. Tutti e tre richiedono una sessione browser attiva sulla piattaforma — non disponibile tramite API key.
Link to this sectionEmbedding del Dataset#
GET /api/datasets/{datasetId}/embeddings
POST /api/datasets/{datasetId}/embeddings
DELETE /api/datasets/{datasetId}/embeddingsGET restituisce il sommario dell'analisi UMAP corrente e lo stato del job attivo; POST accoda un job di analisi degli embedding; DELETE annulla il job attivo.
Link to this sectionClustering Immagini#
GET /api/datasets/{datasetId}/images/clusteringRestituisce il layout 2D UMAP e i metadati per singola immagine per la vista a dispersione (paginata e con limitazione di frequenza).
Link to this sectionOttieni Modelli Addestrati sul Dataset#
GET /api/datasets/{datasetId}/modelsRestituisce i modelli che sono stati addestrati utilizzando questo dataset.
Risposta:
{
"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 sectionAnnotazione Automatica del Dataset#
POST /api/datasets/{datasetId}/predictEsegue l'inferenza YOLO sulle immagini del dataset per generare automaticamente le annotazioni. Utilizza un modello selezionato per prevedere le etichette per le immagini non annotate.
Corpo:
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
imageHash | stringa | Sì | Hash dell'immagine da annotare |
modelId | stringa | No | Modello da utilizzare per l'inferenza, come URI ul:// (es. ul://username/project/model). Se omesso, viene utilizzato il modello predefinito specifico per il task del dataset. |
confidence | float | No | Soglia di confidenza (predefinito: 0.25) |
iou | float | No | Soglia IoU (predefinito: 0.7) |
Link to this sectionIngestione Dataset#
POST /api/datasets/ingestCrea un processo di ingestione del dataset per elaborare file ZIP o TAR caricati, inclusi .tar.gz e .tgz, contenenti immagini ed etichette.
Il corpo della richiesta accetta esattamente uno tra sessionId (una sessione di caricamento di un archivio) o sourceUrl (un URL remoto ZIP, TAR, TAR.GZ, TGZ o NDJSON), più un targetSplit facoltativo (train, val o test) per sovrascrivere la struttura degli split dell'archivio.
graph LR
A[Upload Archive] --> B[POST /api/datasets/ingest]
B --> C[Process Archive]
C --> D[Extract images]
C --> E[Parse labels]
C --> F[Generate thumbnails]
D & E & F --> G[Dataset ready]Link to this sectionImmagini del Dataset#
Link to this sectionElenca Immagini#
GET /api/datasets/{datasetId}/imagesParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
split | stringa | Filtra per suddivisione: train, val, test |
offset | int | Offset di paginazione (predefinito: 0) |
limit | int | Elementi per pagina (predefinito: 50, massimo: 5000) |
sort | stringa | Ordinamento: newest, oldest, name-asc, name-desc, height-asc, height-desc, width-asc, width-desc, size-asc, size-desc, labels-asc, labels-desc (alcuni disabilitati per dataset con più di 100k immagini) |
hasLabel | stringa | Filtra per stato dell'etichetta (true o false) |
hasError | stringa | Filtra per stato di errore (true o false) |
search | stringa | Cerca per nome file o hash dell'immagine |
classIds | stringa | ID delle classi separati da virgola; restituisce le immagini che contengono una qualsiasi delle classi specificate |
includeThumbnails | stringa | Includi URL delle miniature firmati (predefinito: true) |
includeImageUrls | stringa | Includi URL completi dell'immagine firmati (predefinito: false) |
Link to this sectionOttieni URL Firmati delle Immagini#
POST /api/datasets/{datasetId}/images/urlsOttieni URL firmati per un batch di hash di immagini (per la visualizzazione nel browser).
Link to this sectionElimina Immagine#
DELETE /api/datasets/{datasetId}/images/{hash}Link to this sectionOttieni Etichette Immagine#
GET /api/datasets/{datasetId}/images/{hash}/labelsRestituisce annotazioni e nomi delle classi per un'immagine specifica.
Link to this sectionAggiorna Etichette Immagine#
PUT /api/datasets/{datasetId}/images/{hash}/labelsCorpo:
{
"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] }
]
}Le coordinate dell'etichetta utilizzano valori normalizzati YOLO tra 0 e 1. I riquadri di delimitazione utilizzano [x_center, y_center, width, height]. Le etichette di segmentazione utilizzano segments, un elenco appiattito di vertici del poligono [x1, y1, x2, y2, ...].
Link to this sectionOperazioni in Massa sulle Immagini#
Sposta le immagini tra le suddivisioni (train/val/test) all'interno di un dataset:
PATCH /api/datasets/{datasetId}/images/bulkEliminazione in massa delle immagini:
DELETE /api/datasets/{datasetId}/images/bulkLink to this sectionAPI dei Progetti#
Organizza i tuoi modelli in progetti. Ogni modello appartiene a un progetto. Vedi la documentazione sui Progetti.
Link to this sectionElenca Progetti#
GET /api/projectsParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
username | stringa | Filtra per nome utente |
limit | int | Elementi per pagina |
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
Link to this sectionOttieni Progetto#
GET /api/projects/{projectId}Link to this sectionCrea Progetto#
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 sectionAggiorna Progetto#
PATCH /api/projects/{projectId}Link to this sectionElimina Progetto#
DELETE /api/projects/{projectId}Esegue l'eliminazione logica del progetto (spostato nel cestino).
Link to this sectionClona Progetto#
POST /api/projects/{projectId}/cloneClona un progetto pubblico (con tutti i suoi modelli) nel tuo spazio di lavoro. Richiede una sessione attiva nel browser della piattaforma — non disponibile tramite chiave API.
Link to this sectionIcona Progetto#
Carica un'icona del progetto (modulo multipart con file immagine):
POST /api/projects/{projectId}/iconRimuovi l'icona del progetto:
DELETE /api/projects/{projectId}/iconEntrambi richiedono una sessione browser attiva sulla piattaforma; non sono disponibili tramite chiave API.
Link to this sectionAPI Modelli#
Gestisci modelli YOLO addestrati: visualizza le metriche, scarica i pesi, esegui l'inferenza ed esporta in altri formati. Consulta la documentazione sui Modelli.
Link to this sectionElenco Modelli#
GET /api/modelsParametri di query:
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
projectId | stringa | Sì | ID Progetto (obbligatorio) |
fields | stringa | No | Set di campi: summary, charts |
ids | stringa | No | ID modello separati da virgola |
limit | int | No | Risultati massimi (default 20, max 100) |
Link to this sectionElenco Modelli Completati#
GET /api/models/completedRestituisce i modelli che hanno terminato l'addestramento (da utilizzare nei selettori di modelli e nel deployment).
Link to this sectionOttieni Modello#
GET /api/models/{modelId}Link to this sectionCrea Modello#
POST /api/modelsCorpo JSON:
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
projectId | stringa | Sì | ID progetto di destinazione |
slug | stringa | No | Slug URL (alfanumerico minuscolo/trattini) |
name | stringa | No | Nome visualizzato (max 100 caratteri) |
description | stringa | No | Descrizione del modello (max 1000 caratteri) |
task | stringa | No | Tipo di attività (detect, segment, semantic, pose, obb, classify) |
Il caricamento dei file .pt del modello viene gestito separatamente. Usa l'interfaccia utente della piattaforma per trascinare i file del modello in un progetto.
Link to this sectionAggiorna Modello#
PATCH /api/models/{modelId}Link to this sectionElimina Modello#
DELETE /api/models/{modelId}Link to this sectionScarica File Modello#
GET /api/models/{modelId}/filesRestituisce URL di download firmati per i file del modello.
Link to this sectionClona modello#
POST /api/models/{modelId}/cloneClona un modello pubblico in uno dei tuoi progetti. Richiede una sessione browser attiva sulla piattaforma; non disponibile tramite chiave API.
Corpo:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
targetProjectSlug | stringa | Sì | Slug del progetto di destinazione |
modelName | stringa | No | Nome per il modello clonato |
description | stringa | No | Descrizione del modello |
owner | stringa | No | Nome utente del team (per la clonazione dell'area di lavoro) |
Link to this sectionTraccia Download#
POST /api/models/{modelId}/track-downloadTraccia le analisi di download del modello.
Link to this sectionEsegui l'inferenza#
POST /api/models/{modelId}/predictModulo Multipart:
| Campo | Tipo | Descrizione |
|---|---|---|
file | file | File immagine o video (es. JPG, PNG, WebP, BMP, TIFF; MP4, MOV, AVI) |
conf | float | Soglia di confidenza (predefinito: 0.25) |
iou | float | Soglia IoU (predefinito: 0.7) |
imgsz | int | Dimensioni immagine in pixel (default: 640) |
source | stringa | URL dell'immagine o immagine codificata in base64 (alternativa a file) |
La dimensione massima di caricamento è 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/predictRisposta:
{
"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 sectionOttieni Token di Predizione#
POST /api/models/{modelId}/predict/tokenQuesta rotta è utilizzata dalla scheda Predict nell'app per emettere token di inferenza a breve durata per chiamate dirette browser → predict-service (latenza inferiore, nessun proxy API). Richiede una sessione browser attiva sulla piattaforma e non è disponibile tramite chiave API. Per l'inferenza programmatica, chiama POST /api/models/{modelId}/predict con la tua chiave API.
Link to this sectionRiscaldamento Modello#
POST /api/models/{modelId}/predict/warmupLa rotta di riscaldamento (warmup) è utilizzata dalla scheda Predict per precaricare i pesi di un modello sul servizio di predizione prima della prima inferenza dell'utente. Richiede una sessione browser attiva sulla piattaforma e non è disponibile tramite chiave API.
Link to this sectionAPI di Addestramento#
Avvia l'addestramento YOLO su GPU cloud (24 tipi di GPU da RTX 2000 Ada a B300) e monitora l'avanzamento in tempo reale. Consulta la documentazione sull'Addestramento in Cloud.
graph LR
A[POST /training/start] --> B[Job Created]
B --> C{Training}
C -->|progress| D[GET /models/id/training]
C -->|cancel| E[DELETE /models/id/training]
C -->|complete| F[Model Ready]
F --> G[Deploy or Export]Link to this sectionAvvia Addestramento#
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/startI tipi di GPU disponibili includono rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000, b300 e altri. Consulta Addestramento in Cloud per l'elenco completo con i prezzi.
Link to this sectionOttieni disponibilità GPU#
GET /api/training/gpu-availabilityRestituisce lo stato attuale dello stock di GPU (High, Medium, Low o null) indicizzato per ID tipo di GPU. Pubblico, nessuna autenticazione richiesta; memorizzato nella cache per 5 minuti.
Link to this sectionOttieni Stato Addestramento#
GET /api/models/{modelId}/trainingRestituisce lo stato corrente del lavoro di addestramento, le metriche e l'avanzamento di un modello. I progetti pubblici sono accessibili in modo anonimo; i progetti privati richiedono una sessione browser attiva sulla piattaforma (questa rotta non accetta autenticazione tramite chiave API).
Link to this sectionAnnulla Addestramento#
DELETE /api/models/{modelId}/trainingTermina l'istanza di calcolo in esecuzione e contrassegna il lavoro come annullato. Richiede una sessione browser attiva sulla piattaforma; non disponibile tramite chiave API.
Link to this sectionAPI Deployments#
Distribuisci modelli su endpoint di inferenza dedicati con controlli di integrità e monitoraggio. I nuovi deployment utilizzano di default lo scale-to-zero e l'API accetta un oggetto resources opzionale. Consulta la documentazione sugli Endpoint.
Solo GET /api/deployments, POST /api/deployments, GET /api/deployments/{deploymentId} e DELETE /api/deployments/{deploymentId} supportano l'autenticazione tramite chiave API. Le sotto-rotte predict, health, logs, metrics, start e stop richiedono una sessione browser attiva sulla piattaforma: sono proxy di convenienza per l'interfaccia utente dell'app. Per l'inferenza programmatica, chiama direttamente l'URL dell'endpoint del deployment (es. https://predict-abc123.run.app/predict) con la tua chiave API. Gli endpoint dedicati non hanno limiti di velocità.
graph LR
A[Create] --> B[Deploying]
B --> C[Ready]
C -->|stop| D[Stopped]
D -->|start| C
C -->|delete| E[Deleted]
D -->|delete| E
C -->|predict| F[Inference Results]Link to this sectionElenco Deployments#
GET /api/deploymentsParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
modelId | stringa | Filtra per modello |
status | stringa | Filtra per stato |
limit | int | Risultati massimi (default: 20, max: 100) |
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
Link to this sectionCrea Deployment#
POST /api/deploymentsCorpo:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
modelId | stringa | Sì | ID modello da distribuire |
name | stringa | Sì | Nome deployment |
region | stringa | Sì | Regione del deployment |
resources | oggetto | No | Configurazione delle risorse (cpu, memoryGi, minInstances, maxInstances) |
Crea un endpoint di inferenza dedicato nella regione specificata. L'endpoint è accessibile globalmente tramite un URL univoco.
La finestra di dialogo di deployment attualmente invia i default fissi di cpu=1, memoryGi=2, minInstances=0 e maxInstances=1. La rotta API accetta un oggetto resources, ma i limiti del piano limitano minInstances a 0 e maxInstances a 1.
Scegli una regione vicina ai tuoi utenti per ottenere la latenza più bassa. L'interfaccia utente della piattaforma mostra le stime di latenza per tutte le 43 regioni disponibili.
Link to this sectionOttieni Deployment#
GET /api/deployments/{deploymentId}Link to this sectionElimina Deployment#
DELETE /api/deployments/{deploymentId}Link to this sectionAvvia Deployment#
POST /api/deployments/{deploymentId}/startRiprendi un deployment interrotto.
Link to this sectionInterrompi Deployment#
POST /api/deployments/{deploymentId}/stopMetti in pausa un deployment in esecuzione (interrompe la fatturazione).
Link to this sectionControllo Integrità#
GET /api/deployments/{deploymentId}/healthRestituisce lo stato di integrità dell'endpoint di deployment.
Link to this sectionEsegui Inferenza sul Deployment#
POST /api/deployments/{deploymentId}/predictInvia un'immagine direttamente a un endpoint di deployment per l'inferenza. Funzionalmente equivalente alla predizione del modello, ma instradata attraverso l'endpoint dedicato per una latenza inferiore.
Modulo Multipart:
| Campo | Tipo | Descrizione |
|---|---|---|
file | file | File immagine (JPEG, PNG, WebP) |
conf | float | Soglia di confidenza (predefinito: 0.25) |
iou | float | Soglia IoU (predefinito: 0.7) |
imgsz | int | Dimensioni immagine in pixel (default: 640) |
Link to this sectionOttieni Metriche#
GET /api/deployments/{deploymentId}/metricsRestituisce il conteggio delle richieste, la latenza e le metriche del tasso di errore con dati sparkline.
Parametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
range | stringa | Intervallo di tempo: 1h, 6h, 24h (default), 7d, 30d |
sparkline | stringa | Imposta su true per dati sparkline ottimizzati per la visualizzazione sulla dashboard |
Link to this sectionOttieni Log#
GET /api/deployments/{deploymentId}/logsParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
severity | stringa | Filtro separato da virgola: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | int | Numero di voci (default: 50, max: 200) |
pageToken | stringa | Token di paginazione dalla risposta precedente |
Link to this sectionAPI di Monitoraggio#
GET /api/monitoring è una rotta riservata all'interfaccia utente e richiede una sessione del browser della piattaforma attiva. Non accetta l'autenticazione tramite API-key. Interroga le metriche del singolo deployment tramite le rotte specifiche per deployment (anch'esse accessibili solo tramite sessione del browser) oppure utilizza Cloud Monitoring exports sul servizio Cloud Run distribuito per l'accesso programmatico.
Link to this sectionMetriche aggregate#
GET /api/monitoringRestituisce le metriche aggregate di tutti i deployment dell'utente: numero totale di richieste, deployment attivi, tasso di errore e latenza media.
Link to this sectionAPI di esportazione#
Converti i modelli in formati ottimizzati come ONNX, TensorRT, CoreML e TFLite per il deployment edge. Consulta la documentazione sul deployment.
Link to this sectionElenco esportazioni#
GET /api/exportsParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
modelId | stringa | ID modello (obbligatorio) |
status | stringa | Filtra per stato |
limit | int | Risultati massimi (default: 20, max: 100) |
Link to this sectionCrea esportazione#
POST /api/exportsCorpo:
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
modelId | stringa | Sì | ID modello sorgente |
format | stringa | Sì | Formato di esportazione (vedi tabella sotto) |
gpuType | stringa | Condizionale | Obbligatorio quando format è engine (TensorRT) |
args | oggetto | No | Argomenti di esportazione (imgsz, half, dynamic, ecc.) |
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/exportsFormati supportati:
| Formato | Valore | Caso d'uso |
|---|---|---|
| ONNX | onnx | Inferenza cross-platform |
| TorchScript | torchscript | Deployment PyTorch |
| OpenVINO | openvino | Hardware Intel |
| TensorRT | engine | Ottimizzazione GPU NVIDIA |
| CoreML | coreml | Dispositivi Apple |
| TFLite | tflite | Mobile ed embedded |
| TF SavedModel | saved_model | TensorFlow Serving |
| TF GraphDef | pb | Grafo congelato TensorFlow |
| PaddlePaddle | paddle | Baidu PaddlePaddle |
| NCNN | ncnn | Rete neurale mobile |
| Edge TPU | edgetpu | Dispositivi Google Coral |
| TF.js | tfjs | Inferenza via browser |
| MNN | mnn | Inferenza mobile Alibaba |
| RKNN | rknn | NPU Rockchip |
| Qualcomm | qnn | NPU Qualcomm Snapdragon |
| IMX | imx | Sensore Sony IMX500 |
| Axelera | axelera | Acceleratori Axelera AI |
| ExecuTorch | executorch | Runtime Meta ExecuTorch |
| DeepX | deepx | Acceleratori NPU DeepX |
Link to this sectionOttieni stato esportazione#
GET /api/exports/{exportId}Link to this sectionAnnulla esportazione#
DELETE /api/exports/{exportId}Link to this sectionTraccia download esportazione#
POST /api/exports/{exportId}/track-downloadLink to this sectionAPI di attività#
Visualizza un feed delle azioni recenti sul tuo account: esecuzioni di training, upload e altro. Consulta la documentazione sull'attività.
Le rotte di attività sono alimentate da richieste autenticate dal browser tramite l'interfaccia utente della piattaforma. Non sono esposte come API pubblica, non accettano l'autenticazione tramite API-key e le strutture delle rotte qui sotto sono documentate solo per riferimento. Usa il feed di attività nell'interfaccia utente della piattaforma per visualizzare, contrassegnare o archiviare gli eventi.
Link to this sectionElenco attività#
GET /api/activityParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
limit | int | Dimensione pagina (default: 20, max: 100) |
page | int | Numero di pagina (default: 1) |
archived | boolean | true per la scheda Archivio, false per la Posta in arrivo |
search | stringa | Ricerca case-insensitive nei campi evento |
Link to this sectionContrassegna eventi come letti#
POST /api/activity/mark-seenCorpo:
{
"all": true
}Oppure passa ID specifici:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}Link to this sectionArchivia eventi#
POST /api/activity/archiveCorpo:
{
"all": true,
"archive": true
}Oppure passa ID specifici:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}Link to this sectionAPI cestino#
Visualizza e ripristina gli elementi eliminati. Gli elementi vengono rimossi definitivamente dopo 30 giorni. Consulta la documentazione sul cestino.
Link to this sectionElenco cestino#
GET /api/trashParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
type | stringa | Filtro: all, project, dataset, model |
page | int | Numero di pagina (default: 1) |
limit | int | Elementi per pagina (default: 50, max: 200) |
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
Link to this sectionRipristina elemento#
POST /api/trashCorpo:
{
"id": "item_abc123",
"type": "dataset"
}Link to this sectionElimina definitivamente elemento#
DELETE /api/trashCorpo:
{
"id": "item_abc123",
"type": "dataset"
}L'eliminazione definitiva non può essere annullata. La risorsa e tutti i dati associati verranno rimossi.
Link to this sectionSvuota cestino#
DELETE /api/trash/emptyElimina definitivamente tutti gli elementi nel cestino.
DELETE /api/trash/empty richiede una sessione del browser autenticata e non è disponibile tramite API-key. Usa invece il pulsante Svuota cestino nell'interfaccia utente.
Link to this sectionAPI di fatturazione#
Controlla il tuo saldo crediti, acquista crediti, visualizza lo storico delle transazioni e configura la ricarica automatica. Consulta la documentazione sulla fatturazione.
Gli importi di fatturazione utilizzano centesimi (creditsCents) dove 100 = $1.00.
Link to this sectionOttieni saldo#
GET /api/billing/balanceParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
Risposta:
{
"creditsCents": 2500,
"plan": "free"
}Link to this sectionOttieni riepilogo utilizzo#
GET /api/billing/usage-summaryRestituisce i dettagli del piano, i limiti e le metriche di utilizzo.
Link to this sectionOttieni transazioni#
GET /api/billing/transactionsRestituisce lo storico delle transazioni (i più recenti per primi).
Parametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
Link to this sectionCrea sessione di checkout#
POST /api/billing/checkout-sessionCorpo:
{
"amount": 25,
"owner": "team-username"
}| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
amount | number | Sì | Importo in dollari ($5-$1000) |
owner | stringa | No | Nome utente del team per le ricariche dello spazio di lavoro (richiede ruolo amministratore) |
Crea una sessione di checkout per l'acquisto di crediti.
Link to this sectionCrea checkout abbonamento#
POST /api/billing/subscription-checkoutCrea una sessione di checkout per l'aggiornamento dell'abbonamento Pro.
Corpo:
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
planId | stringa | Sì | Piano a cui abbonarsi (pro) |
billingCycle | stringa | No | Ciclo di fatturazione: monthly (default) o yearly |
owner | stringa | No | Nome utente del team per gli aggiornamenti dello spazio di lavoro (richiede ruolo amministratore) |
Link to this sectionAnnulla o riprendi abbonamento#
DELETE /api/billing/subscription-checkoutAnnulla un abbonamento Pro alla fine del periodo per impostazione predefinita. Invia {"resume": true} per riprendere una cancellazione già programmata prima che finisca il periodo di fatturazione.
Corpo:
{
"resume": true
}Link to this sectionRicarica automatica#
Aggiungi automaticamente crediti quando il saldo scende sotto una soglia.
Link to this sectionOttieni la configurazione del ricaricamento automatico#
GET /api/billing/auto-topupParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
owner | stringa | Nome utente del proprietario dello spazio di lavoro |
Link to this sectionAggiorna la configurazione del ricaricamento automatico#
PATCH /api/billing/auto-topupCorpo:
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}Link to this sectionMetodi di pagamento#
Link to this sectionElenca i metodi di pagamento#
GET /api/billing/payment-methodsLink to this sectionCrea setup intent#
POST /api/billing/payment-methods/setupRestituisce un client secret per aggiungere un nuovo metodo di pagamento.
Link to this sectionImposta il metodo di pagamento predefinito#
POST /api/billing/payment-methods/defaultCorpo:
{
"paymentMethodId": "pm_123"
}Link to this sectionAggiorna le informazioni di fatturazione#
PATCH /api/billing/payment-methodsCorpo:
{
"name": "Jane Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
}
}Link to this sectionElimina metodo di pagamento#
DELETE /api/billing/payment-methods/{id}Link to this sectionAPI di archiviazione#
Controlla la suddivisione dell'utilizzo dello spazio di archiviazione per categoria (dataset, modelli, export) e visualizza i tuoi elementi più grandi.
Le rotte di archiviazione richiedono una sessione browser attiva sulla piattaforma e non sono accessibili tramite API key. Usa la pagina Impostazioni > Profilo nell'interfaccia utente per suddivisioni interattive.
Link to this sectionOttieni informazioni sull'archiviazione#
GET /api/storageParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
details | boolean | Impostalo a true per includere topItems (dataset, modelli ed esportazioni più grandi). |
Risposta:
{
"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 sectionAPI di caricamento#
Carica i file direttamente nell'archiviazione cloud usando URL firmati per trasferimenti veloci e affidabili. Utilizza un flusso a due passaggi: ottieni un URL firmato, poi carica il file. Consulta la documentazione dati.
Link to this sectionOttieni URL di caricamento firmato#
POST /api/upload/signed-urlRichiedi un URL firmato per caricare un file direttamente nell'archiviazione cloud. L'URL firmato bypassa il server API per i trasferimenti di file di grandi dimensioni.
Corpo:
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}| Campo | Tipo | Descrizione |
|---|---|---|
assetType | stringa | Tipo di risorsa: models, datasets, images, videos |
assetId | stringa | ID della risorsa di destinazione |
filename | stringa | Nome file originale |
contentType | stringa | Tipo MIME |
totalBytes | int | Dimensione del file in byte |
Risposta:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.example.com/...",
"gcsPath": "gs://bucket/users/user123/images/abc123/my-image.jpg",
"downloadUrl": "https://cdn.example.com/...",
"expiresAt": "2026-02-22T12:00:00Z"
}Link to this sectionCompleta il caricamento#
POST /api/upload/completeNotifica alla piattaforma che il caricamento di un file è completo, così da poter avviare l'elaborazione.
Corpo:
{
"sessionId": "session_abc123",
"checksum": "<optional sha-256 hex>"
}Link to this sectionAPI di Integrazione#
Importa dataset da servizi di terze parti. Vedi la documentazione sulle integrazioni.
Link to this sectionAnteprima Importazione Roboflow#
POST /api/integrations/roboflow/previewRisolvi una API key di Roboflow verso un piano di importazione massiva: informazioni sul workspace, quali progetti verrebbero importati come nuovi, conteggio delle versioni già importate (saltate) e tipi di progetto non supportati. La API key di Roboflow viene passata nel corpo della richiesta e non viene salvata.
Link to this sectionImporta da Roboflow#
POST /api/integrations/roboflow/importAccoda job di ingestione del dataset per importare i progetti Roboflow selezionati nel tuo workspace. Richiede spazio di archiviazione disponibile e ogni dataset deve rientrare nel limite di dimensione per importazione previsto dal tuo piano.
Link to this sectionAPI delle chiavi API#
Gestisci le tue chiavi API per l'accesso programmatico. Consulta la documentazione sulle chiavi API.
Link to this sectionElenca le chiavi API#
GET /api/api-keysLink to this sectionCrea chiave API#
POST /api/api-keysCorpo:
{
"name": "training-server"
}Link to this sectionElimina chiave API#
DELETE /api/api-keysParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
keyId | stringa | ID della chiave API da revocare |
Esempio:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"Link to this sectionAPI di team e membri#
Crea spazi di lavoro per i team, invita membri e gestisci i ruoli per la collaborazione. Consulta la documentazione sui team.
Link to this sectionElenca i team#
GET /api/teamsLink to this sectionCrea team#
POST /api/teams/createCorpo:
{
"username": "my-team",
"fullName": "My Team"
}Link to this sectionElenca i membri#
GET /api/membersRestituisce i membri dello spazio di lavoro corrente.
Link to this sectionInvita membro#
POST /api/membersCorpo:
{
"email": "user@example.com",
"role": "editor"
}| Ruolo | Permessi |
|---|---|
viewer | Accesso di sola lettura alle risorse dello spazio di lavoro |
editor | Crea, modifica ed elimina risorse |
admin | Gestisci membri, fatturazione e tutte le risorse (assegnabile solo dal proprietario del team) |
Il team owner è il creatore e non può essere invitato. La proprietà viene trasferita separatamente tramite POST /api/members/transfer-ownership. Consulta la sezione Team per tutti i dettagli sui ruoli.
Link to this sectionAggiorna ruolo membro#
PATCH /api/members/{userId}Link to this sectionRimuovi membro#
DELETE /api/members/{userId}Link to this sectionTrasferisci proprietà#
POST /api/members/transfer-ownershipLink to this sectionInviti#
Link to this sectionAccetta invito#
POST /api/invites/acceptLink to this sectionOttieni informazioni sull'invito#
GET /api/invites/infoParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
token | stringa | Token di invito |
Link to this sectionRevoca invito#
DELETE /api/invites/{inviteId}Link to this sectionRispedisci invito#
POST /api/invites/{inviteId}/resendLink to this sectionAPI di esplorazione#
Cerca e naviga tra dataset e progetti pubblici condivisi dalla community. Consulta la documentazione di esplorazione.
Link to this sectionCerca contenuti pubblici#
GET /api/explore/searchParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
q | stringa | Query di ricerca |
type | stringa | Tipo di risorsa: all (predefinito), projects, datasets |
sort | stringa | Ordine di ordinamento: newest (predefinito), stars, oldest, name-asc, name-desc, count-desc, count-asc |
offset | int | Offset di paginazione (predefinito: 0). I risultati restituiscono 20 elementi per pagina. |
task | stringa | Facoltativo: tipi di task YOLO separati da virgola per filtrare i dataset (detect, segment, semantic, classify, pose, obb) |
Link to this sectionDati della barra laterale#
GET /api/explore/sidebarRestituisce contenuti curati per la barra laterale di esplorazione.
Link to this sectionAPI utente e impostazioni#
Gestisci il tuo profilo, le chiavi API, l'utilizzo dello spazio di archiviazione e le impostazioni sulla privacy dei dati. Consulta la documentazione sulle impostazioni.
Link to this sectionOttieni utente tramite nome utente#
GET /api/usersParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
username | stringa | Nome utente da cercare |
Link to this sectionSegui o smetti di seguire un utente#
PATCH /api/usersCorpo:
{
"username": "target-user",
"followed": true
}Link to this sectionVerifica disponibilità nome utente#
GET /api/username/checkParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
username | stringa | Nome utente da verificare |
suggest | bool | Opzionale: true per includere un suggerimento se già preso |
Link to this sectionImpostazioni#
GET /api/settings
POST /api/settingsOttieni o aggiorna le impostazioni del profilo utente (nome visualizzato, bio, link social, ecc.).
Link to this sectionIcona del profilo#
POST /api/settings/icon
DELETE /api/settings/iconCarica o rimuovi l'avatar del profilo.
Link to this sectionOnboarding#
POST /api/onboardingCompleta il flusso di onboarding (imposta regione dati, nome utente).
Link to this sectionAPI GDPR#
Richiedi un export di tutti i tuoi dati o elimina permanentemente il tuo account. Consulta la documentazione sulle impostazioni.
Link to this sectionOttieni lo stato del job GDPR#
GET /api/gdprParametri di query:
| Parametro | Tipo | Descrizione |
|---|---|---|
jobId | stringa | ID del job GDPR da controllare |
Restituisce lo stato del job. Per i job di export completati, la risposta include un downloadUrl.
Link to this sectionAvvia flusso di export o eliminazione#
POST /api/gdprCorpo:
{
"action": "export"
}{
"action": "delete",
"confirmationWord": "DELETE"
}Opzionale per gli spazi di lavoro dei team:
{
"action": "delete",
"confirmationWord": "DELETE",
"teamUsername": "my-team"
}L'eliminazione dell'account è permanente e non può essere annullata. Tutti i dati, i modelli e i deployment verranno eliminati.
Link to this sectionCodici di errore#
| Codice | Stato HTTP | Descrizione |
|---|---|---|
UNAUTHORIZED | 401 | Chiave API non valida o mancante |
FORBIDDEN | 403 | Permessi insufficienti |
NOT_FOUND | 404 | Risorsa non trovata |
VALIDATION_ERROR | 400 | Dati della richiesta non validi |
RATE_LIMITED | 429 | Troppe richieste |
INTERNAL_ERROR | 500 | Errore del server |
Link to this sectionIntegrazione Python#
Per un'integrazione più semplice, usa il pacchetto Python Ultralytics che gestisce automaticamente l'autenticazione, i caricamenti e lo streaming delle metriche in tempo reale.
Link to this sectionInstallazione e configurazione#
pip install ultralyticsVerifica l'installazione:
yolo checkL'integrazione con la piattaforma richiede ultralytics>=8.4.60. Le versioni precedenti NON funzioneranno con la piattaforma.
Link to this sectionAutenticazione#
yolo settings api_key=YOUR_API_KEYLink to this sectionUso dei dataset della piattaforma#
Fai riferimento ai dataset con URI ul://:
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,
)Formato URI:
| Pattern | Descrizione |
|---|---|
ul://username/datasets/slug | Dataset |
ul://username/project-name | Progetto |
ul://username/project/model-name | Modello specifico |
ul://ultralytics/yolo26/yolo26n | Modello ufficiale |
Link to this sectionInvio alla piattaforma#
Invia i risultati a un progetto della piattaforma:
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",
)Cosa viene sincronizzato:
- Metriche di training (in tempo reale)
- Pesi del modello finale
- Grafici di validazione
- Output della console
- Metriche di sistema
Link to this sectionEsempi di API#
Carica un modello dalla piattaforma:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")Esegui l'inferenza:
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 probabilitiesEsporta modello:
# Export to ONNX
model.export(format="onnx", imgsz=640, half=True)
# Export to TensorRT
model.export(format="engine", imgsz=640, half=True)
# Export to CoreML
model.export(format="coreml", imgsz=640)Validazione:
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 sectionWebhook#
La piattaforma utilizza webhook interni per trasmettere in streaming le metriche di training in tempo reale dall'SDK Python ultralytics (in esecuzione su GPU cloud o macchine remote/locali) alla piattaforma: loss epoca per epoca, mAP, statistiche di sistema e stato di completamento. Questi webhook sono autenticati tramite l'HMAC webhookSecret fornito per ogni job di training e non sono destinati ad essere utilizzati dalle applicazioni utente.
Tutti i piani: Il progresso del training tramite l'SDK ultralytics (metriche in tempo reale, notifiche di completamento) funziona automaticamente su ogni piano: basta impostare project=username/my-project name=my-run durante il training e l'SDK trasmetterà gli eventi alla piattaforma. Non è richiesta alcuna registrazione di webhook lato utente.
Le sottoscrizioni webhook per gli utenti (callback POST a un URL che controlli) sono nella roadmap Enterprise e non sono attualmente disponibili. Nel frattempo, interroga GET /api/models/{modelId}/training per lo stato o usa il feed delle attività nell'interfaccia utente.
Link to this sectionFAQ#
Link to this sectionCome posso paginare grandi risultati?#
La maggior parte degli endpoint utilizza un parametro limit per controllare quanti risultati vengono restituiti per richiesta:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"Gli endpoint Activity e Trash supportano anche un parametro page per la paginazione basata su pagine:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"L'endpoint Explore Search utilizza offset invece di page, con una dimensione di pagina fissa di 20:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"Link to this sectionPosso usare l'API senza un SDK?#
Sì, tutte le funzionalità sono disponibili tramite REST. L'SDK Python è un wrapper di comodità che aggiunge funzionalità come lo streaming di metriche in tempo reale e il caricamento automatico dei modelli. Puoi anche esplorare tutti gli endpoint in modo interattivo su platform.ultralytics.com/api/docs.
Link to this sectionEsistono librerie client API?#
Attualmente, usa il pacchetto Python Ultralytics o effettua richieste HTTP dirette. Sono previste librerie client ufficiali per altri linguaggi.
Link to this sectionCome gestisco i limiti di velocità (rate limits)?#
Usa l'header Retry-After dalla risposta 429 per attendere la quantità di tempo corretta:
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 Exception("Rate limit exceeded")Link to this sectionCome trovo il mio ID modello o dataset?#
Gli ID delle risorse vengono restituiti quando crei risorse tramite l'API. Puoi trovarli anche nell'URL della piattaforma:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project modelUsa gli endpoint di elenco per cercare per nome o filtrare per progetto.