Meet YOLO26: next-gen vision AI.

Link to this sectionRiferimento REST API#

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

Panoramica REST API di Ultralytics Platform

Avvio rapido
# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://platform.ultralytics.com/api/datasets
Documentazione API interattiva

Esplora 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
RisorsaDescrizioneOperazioni chiave
DatasetRaccolte di immagini etichettateCRUD, immagini, etichette, esportazione, versioni, clonazione
ProgettiSpazi di lavoro per il trainingCRUD, clonazione, icona
ModelliCheckpoint addestratiCRUD, predizione, download, clonazione, esportazione
DeploymentEndpoint di inferenza dedicatiCRUD, avvio/arresto, metriche, log, stato
EsportazioniProcessi di conversione di formatoCreazione, stato, download
TrainingProcessi di training su GPU in cloudAvvio, stato, annullamento
FatturazioneCrediti e abbonamentiSaldo, ricarica, metodi di pagamento
TeamCollaborazione nello spazio di lavoroMembri, 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#

  1. Vai su Settings > API Keys
  2. Clicca su Create Key
  3. 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_KEY
Formato API Key

Le 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/datasets

Link 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.000Z

Link 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:

EndpointLimiteSi applica a
Predefinito100 richieste/minTutti gli endpoint non elencati di seguito (elenco, get, creazione, aggiornamento, eliminazione)
Training10 richieste/minAvvio di processi di training in cloud (POST /api/training/start)
Upload10 richieste/minCaricamento file, URL firmati e ingestione dataset
Predizione20 richieste/minInferenza condivisa del modello (POST /api/models/{id}/predict)
Esporta20 richieste/minEsportazioni di formato del modello (POST /api/exports), esportazioni NDJSON di dataset e creazione di versioni
Download30 richieste/minDownload di file dei pesi del modello (GET /api/models/{id}/files)
DedicatoIllimitatoEndpoint 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.

Gestione dei limiti di frequenza

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 HTTPSignificato
200Successo
201Creato
400Richiesta non valida
401Autenticazione richiesta
403Permessi insufficienti
404Risorsa non trovata
409Conflitto (duplicato)
429Limite di richieste superato
500Errore 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/datasets

Parametri di query:

ParametroTipoDescrizione
usernamestringaFiltra per nome utente
slugstringaRecupera un singolo dataset tramite slug
limitintElementi per pagina (predefinito: 1000, massimo: 1000)
ownerstringaNome 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/datasets

Corpo:

{
    "slug": "my-dataset",
    "name": "My Dataset",
    "task": "detect",
    "description": "A custom detection dataset",
    "visibility": "private",
    "classNames": ["person", "car"]
}
Attività supportate

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}/icon

Rimuovi l'icona del dataset:

DELETE /api/datasets/{datasetId}/icon

Entrambi 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}/clone

Crea 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}/export

Restituisce una risposta JSON con un URL di download firmato per l'ultima esportazione del dataset.

Parametri di query:

ParametroTipoDescrizione
vinteroNumero 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}/export

Crea 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}/export

Aggiorna 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-stats

Restituisce 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/merge

Elimina classi:

POST /api/datasets/{datasetId}/classes/delete

Link to this sectionRidistribuisci Split#

POST /api/datasets/{datasetId}/splits/redistribute

Riassegna 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}/embeddings

GET 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/clustering

Restituisce 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}/models

Restituisce 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}/predict

Esegue 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:

CampoTipoObbligatorioDescrizione
imageHashstringaHash dell'immagine da annotare
modelIdstringaNoModello 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.
confidencefloatNoSoglia di confidenza (predefinito: 0.25)
ioufloatNoSoglia IoU (predefinito: 0.7)

Link to this sectionIngestione Dataset#

POST /api/datasets/ingest

Crea 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}/images

Parametri di query:

ParametroTipoDescrizione
splitstringaFiltra per suddivisione: train, val, test
offsetintOffset di paginazione (predefinito: 0)
limitintElementi per pagina (predefinito: 50, massimo: 5000)
sortstringaOrdinamento: 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)
hasLabelstringaFiltra per stato dell'etichetta (true o false)
hasErrorstringaFiltra per stato di errore (true o false)
searchstringaCerca per nome file o hash dell'immagine
classIdsstringaID delle classi separati da virgola; restituisce le immagini che contengono una qualsiasi delle classi specificate
includeThumbnailsstringaIncludi URL delle miniature firmati (predefinito: true)
includeImageUrlsstringaIncludi URL completi dell'immagine firmati (predefinito: false)

Link to this sectionOttieni URL Firmati delle Immagini#

POST /api/datasets/{datasetId}/images/urls

Ottieni 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}/labels

Restituisce annotazioni e nomi delle classi per un'immagine specifica.

Link to this sectionAggiorna Etichette Immagine#

PUT /api/datasets/{datasetId}/images/{hash}/labels

Corpo:

{
    "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] }
    ]
}
Formato Coordinate

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/bulk

Eliminazione in massa delle immagini:

DELETE /api/datasets/{datasetId}/images/bulk

Link 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/projects

Parametri di query:

ParametroTipoDescrizione
usernamestringaFiltra per nome utente
limitintElementi per pagina
ownerstringaNome utente del proprietario dello spazio di lavoro

Link to this sectionOttieni Progetto#

GET /api/projects/{projectId}

Link to this sectionCrea Progetto#

POST /api/projects
curl -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/projects

Link 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}/clone

Clona 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}/icon

Rimuovi l'icona del progetto:

DELETE /api/projects/{projectId}/icon

Entrambi 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/models

Parametri di query:

ParametroTipoObbligatorioDescrizione
projectIdstringaID Progetto (obbligatorio)
fieldsstringaNoSet di campi: summary, charts
idsstringaNoID modello separati da virgola
limitintNoRisultati massimi (default 20, max 100)

Link to this sectionElenco Modelli Completati#

GET /api/models/completed

Restituisce 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/models

Corpo JSON:

CampoTipoObbligatorioDescrizione
projectIdstringaID progetto di destinazione
slugstringaNoSlug URL (alfanumerico minuscolo/trattini)
namestringaNoNome visualizzato (max 100 caratteri)
descriptionstringaNoDescrizione del modello (max 1000 caratteri)
taskstringaNoTipo di attività (detect, segment, semantic, pose, obb, classify)
Caricamento File Modello

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}/files

Restituisce URL di download firmati per i file del modello.

Link to this sectionClona modello#

POST /api/models/{modelId}/clone

Clona 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"
}
CampoTipoObbligatorioDescrizione
targetProjectSlugstringaSlug del progetto di destinazione
modelNamestringaNoNome per il modello clonato
descriptionstringaNoDescrizione del modello
ownerstringaNoNome utente del team (per la clonazione dell'area di lavoro)

Link to this sectionTraccia Download#

POST /api/models/{modelId}/track-download

Traccia le analisi di download del modello.

Link to this sectionEsegui l'inferenza#

POST /api/models/{modelId}/predict

Modulo Multipart:

CampoTipoDescrizione
filefileFile immagine o video (es. JPG, PNG, WebP, BMP, TIFF; MP4, MOV, AVI)
conffloatSoglia di confidenza (predefinito: 0.25)
ioufloatSoglia IoU (predefinito: 0.7)
imgszintDimensioni immagine in pixel (default: 640)
sourcestringaURL 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/predict

Risposta:

{
    "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/token
Solo sessione browser

Questa 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/warmup
Solo sessione browser

La 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/start
curl -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/start
Tipi di GPU

I 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-availability

Restituisce 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}/training

Restituisce 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}/training

Termina 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.

Supporto chiave API per rotta

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/deployments

Parametri di query:

ParametroTipoDescrizione
modelIdstringaFiltra per modello
statusstringaFiltra per stato
limitintRisultati massimi (default: 20, max: 100)
ownerstringaNome utente del proprietario dello spazio di lavoro

Link to this sectionCrea Deployment#

POST /api/deployments

Corpo:

{
    "modelId": "model_abc123",
    "name": "my-deployment",
    "region": "us-central1",
    "resources": {
        "cpu": 1,
        "memoryGi": 2,
        "minInstances": 0,
        "maxInstances": 1
    }
}
CampoTipoObbligatorioDescrizione
modelIdstringaID modello da distribuire
namestringaNome deployment
regionstringaRegione del deployment
resourcesoggettoNoConfigurazione delle risorse (cpu, memoryGi, minInstances, maxInstances)

Crea un endpoint di inferenza dedicato nella regione specificata. L'endpoint è accessibile globalmente tramite un URL univoco.

Risorse Predefinite

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.

Selezione Regione

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}/start

Riprendi un deployment interrotto.

Link to this sectionInterrompi Deployment#

POST /api/deployments/{deploymentId}/stop

Metti in pausa un deployment in esecuzione (interrompe la fatturazione).

Link to this sectionControllo Integrità#

GET /api/deployments/{deploymentId}/health

Restituisce lo stato di integrità dell'endpoint di deployment.

Link to this sectionEsegui Inferenza sul Deployment#

POST /api/deployments/{deploymentId}/predict

Invia 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:

CampoTipoDescrizione
filefileFile immagine (JPEG, PNG, WebP)
conffloatSoglia di confidenza (predefinito: 0.25)
ioufloatSoglia IoU (predefinito: 0.7)
imgszintDimensioni immagine in pixel (default: 640)

Link to this sectionOttieni Metriche#

GET /api/deployments/{deploymentId}/metrics

Restituisce il conteggio delle richieste, la latenza e le metriche del tasso di errore con dati sparkline.

Parametri di query:

ParametroTipoDescrizione
rangestringaIntervallo di tempo: 1h, 6h, 24h (default), 7d, 30d
sparklinestringaImposta su true per dati sparkline ottimizzati per la visualizzazione sulla dashboard

Link to this sectionOttieni Log#

GET /api/deployments/{deploymentId}/logs

Parametri di query:

ParametroTipoDescrizione
severitystringaFiltro separato da virgola: DEBUG, INFO, WARNING, ERROR, CRITICAL
limitintNumero di voci (default: 50, max: 200)
pageTokenstringaToken di paginazione dalla risposta precedente

Link to this sectionAPI di Monitoraggio#

Solo sessione browser

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/monitoring

Restituisce 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/exports

Parametri di query:

ParametroTipoDescrizione
modelIdstringaID modello (obbligatorio)
statusstringaFiltra per stato
limitintRisultati massimi (default: 20, max: 100)

Link to this sectionCrea esportazione#

POST /api/exports

Corpo:

CampoTipoObbligatorioDescrizione
modelIdstringaID modello sorgente
formatstringaFormato di esportazione (vedi tabella sotto)
gpuTypestringaCondizionaleObbligatorio quando format è engine (TensorRT)
argsoggettoNoArgomenti 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/exports

Formati supportati:

FormatoValoreCaso d'uso
ONNXonnxInferenza cross-platform
TorchScripttorchscriptDeployment PyTorch
OpenVINOopenvinoHardware Intel
TensorRTengineOttimizzazione GPU NVIDIA
CoreMLcoremlDispositivi Apple
TFLitetfliteMobile ed embedded
TF SavedModelsaved_modelTensorFlow Serving
TF GraphDefpbGrafo congelato TensorFlow
PaddlePaddlepaddleBaidu PaddlePaddle
NCNNncnnRete neurale mobile
Edge TPUedgetpuDispositivi Google Coral
TF.jstfjsInferenza via browser
MNNmnnInferenza mobile Alibaba
RKNNrknnNPU Rockchip
QualcommqnnNPU Qualcomm Snapdragon
IMXimxSensore Sony IMX500
AxeleraaxeleraAcceleratori Axelera AI
ExecuTorchexecutorchRuntime Meta ExecuTorch
DeepXdeepxAcceleratori 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-download

Link 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à.

Solo sessione browser

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/activity

Parametri di query:

ParametroTipoDescrizione
limitintDimensione pagina (default: 20, max: 100)
pageintNumero di pagina (default: 1)
archivedbooleantrue per la scheda Archivio, false per la Posta in arrivo
searchstringaRicerca case-insensitive nei campi evento

Link to this sectionContrassegna eventi come letti#

POST /api/activity/mark-seen

Corpo:

{
    "all": true
}

Oppure passa ID specifici:

{
    "eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}

Link to this sectionArchivia eventi#

POST /api/activity/archive

Corpo:

{
    "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/trash

Parametri di query:

ParametroTipoDescrizione
typestringaFiltro: all, project, dataset, model
pageintNumero di pagina (default: 1)
limitintElementi per pagina (default: 50, max: 200)
ownerstringaNome utente del proprietario dello spazio di lavoro

Link to this sectionRipristina elemento#

POST /api/trash

Corpo:

{
    "id": "item_abc123",
    "type": "dataset"
}

Link to this sectionElimina definitivamente elemento#

DELETE /api/trash

Corpo:

{
    "id": "item_abc123",
    "type": "dataset"
}
Irreversibile

L'eliminazione definitiva non può essere annullata. La risorsa e tutti i dati associati verranno rimossi.

Link to this sectionSvuota cestino#

DELETE /api/trash/empty

Elimina definitivamente tutti gli elementi nel cestino.

Autenticazione

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.

Unità di valuta

Gli importi di fatturazione utilizzano centesimi (creditsCents) dove 100 = $1.00.

Link to this sectionOttieni saldo#

GET /api/billing/balance

Parametri di query:

ParametroTipoDescrizione
ownerstringaNome utente del proprietario dello spazio di lavoro

Risposta:

{
    "creditsCents": 2500,
    "plan": "free"
}

Link to this sectionOttieni riepilogo utilizzo#

GET /api/billing/usage-summary

Restituisce i dettagli del piano, i limiti e le metriche di utilizzo.

Link to this sectionOttieni transazioni#

GET /api/billing/transactions

Restituisce lo storico delle transazioni (i più recenti per primi).

Parametri di query:

ParametroTipoDescrizione
ownerstringaNome utente del proprietario dello spazio di lavoro

Link to this sectionCrea sessione di checkout#

POST /api/billing/checkout-session

Corpo:

{
    "amount": 25,
    "owner": "team-username"
}
CampoTipoObbligatorioDescrizione
amountnumberImporto in dollari ($5-$1000)
ownerstringaNoNome 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-checkout

Crea una sessione di checkout per l'aggiornamento dell'abbonamento Pro.

Corpo:

{
    "planId": "pro",
    "billingCycle": "monthly",
    "owner": "team-username"
}
CampoTipoObbligatorioDescrizione
planIdstringaPiano a cui abbonarsi (pro)
billingCyclestringaNoCiclo di fatturazione: monthly (default) o yearly
ownerstringaNoNome utente del team per gli aggiornamenti dello spazio di lavoro (richiede ruolo amministratore)

Link to this sectionAnnulla o riprendi abbonamento#

DELETE /api/billing/subscription-checkout

Annulla 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-topup

Parametri di query:

ParametroTipoDescrizione
ownerstringaNome utente del proprietario dello spazio di lavoro

Link to this sectionAggiorna la configurazione del ricaricamento automatico#

PATCH /api/billing/auto-topup

Corpo:

{
    "enabled": true,
    "thresholdCents": 500,
    "amountCents": 2500
}

Link to this sectionMetodi di pagamento#

Link to this sectionElenca i metodi di pagamento#

GET /api/billing/payment-methods

Link to this sectionCrea setup intent#

POST /api/billing/payment-methods/setup

Restituisce un client secret per aggiungere un nuovo metodo di pagamento.

Link to this sectionImposta il metodo di pagamento predefinito#

POST /api/billing/payment-methods/default

Corpo:

{
    "paymentMethodId": "pm_123"
}

Link to this sectionAggiorna le informazioni di fatturazione#

PATCH /api/billing/payment-methods

Corpo:

{
    "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.

Solo sessione browser

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/storage

Parametri di query:

ParametroTipoDescrizione
detailsbooleanImpostalo 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-url

Richiedi 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
}
CampoTipoDescrizione
assetTypestringaTipo di risorsa: models, datasets, images, videos
assetIdstringaID della risorsa di destinazione
filenamestringaNome file originale
contentTypestringaTipo MIME
totalBytesintDimensione 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/complete

Notifica 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/preview

Risolvi 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/import

Accoda 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-keys

Link to this sectionCrea chiave API#

POST /api/api-keys

Corpo:

{
    "name": "training-server"
}

Link to this sectionElimina chiave API#

DELETE /api/api-keys

Parametri di query:

ParametroTipoDescrizione
keyIdstringaID 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/teams

Link to this sectionCrea team#

POST /api/teams/create

Corpo:

{
    "username": "my-team",
    "fullName": "My Team"
}

Link to this sectionElenca i membri#

GET /api/members

Restituisce i membri dello spazio di lavoro corrente.

Link to this sectionInvita membro#

POST /api/members

Corpo:

{
    "email": "user@example.com",
    "role": "editor"
}
Ruoli dei membri
RuoloPermessi
viewerAccesso di sola lettura alle risorse dello spazio di lavoro
editorCrea, modifica ed elimina risorse
adminGestisci 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-ownership

Link to this sectionInviti#

Link to this sectionAccetta invito#

POST /api/invites/accept

Link to this sectionOttieni informazioni sull'invito#

GET /api/invites/info

Parametri di query:

ParametroTipoDescrizione
tokenstringaToken di invito

Link to this sectionRevoca invito#

DELETE /api/invites/{inviteId}

Link to this sectionRispedisci invito#

POST /api/invites/{inviteId}/resend

Link 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/search

Parametri di query:

ParametroTipoDescrizione
qstringaQuery di ricerca
typestringaTipo di risorsa: all (predefinito), projects, datasets
sortstringaOrdine di ordinamento: newest (predefinito), stars, oldest, name-asc, name-desc, count-desc, count-asc
offsetintOffset di paginazione (predefinito: 0). I risultati restituiscono 20 elementi per pagina.
taskstringaFacoltativo: 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/sidebar

Restituisce 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/users

Parametri di query:

ParametroTipoDescrizione
usernamestringaNome utente da cercare

Link to this sectionSegui o smetti di seguire un utente#

PATCH /api/users

Corpo:

{
    "username": "target-user",
    "followed": true
}

Link to this sectionVerifica disponibilità nome utente#

GET /api/username/check

Parametri di query:

ParametroTipoDescrizione
usernamestringaNome utente da verificare
suggestboolOpzionale: true per includere un suggerimento se già preso

Link to this sectionImpostazioni#

GET /api/settings
POST /api/settings

Ottieni 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/icon

Carica o rimuovi l'avatar del profilo.

Link to this sectionOnboarding#

POST /api/onboarding

Completa 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/gdpr

Parametri di query:

ParametroTipoDescrizione
jobIdstringaID 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/gdpr

Corpo:

{
    "action": "export"
}
{
    "action": "delete",
    "confirmationWord": "DELETE"
}

Opzionale per gli spazi di lavoro dei team:

{
    "action": "delete",
    "confirmationWord": "DELETE",
    "teamUsername": "my-team"
}
Azione irreversibile

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#

CodiceStato HTTPDescrizione
UNAUTHORIZED401Chiave API non valida o mancante
FORBIDDEN403Permessi insufficienti
NOT_FOUND404Risorsa non trovata
VALIDATION_ERROR400Dati della richiesta non validi
RATE_LIMITED429Troppe richieste
INTERNAL_ERROR500Errore 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 ultralytics

Verifica l'installazione:

yolo check
Requisiti di versione del pacchetto

L'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_KEY

Link 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:

PatternDescrizione
ul://username/datasets/slugDataset
ul://username/project-nameProgetto
ul://username/project/model-nameModello specifico
ul://ultralytics/yolo26/yolo26nModello 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 probabilities

Esporta 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.

Lavoro dal tuo lato

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   model

Usa gli endpoint di elenco per cercare per nome o filtrare per progetto.

Commenti