REST API Referansı#
Ultralytics Platform, veri kümelerine, görüntülere, projelere, modellere, eğitime, dışa aktarımlara ve dağıtımlara programatik erişim için bir REST API sağlar.

# List the datasets owned by a workspace
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasets/YOUR_USERNAMEAşağıdaki her uç nokta, bu referansla aynı sözleşmeden oluşturulan ultralytics-platform SDK'sındaki client.<resource>.<method>(...) çağrısını listeler.
Bu sayfa, API'nin rehberli bir tanıtımıdır. Her zaman güncel olan oluşturulmuş referans platform.ultralytics.com/api/docs adresinde, bunu destekleyen makine tarafından okunabilir OpenAPI 3.2 belgesi ise platform.ultralytics.com/openapi.json adresinde yayımlanır. Her ikisi de doğrudan sunucu tarafındaki sözleşmeden oluşturulur; bu nedenle bu sayfa ile şema arasında uyuşmazlık olduğunda yetkili kaynak bunlardır.
API'ye Genel Bakış#
API, temel Platform kaynakları etrafında düzenlenmiştir:
graph LR
A[API Key]:::start --> B[Datasets]:::proc
A --> C[Projects]:::proc
B -->|images| G[Images]:::proc
C -->|contains| D[Models]:::proc
B -->|train on| D
D -->|deploy| E[Deployments]:::proc
D -->|export| F[Exports]:::proc
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff| Kaynak | Açıklama | Temel İşlemler |
|---|---|---|
| Veri Kümeleri | Etiketlenmiş görüntü koleksiyonları | CRUD, alma, sürümler, sınıflar, bölümler, klonlama |
| Görüntüler | Tek tek görüntüler ve etiketler | Okuma, açıklama ekleme, bölümü taşıma, silme, otomatik açıklama ekleme |
| Projeler | Model çalışma alanları | CRUD, klonlama |
| Modeller | Eğitilmiş kontrol noktaları | CRUD, tahmin, indirme, klonlama, eğitim durumu |
| Eğitim | Bulut GPU eğitim işleri | GPU kullanılabilirliği, başlatma, ilerleme, iptal etme |
| Dışa Aktarımlar | Biçim dönüştürme işleri | Oluşturma, listeleme, durum, iptal etme |
| Dağıtımlar | Özel çıkarım uç noktaları | Oluşturma, başlatma/durdurma/değiştirme, tahmin, metrikler, günlükler |
| Çöp Kutusu | Mantıksal olarak silinen kaynaklar | Listeleme, geri yükleme, kalıcı olarak silme |
| Depolama | Bulut depolama entegrasyonları | Bağlanma, keşfetme, göz atma, bağlantıyı kesme |
| Hesap | Plan, krediler, depolama, profil | Hesap özeti, API anahtarları, depolama kullanımı, kullanıcı arama |
| Faturalandırma | Plan kullanımı ve defter | Kullanım özeti, işlemler |
| Keşfet | Genel içerik araması | Projeleri ve veri kümelerini ara |
Kimlik Doğrulama#
Çoğu uç nokta bir API anahtarı gerektirir. Genel içeriği açığa çıkaran uç noktalar — genel bir veri kümesini, projeyi veya modeli okuma, genel veri kümesi görüntülerini listeleme, genel bir model üzerinde çıkarım çalıştırma ya da Keşfet'te arama — anonim istekleri de kabul eder ve bir anahtar sağlandığında yalnızca daha fazla sonuç döndürür.
API Anahtarı Alma#
Settings>API Keyskonumuna gitCreate Keyseçeneğine tıkla- Oluşturulan anahtarı kopyala
Ayrıntılı talimatlar için API Anahtarları bölümüne bak.
Yetkilendirme Üst Bilgisi#
API anahtarını bearer token olarak ekle:
Authorization: Bearer YOUR_API_KEYAPI anahtarları, ardından 40 onaltılık karakter gelen ul_ sabit önekinden oluşur; toplam 43 karakterdir (örneğin ul_a1b2c3d4e5f6789012345678901234567890abcd). Üst bilgisi eksik, anahtarı hatalı biçimlendirilmiş veya anahtarı iptal edilmiş istekler 401 döndürür. Anahtarını gizli tut -- bunu hiçbir zaman sürüm denetimine gönderme veya herkese açık şekilde paylaşma.
Örnek#
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/account/summaryTemel URL#
Tüm API uç noktaları şunu kullanır:
https://platform.ultralytics.com/apiKaynak Yolları#
Kaynaklara, veritabanı kimlikleriyle değil, Platform URL'lerinde görünen insan tarafından okunabilir adlarla erişilir:
| Kaynak | Yol | Örnek |
|---|---|---|
| Veri kümesi | /api/datasets/{owner}/{dataset} | /api/datasets/acme-vision/warehouse |
| Proje | /api/projects/{owner}/{project} | /api/projects/acme-vision/inspection |
| Model | /api/models/{owner}/{project}/{model} | /api/models/acme-vision/inspection/v3 |
| Dağıtım | /api/deployments/{owner}/{deployment} | /api/deployments/acme-vision/edge-1 |
| Görüntü | /api/images/{imageId} | /api/images/65f1c0a2b3d4e5f601234567 |
{owner}, kişisel kullanıcı adı veya ekip çalışma alanı tanıtıcısıdır: 4-32 karakter; bölümler arasında tek kısa çizgi bulunan, küçük harfli alfasayısal yapıdadır.{dataset},{project},{model}ve{deployment}aynı küçük harfli, kısa çizgilerle ayrılmış biçimi izler ve en fazla 128 karakter olabilir.{imageId}ve{exportId}, API tarafından döndürülen 24 karakterli onaltılık kimliklerdir.- Bir kaynağı
PATCHüzerinden yeniden adlandırmak, görünennamedeğerini ve URL adını birlikte değiştirir; yanıt, onu izlemeye devam edebilmen için geçerli URL adını döndürür.
owner sorgu parametresi yoktur. Çalışma alanı kapsamındaki yollar sahibi yol üzerinde taşır; hesap kapsamındaki uç noktalar (/api/account/summary, /api/api-keys, /api/storage, /api/billing/*, /api/trash, /api/integrations/buckets) API anahtarını veren çalışma alanı üzerinde çalışır. Bir ekip çalışma alanında işlem yapmak için o çalışma alanında oluşturulmuş bir API anahtarı kullan.
İstek Sınırları#
API, her API anahtarı için kayan pencere sınırları uygular. Her rota bir kategoriye girer ve her kategorinin bağımsız bir sayacı vardır; bu nedenle 20 tahmin isteği varsayılan kullanım hakkını tüketmez.
| Kategori | Sınır | Geçerli Olduğu Yer |
|---|---|---|
| Varsayılan | Dakikada 100 istek | Aşağıda listelenmeyen tüm rotalar |
| Eğitim | Dakikada 10 istek | POST /api/training/start |
| Yükle | Dakikada 10 istek | İmzalı yükleme URL'leri, yükleme tamamlama ve veri kümesi alma |
| Tahmin | Dakikada 20 istek | Platform API rotaları üzerinden model ve dağıtım çıkarımı |
| Dışa Aktar | Dakikada 20 istek | Model dışa aktarma yolları ve veri kümesi dışa aktarma/sürüm yolları (varsayılan limiti kullanan bir veri kümesi dışa aktarımını (GET) okumak hariç) |
| Download | Dakikada 30 istek | Model dosyası indirmeleri |
| Değişiklik | Dakikada 10 istek | API anahtarlarını listeleme, bulut depolamaya bağlanma veya depolamayı keşfetme ve dağıtım PATCH işlemleri |
| Doldurma | Dakikada 20 istek | POST /api/datasets/{owner}/{dataset}/images (seçilen bir görüntü kümesini getirme) ve GET /api/images/{imageId}/similar |
| Kümeleme | Dakikada 10 istek | GET /api/datasets/{owner}/{dataset}/images/clustering ve GET /api/models/{owner}/{project}/{model}/similar-images |
Faturalandırma ödeme sayfası ve ekip yönetimi gibi yalnızca tarayıcıya özel Platform rotalarının, API anahtarı trafiği için geçerli olmayan kendi sınırları vardır.
Hız sınırına takıldığında API, hem üst bilgilerle hem de JSON gövdesiyle 429 döndürür:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000Z{
"error": "Rate limit exceeded",
"retryAfter": 12,
"resetAt": "2026-02-21T12:34:56.000Z"
}Özel Uç Noktalar (Sınırsız)#
Özel uç noktalar, dağıtımın kendi serviceUrl adresini doğrudan çağırdığında Platform API anahtarı hız sınırlarına tabi değildir (örneğin, https://predict-abc123.run.app/predict). Bu durumda aktarım hızı, dağıtılan hizmetin yapılandırmasına bağlıdır.
429 aldığında yeniden denemeden önce Retry-After saniye (veya X-RateLimit-Reset zamanına kadar) bekle. Üstel geri çekilme uygulaması için hız sınırı SSS'sine bak.
Yanıt Biçimi#
Başarılı Yanıtlar#
Yanıtlar, kaynağa özgü alanlara sahip JSON nesneleridir. Genel bir kapsayıcı yoktur: listeleme uç noktaları, sayımlarla birlikte adlandırılmış bir koleksiyon döndürür; değişiklik işlemleri ise değiştirilen kimlikleri döndürür.
{
"datasets": [{ "id": "65f1c0a2b3d4e5f601234567", "owner": "acme-vision", "dataset": "warehouse" }],
"total": 1,
"region": "us"
}Veri içeren yanıtlar ayrıca region (us, eu veya ap) alanını, yani ilgili çalışma alanının depolama bölgesini içerir.
Hata Yanıtları#
Her hata yanıtı, error mesajına sahip bir JSON nesnesidir:
{
"error": "Dataset not found"
}| HTTP Durumu | Anlamı |
|---|---|
200 | Başarılı |
201 | Oluşturulma |
202 | Kabul edildi, işlem eşzamansız olarak devam ediyor |
400 | Geçersiz yol, sorgu veya istek gövdesi |
401 | Kimlik doğrulama eksik veya geçersiz |
402 | Yetersiz kredi (eğitim) |
403 | Yetersiz izin, plan veya kota |
404 | Kaynak bulunamadı |
409 | Mevcut durumla çakışıyor (yinelenen ad, devam eden iş) |
413 | Tahmin girdisi çok büyük |
422 | Model sınıfları veri kümesiyle eşleşmiyor (otomatik açıklama) |
429 | İstek hızı sınırı aşıldı |
500 | Sunucu hatası |
502 | Üst akış sağlayıcısı veya hizmet çağrısı başarısız oldu |
503 | Bağımlı hizmet geçici olarak kullanılamıyor |
Sayfalandırma#
Sayfalandırma stili koleksiyona bağlıdır:
| Stil | Uç noktalar | Parametreler |
|---|---|---|
| Yalnızca limit | Veri kümeleri, projeler, modeller, dışa aktarmalar ve dağıtım listeleri | limit |
| Ofset ve limit | Veri kümesi görüntüleri, görüntü kümeleme, Explore araması | offset, limit ve yanıtta hasMore |
| İmleç | Veri kümesi görüntüleri (büyük veri kümeleri) | cursor, includeTotal ve nextCursor |
| Sayfa numarası | Çöp kutusu | page, limit ve totalPages |
| Opak sayfa belirteci | Dağıtım günlükleri | pageToken ve nextPageToken |
Veri Kümeleri API'si#
YOLO modellerini eğitmek için etiketlenmiş görüntü veri kümeleri oluştur, görüntüle ve yönet. Veri kümeleri belgelerine bak.
Veri Kümelerini Listele#
GET /api/datasets/{owner}Python SDK: client.datasets.list(owner)
Sahibinin herkese açık veri kümelerini ve anahtarın bu çalışma alanını görüntüleyebildiği durumlarda özel veri kümelerini döndürür.
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
limit | int | Döndürülecek maksimum veri kümesi sayısı (varsayılan: 1000, maksimum: 1000) |
includeSamples | boolean | Örnek görüntü önizlemelerini dahil et (varsayılan: true) |
includeImageUrls | boolean | Tam boyutlu örnek görüntü yedek URL'lerini dahil et (varsayılan: false) |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets/acme-vision?limit=10&includeSamples=false"Yanıt:
{
"datasets": [
{
"id": "65f1c0a2b3d4e5f601234567",
"owner": "acme-vision",
"dataset": "warehouse",
"name": "Warehouse",
"task": "detect",
"visibility": "private",
"imageCount": 1000,
"classCount": 2,
"classNames": ["person", "forklift"],
"splits": { "train": 800, "val": 200, "test": 0, "labeled": 1000 },
"annotationCount": 5400,
"starCount": 3,
"isStarred": false,
"status": "ready",
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-01-16T08:30:00Z"
}
],
"total": 1,
"region": "us"
}Veri Kümesini Al#
GET /api/datasets/{owner}/{dataset}Python SDK: client.datasets.retrieve(owner, dataset)
Tam veri kümesi nesnesini dataset anahtarı altında döndürür; buna classNames, splits, versions, source ve kullanıcı tanımlı metadata nesnesi dahildir.
Veri Kümesi Oluştur#
POST /api/datasetsPython SDK: client.datasets.create(dataset=..., name=...)
Gövde:
{
"dataset": "warehouse",
"name": "Warehouse",
"task": "detect",
"description": "Forklift and pedestrian safety dataset",
"classNames": ["person", "forklift"],
"visibility": "private",
"metadata": { "location": "factory-1", "reviewed": true },
"owner": "acme-vision"
}| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
dataset | string | Evet | Platform URL'lerinde kullanılan veri kümesi adı (küçük harf, tireli, en fazla 128 karakter) |
name | string | Evet | Görünen ad (en fazla 100 karakter) |
description | string | Hayır | Açıklama (en fazla 1000 karakter) |
task | string | Hayır | Görev türü (varsayılan: detect) |
classNames | dizi | Hayır | Dizin sırasındaki sınıf adları (en fazla 25.000) |
format | string | Hayır | Açıklama biçimi: yolo (varsayılan), coco, raw, ndjson |
visibility | string | Hayır | public veya private |
tags | dizi | Hayır | Her biri 50 karakterden oluşan en fazla 50 etiket |
license | string | Hayır | Veri kümesi lisansı tanımlayıcısı |
metadata | nesne | Hayır | Özel JSON meta verileri |
owner | string | Hayır | Ekip çalışma alanı tanıtıcısı; varsayılan olarak kişisel çalışma alanın kullanılır |
requireExactSlug | boolean | Hayır | warehouse-2 gibi sonuna ek alarak türetilmiş bir ad oluşturmak yerine (varsayılan false), dataset halihazırda alınmışsa 409 değerini döndür |
Yanıt, gerçekten oluşturulan dataset kısa adını (slug) döndürür; bu nedenle, requireExactSlug ayarlamadıysan yükleme yapmadan önce kısa adı oku.
Veri kümesi oluştururken veya güncellerken geçerli task değerleri: detect, segment, semantic, depth, classify, pose ve obb. Derinlik veri kümelerinin sınıfları yoktur.
Yanıt (201):
{
"id": "65f1c0a2b3d4e5f601234567",
"owner": "acme-vision",
"dataset": "warehouse",
"region": "us"
}Veri Kümesini Güncelle#
PATCH /api/datasets/{owner}/{dataset}Python SDK: client.datasets.update(owner, dataset)
Gövde (kısmi güncelleme):
{
"name": "Warehouse Safety",
"description": "New description",
"visibility": "public",
"metadata": { "location": "factory-2", "reviewed": true }
}Kabul edilen alanlar: name, description, visibility, metadata, tags, classNames, classColors, format, task, license, iconColor, iconLetter ve starred. Özel meta verilerini temizlemek için boş bir metadata nesnesi ({}) gönder. Meta veri anahtarları 128 karakterle, serileştirilmiş nesne ise 500.000 karakterle sınırlıdır.
Yanıt:
{
"success": true,
"dataset": "warehouse-safety"
}Yeniden adlandırma URL adını değiştirir; bu nedenle sonraki isteklerde döndürülen dataset değerini kullan.
Veri Kümesini Silme#
DELETE /api/datasets/{owner}/{dataset}Python SDK: client.datasets.delete(owner, dataset)
Veri kümesini çöp kutusuna taşır; veri kümesi burada 30 gün boyunca kurtarılabilir.
Veri Kümesini Klonlama#
POST /api/datasets/{owner}/{dataset}/clonePython SDK: client.datasets.clone(owner, dataset)
Erişilebilir bir veri kümesini, görüntüleri ve etiketleriyle birlikte kişisel çalışma alanına veya ekip çalışma alanına kopyalar.
İsteğe bağlı gövde (tüm alanlar isteğe bağlıdır):
{
"dataset": "warehouse-copy",
"name": "Warehouse Copy",
"description": "Cloned for experimentation",
"visibility": "private",
"license": "CC-BY-4.0",
"owner": "acme-vision"
}Yanıt (201): id, owner, dataset, name, imageCount, classCount ve region. Bağlı bir depolama kaynağı tarafından desteklenen veri kümeleri, dosyaları kopyalanmadığı için 409 döndürür.
Veri Kümesi Dışa Aktarmasını İndir#
GET /api/datasets/{owner}/{dataset}/exportPython SDK: client.datasets.export(owner, dataset)
İmzalı bir NDJSON indirme URL'si döndürür. Veri kümesinin mevcut durumunu dışa aktarmak için v değerini belirtme; oluşturulmasından bu yana hiçbir şey değişmediyse önbelleğe alınan dışa aktarmayı yeniden kullanır.
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
v | integer | Kaydedilen sürüm numarası (1 tabanlı). Mevcut veri kümesi için belirtme. |
Yanıt:
{
"downloadUrl": "https://storage.googleapis.com/...&signature=...",
"cached": true
}Belirli bir sürüm istendiğinde cached yerine downloadUrl ve version döndürülür.
Veri Kümesi Sürümü Oluştur#
POST /api/datasets/{owner}/{dataset}/exportPython SDK: client.datasets.create_export(owner, dataset)
Veri kümesinin değiştirilemez, numaralandırılmış bir anlık görüntüsünü oluşturur ve NDJSON dışa aktarmasını depolar. Düzenleyici erişimi gerektirir.
Gövde (isteğe bağlı):
{
"description": "Added 500 training images"
}Yanıt:
{
"version": 3,
"downloadUrl": "https://storage.googleapis.com/...&signature=...",
"reused": false
}Veri kümesi önceki sürümden bu yana değişmediyse reused, true olur ve bunun yerine ilgili anlık görüntü döndürülür.
Sürüm Açıklamasını Güncelle#
PATCH /api/datasets/{owner}/{dataset}/exportPython SDK: client.datasets.update_export(owner, dataset, version=..., description=...)
Gövde:
{
"version": 2,
"description": "Fixed mislabeled classes"
}Yanıt: {"ok": true}
Veri Kümesi Sürümünü Geri Yükle#
POST /api/datasets/{owner}/{dataset}/restorePython SDK: client.datasets.restore(owner, dataset, version=...)
Görüntü baytlarını kopyalamadan, kaydedilmiş bir sürümden görüntüleri, açıklamaları ve sınıfları yeniden oluşturur.
Gövde:
{
"version": 2
}Yanıt: {"version": 2, "imageCount": 1000}
Veri Kümesi İstatistiklerini Al#
GET /api/datasets/{owner}/{dataset}/class-statsPython SDK: client.datasets.class_stats(owner, dataset)
Sınıf başına açıklama sayılarını, görüntü ve açıklama histogramlarını ve ısı haritalarını döndürür. Büyük veri kümelerinde örnekleme yapılır; bu durumda sampleSize, katkıda bulunan görüntü sayısını bildirir.
Yanıt (kısaltılmış):
{
"classes": [{ "classId": 0, "count": 1500, "imageCount": 450 }],
"imageStats": {
"widthHistogram": [{ "bin": 640, "count": 120, "size": 1 }],
"heightHistogram": [{ "bin": 480, "count": 95, "size": 1 }],
"pointsHistogram": [{ "bin": 4, "count": 200, "size": 1 }],
"formatDistribution": { "jpg": 900, "png": 100 },
"fileSizeHistogram": [{ "bin": 250000, "count": 300, "size": 50000 }],
"objectsPerImageHistogram": [{ "bin": 5, "count": 210, "size": 1 }],
"bboxWidthHistogram": [{ "bin": 120, "count": 340, "size": 20 }],
"bboxHeightHistogram": [{ "bin": 90, "count": 300, "size": 20 }]
},
"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", "forklift"],
"cached": true,
"sampleSize": null
}Sınıfları Yönet#
Sınıfları birleştir (açıklamaları hedef sınıfa yeniden ata, ardından kaynak sınıfları kaldır):
POST /api/datasets/{owner}/{dataset}/classes/mergePython SDK: client.datasets.merge_classes(owner, dataset, source_class_ids=..., target_class_id=...)
{
"sourceClassIds": [2, 4],
"targetClassId": 1
}Sınıfları sil (açıklamaları silinir ve kalan sınıf kimlikleri aşağı doğru kaydırılır):
POST /api/datasets/{owner}/{dataset}/classes/deletePython SDK: client.datasets.delete_classes(owner, dataset, class_ids=...)
{
"classIds": [2, 4]
}Her iki işlem de success, güncellenen classNames ve classColors değerlerini ve nelerin değiştiğine ilişkin bir özeti (mergedClassIds ve targetClassId veya deletedClassIds ve deletedAnnotations) döndürür.
Birleştirme veya silme işleminden sonra kalan kimlikler kaydığı için bu işlemler idempotent değildir. Başka bir sınıf işlemi göndermeden önce geçerli sınıf dizinlerini almak için veri kümesini yeniden getir.
Bölümleri Yeniden Dağıt#
POST /api/datasets/{owner}/{dataset}/splits/redistributePython SDK: client.datasets.redistribute_splits(owner, dataset, train=..., val=..., test=...)
Görüntüleri bölümler arasında rastgele yeniden atar. Üç yüzdenin toplamı 100 olmalıdır.
{
"train": 80,
"val": 20,
"test": 0
}Yanıt: success, elde edilen splits sayıları ve modified (taşınan görüntü sayısı).
Veri Kümesi Gömme Vektörleri#
GET /api/datasets/{owner}/{dataset}/embeddings
POST /api/datasets/{owner}/{dataset}/embeddings
DELETE /api/datasets/{owner}/{dataset}/embeddingsPython SDK: client.datasets.embeddings(owner, dataset), client.datasets.create_embeddings(owner, dataset), client.datasets.delete_embeddings(owner, dataset)
GET, analiz özetini (analyzedAt, embeddingsCount, latestImageAt, activeJob) döndürür. POST, bir gömme vektörü analizini kuyruğa alır ve jobId içeren 202 değerini döndürür. DELETE, etkin işi iptal eder ve iptal edilen iş kimliğini veya null değerini döndürür.
Görüntü Kümeleme#
GET /api/datasets/{owner}/{dataset}/images/clusteringPython SDK: client.datasets.clustering(owner, dataset)
Tamamlanmış bir analizden UMAP 2B yerleşimini döndürür; offset ve limit ile sayfalandırılır (varsayılan ve maksimum 50.000). Her girişte id, umapX, umapY, split, classIds, width, height, bytes, labelCount ve missing bulunur.
Bir Veri Kümesi Üzerinde Eğitilen Modelleri Listele#
GET /api/datasets/{owner}/{dataset}/modelsPython SDK: client.datasets.models(owner, dataset)
Yanıt:
{
"models": [
{
"id": "65f1c0a2b3d4e5f601234599",
"owner": "acme-vision",
"project": "inspection",
"model": "v3",
"name": "v3",
"status": "completed",
"task": "detect",
"epochs": 100,
"bestEpoch": 87,
"metrics": { "mAP50": 0.85, "mAP50-95": 0.72, "precision": 0.88, "recall": 0.81 },
"startedAt": "2026-01-14T22:00:00Z",
"completedAt": "2026-01-15T10:00:00Z",
"createdAt": "2026-01-14T21:55:00Z"
}
],
"count": 1
}Veri Kümesi Görüntülerini Listele#
GET /api/datasets/{owner}/{dataset}/imagesPython SDK: client.datasets.images(owner, dataset)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
limit | int | Döndürülecek maksimum görüntü sayısı (varsayılan: 50, maksimum: 5000) |
offset | int | Atlanacak görüntü sayısı (varsayılan: 0) |
cursor | string | İmleç sayfalandırması için önceki sayfadaki son görüntü kimliği |
includeTotal | boolean | Eşleşen toplam sayıyı dahil et (varsayılan: true) |
split | string | Bölüme göre filtrele: train, val, test |
hasLabel | boolean | Açıklama durumuna göre filtrele |
hasError | boolean | İşleme hatası durumuna göre filtrele |
classIds | string | Virgülle ayrılmış sınıf kimlikleri; bunlardan herhangi birini içeren görüntüleri döndürür |
search | string | Dosya adı ve özel meta verilerde alt dize eşleşmesi (en fazla 200 karakter) |
sort | string | newest (varsayılan), oldest, name-asc, name-desc, height-asc, height-desc, width-asc, width-desc, size-asc, size-desc, labels-asc, labels-desc |
includeThumbnails | boolean | İmzalı küçük resim URL'lerini dahil et (varsayılan: true) |
includeImageUrls | boolean | İmzalı tam boyutlu görüntü URL'lerini dahil et (varsayılan: false) |
includeLabels | boolean | Sınırlandırılmış önizleme açıklamalarını dahil et (varsayılan: false) |
Yanıt:
{
"images": [
{
"id": "65f1c0a2b3d4e5f601234567",
"hash": "9f2c1d4b6a8e0f3c5d7b9a1e2f4c6d8b",
"ext": "jpg",
"name": "aisle-04.jpg",
"thumbnailUrl": "https://storage.googleapis.com/...&signature=...",
"width": 1920,
"height": 1080,
"split": "train",
"labelCount": 6,
"bytes": 284213,
"error": null
}
],
"total": 1000,
"hasMore": true,
"classes": ["person", "forklift"],
"errorCount": 0,
"nextCursor": "65f1c0a2b3d4e5f601234567"
}Seçili Görüntüleri Al#
POST /api/datasets/{owner}/{dataset}/imagesPython SDK: client.datasets.selected_images(owner, dataset, image_ids=...)
Sağlanan en fazla 1.000 görüntü kimliği için aynı görüntü şeklini döndürür ve listeleme işlemiyle aynı filtre ve URL sorgu parametrelerini kabul eder.
{
"imageIds": ["65f1c0a2b3d4e5f601234567", "65f1c0a2b3d4e5f601234568"]
}Veri Kümesi Verilerini Al#
POST /api/datasets/{owner}/{dataset}/ingestPython SDK: client.datasets.ingest(owner, dataset, body=...)
Tamamlanmış bir yüklemeyi, uzak bir arşivi veya bağlı bir depolama kaynağını mevcut bir veri kümesine işler. Tam olarak bir kaynak belirt:
| Alan | Tür | Açıklama |
|---|---|---|
sessionId | string | POST /api/upload/signed-url öğesindeki yükleme oturumu zaten tamamlandı |
sourceUrl | string | ZIP, TAR, TAR.GZ, TGZ veya NDJSON dosyasının herkese açık HTTP ya da HTTPS URL'si (en fazla 4096 karakter) |
reference | nesne | Bağlı bir kaynak: bulut depolama (provider: "cloud", integrationId, target, prefix) veya şirket içi (provider: "local", keyId, root, prefix) |
targetSplit | string | train, val veya test; arşivin bölümlendirme yapısını geçersiz kılar |
conflictPolicy | string | Dosya adı veya içerik çakışmaları için skip, keep_both veya replace |
classMapping | nesne | Gelen sınıf adlarını bir sınıf dizinine, mevcut ya da yeni bir sınıf adına veya atlamak için null öğesine eşler |
imageMetadata | nesne | Her görüntünün arşive göreli yolu veya NDJSON file değeriyle anahtarlanmış özel meta veriler |
Yükleme oturumları, POST /api/upload/signed-url öğesine geçirilen assetId ile bir veri kümesine bağlanır ve alım işlemi farklı bir veri kümesine ait olan oturumu reddeder.
Gövde (yüklenen arşiv):
{
"sessionId": "session_abc123",
"targetSplit": "train"
}Gövde (uzak arşiv veya NDJSON):
{
"sourceUrl": "https://example.com/my-dataset.zip"
}Gövde (daha sonraki alım işleminde etiketleri içe aktarma):
{
"sessionId": "session_abc123",
"classMapping": { "person": 0, "automobile": "forklift", "background": null }
}Gövde (görüntü başına meta veri ekleme):
{
"sessionId": "session_abc123",
"imageMetadata": {
"airbus-wing.jpg": { "aircraft": { "family": "A350" }, "inspectionStatus": "reviewed" },
"images/tail.jpg": { "aircraft": { "family": "A320" }, "inspectionSeverity": 2 }
}
}Meta veri anahtarları, klasörler dahil olmak üzere arşiv içindeki normalleştirilmiş yolla eşleşmelidir. NDJSON içe aktarımlarında her kayıt, eşleşen bir imageMetadata girdisine göre öncelikli olan kendi metadata nesnesini taşıyabilir. Arşiv yolları 1.024 karakterle, üst düzey meta veri anahtarları 128 karakterle ve her meta veri nesnesi ile imageMetadata haritasının tamamı serileştirilmiş 500.000 karakterle sınırlıdır.
İlk alım işlemi, sınıfları arşivden otomatik olarak oluşturur. Daha sonraki alımlarda, classMapping içinde bulunmayan arşiv sınıfları, mevcut veri kümesi sınıflarıyla büyük/küçük harfe duyarsız eşleşmeye geri döner. Etiketler yalnızca açıkça null öğesine eşlenen veya eşleşen mevcut sınıfı bulunmayan sınıflar için atlanır.
Yanıt (201):
{
"jobId": "65f1c0a2b3d4e5f6012345aa",
"status": "queued"
}graph LR
A[POST /api/datasets]:::start --> B[POST /api/upload/signed-url]:::proc
B --> C[PUT archive to signed URL]:::proc
C --> D[POST /api/upload/complete]:::proc
D --> E["POST /api/datasets/{owner}/{dataset}/ingest"]:::proc
E --> F[Process archive]:::proc
F --> G[Dataset ready]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffPython kullanarak meta verilerle bir görüntü yükle
Aynı kod bir görüntü grubunu da işler: ZIP dosyasına daha fazla dosya ve imageMetadata öğesine eşleşen girdiler ekle.
import io
import zipfile
from pathlib import Path
import requests
api = "https://platform.ultralytics.com/api"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
owner, dataset = "acme-vision", "warehouse"
dataset_id = "65f1c0a2b3d4e5f601234567" # id returned by POST /api/datasets
image_path = Path("airbus-wing.jpg")
archive = io.BytesIO()
with zipfile.ZipFile(archive, "w", zipfile.ZIP_DEFLATED) as zf:
zf.write(image_path, image_path.name)
data = archive.getvalue()
signed = requests.post(
f"{api}/upload/signed-url",
headers=headers,
json={
"assetType": "datasets",
"assetId": dataset_id,
"filename": "images.zip",
"contentType": "application/zip",
"totalBytes": len(data),
},
)
signed.raise_for_status()
upload = signed.json()
requests.put(upload["uploadUrl"], headers={"Content-Type": "application/zip"}, data=data).raise_for_status()
requests.post(
f"{api}/upload/complete",
headers=headers,
json={"sessionId": upload["sessionId"]},
).raise_for_status()
ingest = requests.post(
f"{api}/datasets/{owner}/{dataset}/ingest",
headers=headers,
json={
"sessionId": upload["sessionId"],
"imageMetadata": {
"airbus-wing.jpg": {
"aircraft": {"family": "A350", "section": "wing"},
"inspectionStatus": "reviewed",
}
},
},
)
ingest.raise_for_status()
print(ingest.json())Görüntüler API'si#
24 karakterlik görüntü kimlikleriyle veri kümesi görüntülerini incele, açıkla, taşı ve sil. Açıklama belgelerine bak.
Görüntüyü Al#
GET /api/images/{imageId}Python SDK: client.images.retrieve(image_id)
metadata (özel, kullanıcı tanımlı), properties (dosya adı, karma, boyutlar, bölüm, sayımlar, zaman damgaları), labels ve veri kümesinin classNames öğesini döndürür.
Görüntüyü Güncelle#
PATCH /api/images/{imageId}Python SDK: client.images.update(image_id, body=...)
Ya açıklamaların ya da özel meta verilerin yerine geçer; iki şekli birden değil, bunlardan yalnızca birini gönder.
Gövde (açıklamalar):
{
"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] }
]
}Gövde (meta veriler):
{
"metadata": { "location": "strasbourg", "reviewed": true }
}Etiket koordinatları, 0 ile 1 arasındaki YOLO normalleştirilmiş değerlerini kullanır. Sınırlayıcı kutular [x_center, y_center, width, height] kullanır. Segmentasyon etiketleri, düzleştirilmiş bir çokgen köşe listesi olan segments ve [x1, y1, x2, y2, ...] kullanır. Poz etiketleri, tek bir tutarlı düz biçimde keypoints kullanır: [x1, y1, x2, y2, ...] çiftleri veya [x1, y1, v1, x2, y2, v2, ...] üçlüleri; görünürlükte geleneksel olarak 0, 1 veya 2 kullanılır. Yönlendirilmiş kutular obb köşelerini kullanır. Kaydedilen koordinatlar 5 ondalık basamağa yuvarlanır ve bir görüntü en fazla 10.000 açıklama kabul eder.
Görüntüyü Sil#
DELETE /api/images/{imageId}Python SDK: client.images.delete(image_id)
Bir görüntüyü ve açıklamalarını kalıcı olarak siler.
Görüntüyü Otomatik Açıkla#
POST /api/images/{imageId}/predictPython SDK: client.images.predict(image_id, model_id=...)
Görüntü üzerinde YOLO çıkarımı çalıştırır ve tahmin edilen açıklamaları döndürür. Bunları kaydetmez; sonuçlardan memnun kaldığında PATCH /api/images/{imageId} ile sonuçları geri yaz.
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
modelId | string | Evet | Tam nitelikli model URI'si, ul://{owner}/{project}/{model} |
confidence | float | Hayır | Güven eşiği, 0.01 – 1.0 (varsayılan: 0.25) |
iou | float | Hayır | Maksimum olmayan bastırma için IoU eşiği, 0.0 – 0.95 (varsayılan: 0.7) |
Yanıt: success, predictions (açıklama nesneleri), modelUsed ve inferenceTime. Sınıfları veri kümesiyle eşleşmeyen bir model 422 döndürür.
Bir Veri Kümesini Otomatik Etiketle#
POST /api/datasets/{owner}/{dataset}/predict/batchPython SDK: client.datasets.create_batch(owner, dataset, model_id=...)
Bir veri kümesi sürümünü kaydeder, ardından veri kümesinin etiketlenmemiş görüntülerini model ile etiketleyen bir çalıştırmayı kuyruğa alır ve 202 döndürür.
Gövde, tek görüntü uç noktasıyla aynı modelId, confidence ve iou alanlarını alır; ayrıca halihazırda etiketi olan görüntüleri de etiketlemek için includeAnnotated (varsayılan false) ve her model sınıfı için veri kümesi sınıfı indeksini veren isteğe bağlı bir classMapping dizisi veya bunu atlamak için null alır. Mevcut etiketler asla değiştirilmez ve çalıştırma, gerçekten işlediği görüntüler üzerinden ücretlendirilir. 402, bakiyenin tahmini tutarı karşılayamadığı anlamına gelir; 409, veri kümesinin hazır olmadığını, etiketlenecek başka görüntüsü kalmadığını veya devam eden bir çalıştırması olduğunu gösterir; 422 ise veri kümesinde hiç sınıf olmadığını belirtir: bu uç noktayı çağırmadan önce bunları sınıflar uç noktası ile oluştur; uygulamanın Sınıfları Eşle adımı bir çalıştırma başlatmadan önce bunu yapar.
Aynı yoldaki (client.datasets.batch(owner, dataset)) GET, devam eden çalıştırmayı ve ilerleme durumunu ya da kapatılana kadar son biten çalıştırmayı döndürür; DELETE (client.datasets.delete_batch(owner, dataset)) ise devam eden bir çalıştırmayı iptal eder veya faturalandırmayı sonuçlandırıp biten özeti kapatır.
Görüntüleri Toplu Taşı#
PATCH /api/images/bulkPython SDK: client.images.update_bulk(image_ids=..., split=...)
En fazla 1.000 görüntüyü bir veri kümesinden farklı bir bölüme taşır.
{
"imageIds": ["65f1c0a2b3d4e5f601234567"],
"split": "val",
"conflictPolicy": "skip"
}Dosya adı veya içerik çakışmaları, conflictPolicy için skip, keep_both veya replace seçeneklerinden oluşan tüm paket için geçerli bir seçim yapana kadar 409 döndürür. Yanıt modifiedCount, skippedCount ve targetSplit öğelerini bildirir.
Görüntüleri Toplu Sil#
DELETE /api/images/bulkPython SDK: client.images.delete_bulk(image_ids=...)
{
"imageIds": ["65f1c0a2b3d4e5f601234567", "65f1c0a2b3d4e5f601234568"]
}Tek bir veri kümesinden en fazla 1.000 görüntüyü siler ve deletedCount ile deletedImageIds öğelerini döndürür.
İmzalı Görüntü URL'lerini Al#
POST /api/images/urlsPython SDK: client.images.urls(image_ids=...)
Tek bir veri kümesindeki en fazla 100 görüntü kimliği için geçici imzalı URL'ler döndürür.
{
"imageIds": ["65f1c0a2b3d4e5f601234567"]
}Yanıt: Her ikisi de görüntü kimliğiyle anahtarlanmış urls ve thumbnails.
Projeler API'si#
Modellerini projeler halinde düzenle. Her model bir projeye aittir. Projeler belgelerine bak.
Projeleri Listele#
GET /api/projects/{owner}Python SDK: client.projects.list(owner)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
limit | int | Döndürülecek maksimum proje sayısı (varsayılan: 20, maksimum: 500) |
Projeyi Al#
GET /api/projects/{owner}/{project}Python SDK: client.projects.retrieve(owner, project)
project nesnesini, model başına özetlerden oluşan models dizisini (durum, metrikler, epoch'lar, ağırlıklar, eğitim bağımsız değişkenleri) ve isOwner öğesini döndürür.
Proje Oluştur#
POST /api/projectsPython SDK: client.projects.create(project=..., name=...)
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
project | string | Evet | Platform URL'lerinde kullanılan proje adı |
name | string | Evet | Görünen ad (en fazla 100 karakter) |
description | string | Hayır | Açıklama (en fazla 1000 karakter) |
visibility | string | Hayır | public veya private |
tags | dizi | Hayır | En fazla 50 etiket |
license | string | Hayır | Proje lisansı tanımlayıcısı |
metadata | nesne | Hayır | Özel JSON meta verileri |
owner | string | Hayır | Ekip çalışma alanı tanıtıcısı; varsayılan olarak kişisel çalışma alanın kullanılır |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project": "inspection",
"name": "Inspection",
"description": "Detection experiments",
"metadata": {"department": "manufacturing", "cost_center": "cv-01"}
}' \
https://platform.ultralytics.com/api/projectsYanıt (201): id, owner, project, region.
Projeyi Güncelle#
PATCH /api/projects/{owner}/{project}Python SDK: client.projects.update(owner, project)
Kabul edilen alanlar: name, description, visibility, metadata, tags, license, archived, iconColor, iconLetter, viewPreferences ve starred.
{
"metadata": { "department": "research", "program": "inspection" }
}Temizlemek için boş bir metadata nesnesi ({}) gönder. Proje meta verileri, veri kümesi meta verileriyle aynı 128 karakterlik anahtar ve 500.000 karakterlik serileştirilmiş nesne sınırlarını kullanır.
Projeyi Sil#
DELETE /api/projects/{owner}/{project}Python SDK: client.projects.delete(owner, project)
Projeyi ve modellerini çöp kutusuna taşır ve cascadedModels öğesini döndürür.
Projeyi Klonlama#
POST /api/projects/{owner}/{project}/clonePython SDK: client.projects.clone(owner, project)
Erişilebilir bir projeyi ve tamamlanmış modellerini klonlar. İsteğe bağlı gövde project, name, description, visibility, license ve hedef owner öğesini kabul eder.
Modeller API'si#
Eğitilmiş YOLO modellerini yönet: metrikleri görüntüle, ağırlıkları indir, çıkarım çalıştır ve eğitimi izle. Modeller belgelerine bak.
Bir Projedeki Modelleri Listele#
GET /api/models/{owner}/{project}Python SDK: client.models.list(owner, project)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
limit | int | Döndürülecek maksimum model sayısı (varsayılan: 20, maksimum: 100) |
Modeli Al#
GET /api/models/{owner}/{project}/{model}Python SDK: client.models.retrieve(owner, project, model)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
analysis | int | Model yerine görüntü başına doğrulama analizini döndürmek için 1 olarak ayarla |
Varsayılan yanıt, model nesnesini (durum, görev, metrikler, trainArgs, trainResults, classNames, computeCost, metadata ve daha fazlası) ve ayrıca isOwner öğesini içerir.
Model Oluştur#
POST /api/modelsPython SDK: client.models.create(body=...)
Ağırlık ekleyebileceğin veya eğitebileceğin eğitilmemiş bir model kaydı oluşturur.
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
project | string | Evet | Hedef proje adı |
owner | string | Hayır | Çalışma alanı tanıtıcısı; varsayılan olarak kişisel çalışma alanın kullanılır |
model | string | Hayır | Platform URL'lerinde kullanılan model adı; belirtilmezse oluşturulur |
name | string | Hayır | Görünen ad (yalnızca model ile birlikte kabul edilir) |
description | string | Hayır | Açıklama (en fazla 1000 karakter) |
task | string | Hayır | detect, segment, semantic, depth, classify, pose veya obb |
metadata | nesne | Hayır | Özel JSON meta verileri |
trainArgs | nesne | Hayır | Kaydedilecek eğitim bağımsız değişkenleri |
metrics | nesne | Hayır | mAP50, mAP50-95, precision, recall gibi metrikler |
epochs | sayı | Hayır | Önceden eğitilmiş bir model için epoch sayısı |
version | string | Hayır | Sürüm etiketi (en fazla 50 karakter) |
Yanıt (201): id, owner, project, model, region.
.pt ağırlıklarını eklemek için assetType: "models" ile imzalı bir yükleme URL'si ve bu modelin id öğesini assetId olarak iste, dosyayı PUT ile döndürülen URL'ye yükle, ardından döndürülen sessionId ile POST /api/upload/complete çağrısını yap.
Modeli Güncelle#
PATCH /api/models/{owner}/{project}/{model}Python SDK: client.models.update(owner, project, model)
Kabul edilen alanlar şunları içerir: name, description, color, metadata, status, license, datasetSlug, trainArgs,
trainResults, epochs, bestEpoch, bestFitness, version, trainingError ve starred. projectId değerini tek başına
iletmek, modeli aynı sahibin başka bir projesine taşır; yanıt, hedef konumda modelin slug değerini,
orada bu kısa ad halihazırda alınmışsa renamed: true değerini ve model hala eğitilirken 409 değerini döndürür.
{
"metadata": { "release": "candidate-3", "reviewed": true }
}Özel metadata, trainArgs, environment ve trainResults gibi eğitime ait alanlardan ayrıdır ve veri kümesi meta verileriyle aynı boyut sınırlarını kullanır.
Modeli Sil#
DELETE /api/models/{owner}/{project}/{model}Python SDK: client.models.delete(owner, project, model)
Modeli 30 gün boyunca çöp kutusuna taşır.
Model Dosyalarını İndir#
GET /api/models/{owner}/{project}/{model}/filesPython SDK: client.models.files(owner, project, model)
Modelin ağırlıkları için kısa süreli imzalı URL'ler döndürür.
{
"files": [
{
"name": "best.pt",
"size": 6534127,
"downloadUrl": "https://storage.googleapis.com/...&signature=..."
}
]
}Modeli Klonla#
POST /api/models/{owner}/{project}/{model}/clonePython SDK: client.models.clone(owner, project, model, project_body=...)
Erişilebilir bir modeli mevcut bir projeye kopyalar.
{
"owner": "acme-vision",
"project": "inspection",
"model": "v3-copy",
"name": "V3 Copy",
"description": "Cloned from a public model"
}| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
project | string | Evet | Hedef proje adı |
owner | string | Hayır | Hedef çalışma alanı; varsayılan olarak kişisel çalışma alanın kullanılır |
model | string | Hayır | Hedef model adı |
name | string | Hayır | Hedef görünen ad |
description | string | Hayır | Klon için açıklama |
Çıkarımı çalıştır#
POST /api/models/{owner}/{project}/{model}/predictPython SDK: client.models.predict(owner, project, model, body=...)
Herkese açık modeller kimlik doğrulama olmadan tahmin için kullanılabilir. Özel ve paylaşılan modeller, üst projeye erişimi olan bir API anahtarı gerektirir.
Çok Parçalı Form:
| Parametre | Tür | Varsayılan | Aralık | Açıklama |
|---|---|---|---|---|
file | file | - | - | Görüntü veya video dosyası (source ayarlanmadığı sürece gereklidir) |
conf | float | 0.25 | 0.01 – 1.0 | Minimum güven eşiği |
iou | float | 0.7 | 0.0 – 0.95 | NMS IoU eşiği |
imgsz | int | 640 | 32 – 1280 | Piksel cinsinden girdi görüntüsü boyutu |
normalize | bool | false | - | Sınırlayıcı kutu koordinatlarını 0 – 1 olarak döndür |
decimals | int | 5 | 0 – 10 | Koordinat değerleri için ondalık hassasiyet |
bits | int | 8 | 8, 12, 16 | Yalnızca derinlik modellerinde derinlik haritası niceleme |
source | string | - | - | Görüntü URL'si veya base64 dizesi (file yerine alternatif) |
file veya source sağlayın. Derinlik modelleri, derinlik haritasının PNG
nicelemesini seçmek için bits (8, 12 veya 16) değerlerini de kabul eder. Hizmetin giriş sınırlarını aşan istekler 413 döndürür.
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/acme-vision/inspection/v3/predictYanıt:
images içindeki her girişte shape, speed, results ve yoğun tahmin görevleri için semantic_mask veya
depth PNG yükü bulunur (pixel × max / divisor derinlik değerleri, varsayılan 8 bitlik harita için 255 ve bits 12 veya 16 olduğunda 65535 böleni kullanır). metadata nesnesi görüntü sayısını, işlev sürelerini, görevi ve hizmet sürümlerini bildirir. Dahili
model yolları hiçbir zaman döndürülmez.
{
"images": [
{
"shape": [1080, 1920],
"speed": { "preprocess": 2.1, "inference": 12.4, "postprocess": 1.3 },
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1,
"functionTimeAlive": 184.2,
"functionTimeCall": 0.31,
"task": "detect",
"version": { "ultralytics": "8.4.120" }
}
}Eğitim İlerlemesini Kontrol Et#
GET /api/models/{owner}/{project}/{model}/trainingPython SDK: client.models.training(owner, project, model)
Durum, epoch ilerlemesi, zamanlama, işlem ayrıntıları, eğitim bağımsız değişkenleri, epoch metrikleri ve güvenli hata ayrıntılarını içeren job değerini veya model hiç eğitilmemişse null değerini döndürür. Genel projelerdeki modeller kimlik doğrulama olmadan okunabilir.
Eğitimi İptal Et#
DELETE /api/models/{owner}/{project}/{model}/trainingPython SDK: client.models.delete_training(owner, project, model)
Çalışan işlem örneğini sonlandırır ve işi iptal edildi olarak işaretler. Eğitim artık etkin olmadığında 409 döndürür.
Eğitim API'si#
YOLO eğitimini bulut GPU'larında başlatın ve ilerlemeyi gerçek zamanlı olarak izleyin. Bkz. Bulut Eğitimi belgeleri.
graph LR
A[POST /api/training/start]:::start --> B[Job Created]:::proc
B --> C{Training}:::decide
C -->|progress| D[GET .../training]:::proc
C -->|cancel| E[DELETE .../training]:::error
C -->|complete| F[Model Ready]:::out
F --> G[Deploy or Export]:::proc
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fffGPU Kullanılabilirliğini Al#
GET /api/training/gpu-availabilityPython SDK: client.training.gpu_availability()
GPU kimliğine göre anahtarlanmış güncel stok durumunu döndürür. Genel ve kimlik doğrulaması gerektirmez; yönetilen
eğitim kapasitesini de dahil etmek için managed=true gönderin; bunun için API anahtarı gerekir.
Eğitimi Başlat#
POST /api/training/startPython SDK: client.training.start(model_id=..., train_args=...)
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
modelId | string | Evet | Eğitilecek modelin kimliği |
trainArgs | nesne | Evet | YOLO eğitim bağımsız değişkenleri; model, data ve epochs gereklidir |
gpuType | string | Hayır | Kullanılacak bulut GPU'su (varsayılan: rtx-4090) |
captureDatasetVersion | boolean | Hayır | Bu çalıştırma için değiştirilemez bir veri kümesi sürümü kaydedin (varsayılan: false) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "65f1c0a2b3d4e5f601234599",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://acme-vision/datasets/warehouse",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/startYanıt:
{
"modelId": "65f1c0a2b3d4e5f601234599",
"status": "starting",
"gpuType": "rtx-4090",
"estimatedCost": { "pricePerHour": 0.69, "gpuMemoryGb": 24 },
"billing": {
"estimatedCostCents": 138,
"estimatedCostDisplay": "$1.38",
"balanceCents": 2500
}
}Kredi bakiyeniz çok düşük olduğunda eğitim 402, istenen GPU için kapasite bulunmadığında ise 503 döndürür.
rtx-2000-ada ile b300 arasında 26 GPU türü kullanılabilir; bunlar arasında rtx-4090, l40s, a100-80gb-pcie,
a100-80gb-sxm, rtx-pro-6000, h100-sxm, h200-sxm ve b200 bulunur. Fiyatlandırmayla birlikte tam liste için
Bulut Eğitimi sayfasına bakın.
Dışa Aktarma API'si#
Modelleri uç dağıtım için ONNX, TensorRT, CoreML ve LiteRT gibi optimize edilmiş biçimlere dönüştürün. Bkz. Dağıtım belgeleri.
Dışa Aktarmaları Listele#
GET /api/models/{owner}/{project}/{model}/exportsPython SDK: client.exports.list(owner, project, model)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
status | string | queued, starting, running, completed, failed veya cancelled ile filtreleyin |
limit | int | Döndürülecek en fazla dışa aktarma sayısı (varsayılan: 20, maksimum: 100) |
Dışa Aktarma Oluştur#
POST /api/models/{owner}/{project}/{model}/exportsPython SDK: client.exports.create(owner, project, model, format=...)
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
format | string | Evet | Hedef dışa aktarma biçimi (aşağıdaki tabloya bakın) |
gpuType | string | Koşullu | format, engine olduğunda gereklidir; desteklenen bir GPU veya Jetson hedefi kullanın |
args | nesne | Hayır | Dışa aktarma seçenekleri: imgsz, quantize, dynamic, simplify, opset, conf, iou, batch, workspace, nms, optimize, keras ve name (RKNN, QNN, Hailo ve Ascend formatları için cihaz hedefi) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "onnx", "args": {"imgsz": 640, "quantize": 16}}' \
https://platform.ultralytics.com/api/models/acme-vision/inspection/v3/exportsYanıt (201): id, format, status (queued veya running), gpuType, region. Halihazırda devam eden eşdeğer bir dışa aktarma 409 döndürür.
Desteklenen Biçimler:
Aşağıdaki ortak dışa aktarma tablosundaki format bağımsız değişkenini kullanın. PyTorch kaynak biçimidir ve API dışa aktarma
için hedef değildir.
| Biçim | format bağımsız değişkeni | Model | Meta veriler | Bağımsız değişkenler |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
nms=None, harici NMS için varsayılan olarak ham çıktıları kullanır. Mevcut bir NMS'siz başlığı seçmek için nms=False değerini ayarla; desteklenmeyen formatlar yerel çıktı yollarına geri döner. Yukarıdaki nms girdileri, NMS'yi nms=True ile gömebilen formatları tanımlar.
Dışa Aktarma Durumunu Al#
GET /api/models/{owner}/{project}/{model}/exports/{exportId}Python SDK: client.exports.retrieve(owner, project, model, export_id)
status, format, args, gpuType, zaman damgaları ve tamamlandığında size, downloadUrl ve downloadFilename içeren bir file
nesnesiyle birlikte export nesnesini döndürür.
Dışa Aktarmayı İptal Et veya Sil#
DELETE /api/models/{owner}/{project}/{model}/exports/{exportId}Python SDK: client.exports.delete(owner, project, model, export_id)
Etkin bir dışa aktarmayı iptal eder veya tamamlanmış bir dışa aktarmayı ve dosyasını siler. Yanıt, hangisinin gerçekleştiğini bildirir:
{
"success": true,
"action": "cancelled"
}Dağıtımlar API'si#
Modelleri sağlık kontrolleri ve izleme özelliklerine sahip özel çıkarım uç noktalarına dağıtın. Bkz. Uç noktalar belgeleri.
graph LR
A[Create]:::start --> B[Deploying]:::proc
B --> C[Ready]:::out
C -->|action stop| D[Stopped]:::extern
C -->|action replace| B
D -->|action start| C
C -->|delete| E[Deleted]:::error
D -->|delete| E
C -->|predict| F[Inference Results]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fffDağıtımları Listele#
GET /api/deployments/{owner}Python SDK: client.deployments.list(owner)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
status | string | creating, deploying, ready, stopping, stopped veya failed |
model | string | {project}/{model} ile filtreleyin; örneğin inspection/v3 |
limit | int | Döndürülecek en fazla dağıtım sayısı (varsayılan: 20, maksimum: 100) |
Anonim çağıranlar bir genel modele göre filtreleme yapmalıdır; çalışma alanının tamamını listelemek için kimlik doğrulaması gerekir.
Dağıtım Oluştur#
POST /api/deployments/{owner}Python SDK: client.deployments.create(owner, project=..., model=..., deployment=..., name=..., region=...)
Gövde:
{
"project": "inspection",
"model": "v3",
"deployment": "edge-1",
"name": "Edge 1",
"region": "us-central1"
}| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
project | string | Evet | Modeli içeren proje |
model | string | Evet | Dağıtılacak model |
deployment | string | Evet | Platform URL'lerinde kullanılan dağıtım adı |
name | string | Evet | Görünen ad |
region | string | Evet | Desteklenen 42 dağıtım bölgesinden biri |
Yanıt (201): id, deployment, status (creating), message ve region.
CPU, bellek ve örnek ölçeklendirme, planınızın sınırlarına göre Platform tarafından yönetilir ve oluşturma isteği bir kaynak yapılandırmasını kabul etmez. Güncel değerler, her dağıtım okumasında resources nesnesinde döndürülür.
En düşük gecikme için kullanıcılarınıza yakın bir bölge seçin. Platform kullanıcı arayüzü, kullanılabilir 42 bölgenin tümü için gecikme tahminlerini gösterir.
Dağıtımı Al#
GET /api/deployments/{owner}/{deployment}Python SDK: client.deployments.retrieve(owner, deployment)
status, statusMessage, region, serviceUrl ve resources içeren deployment nesnesini döndürür.
Dağıtımı Başlat, Durdur veya Değiştir#
PATCH /api/deployments/{owner}/{deployment}Python SDK: client.deployments.update(owner, deployment, body=...)
Tek bir action alanı işlemi seçer:
{ "action": "start" }Değiştirme işlemi, dağıtım kimliğini, bölgeyi ve uç nokta URL'sini koruyarak yeni bir revizyonu kullanıma sunar; kullanıma sunma başarısız olursa mevcut revizyon çalışmaya devam eder. Değiştirilecek model, anahtarının erişebildiği ağırlıklara sahip tamamlanmış bir model olmalıdır. Tamamlanan işlemler status ready veya stopped içeren 200 değerini; kullanıma sunma işlemi devam edenler ise deploying veya stopping içeren 202 değerini döndürür.
Dağıtımı Sil#
DELETE /api/deployments/{owner}/{deployment}Python SDK: client.deployments.delete(owner, deployment)
Çıkarım uç noktasını kalıcı olarak kaldırır.
Sağlık Kontrolü#
GET /api/deployments/{owner}/{deployment}/healthPython SDK: client.deployments.health(owner, deployment)
Uç noktaya ping gönderir ve onu ısıtır; healthy, latencyMs ve üst akıştaki status kodunu döndürür.
Dağıtımda Çıkarım Çalıştır#
POST /api/deployments/{owner}/{deployment}/predictPython SDK: client.deployments.predict(owner, deployment, body=...)
Bir görüntüyü veya videoyu özel uç nokta üzerinden yönlendirir. İstek ve yanıt sözleşmeleri model çıkarımı ile aynıdır.
Çok Parçalı Form:
| Parametre | Tür | Varsayılan | Aralık | Açıklama |
|---|---|---|---|---|
file | file | - | - | Görüntü veya video dosyası (source ayarlanmadığı sürece gereklidir) |
conf | float | 0.25 | 0.01 – 1.0 | Minimum güven eşiği |
iou | float | 0.7 | 0.0 – 0.95 | NMS IoU eşiği |
imgsz | int | 640 | 32 – 1280 | Piksel cinsinden girdi görüntüsü boyutu |
normalize | bool | false | - | Sınırlayıcı kutu koordinatlarını 0 – 1 olarak döndür |
decimals | int | 5 | 0 – 10 | Koordinat değerleri için ondalık hassasiyet |
bits | int | 8 | 8, 12, 16 | Yalnızca derinlik modellerinde derinlik haritası niceleme |
source | string | - | - | Görüntü URL'si veya base64 dizesi (file yerine alternatif) |
Metrikleri Al#
GET /api/deployments/{owner}/{deployment}/metricsPython SDK: client.deployments.metrics(owner, deployment)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
range | string | 1h, 6h, 24h (varsayılan), 7d veya 30d |
sparkline | boolean | Tam seriler yerine özet gösterge paneli özetini döndür (varsayılan: false) |
Tam yanıt, summary (istek toplamları, hata oranı, ortalama ve p50/p95/p99 gecikme) ile timeSeries (istekler, hatalar, gecikme, CPU, bellek, örnek sayısı) içerir. Sparkline yanıtı requests24h,
totalRequests, errorRate ve avgLatencyMs değerlerini döndürür.
Günlükleri Al#
GET /api/deployments/{owner}/{deployment}/logsPython SDK: client.deployments.logs(owner, deployment)
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
severity | string | Virgülle ayrılmış: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY |
limit | int | Döndürülecek giriş sayısı (varsayılan: 50, maksimum: 200) |
pageToken | string | Önceki yanıttan sayfalandırma belirteci |
Çöp Kutusu API'si#
Yumuşak silinen projeleri, veri kümelerini ve modelleri görüntüleyin, geri yükleyin ve kalıcı olarak silin. Öğeler 30 gün sonra otomatik olarak temizlenir. Bkz. Çöp Kutusu belgeleri.
Çöp Kutusunu Listeleme#
GET /api/trashPython SDK: client.lifecycle.trash()
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
type | string | all (varsayılan), project, dataset veya model |
page | int | Sayfa numarası (varsayılan: 1) |
limit | int | Sayfa başına öğe sayısı (varsayılan: 50, maksimum: 200) |
Yanıt, items (her biri daysRemaining içerir), total, page, limit, totalPages ve türe göre toplamları içeren bir summary içerir.
Öğeyi Geri Yükleme#
POST /api/trashPython SDK: client.lifecycle.restore(id=..., type=...)
{
"id": "65f1c0a2b3d4e5f601234567",
"type": "dataset"
}Bir projenin geri yüklenmesi, onunla birlikte çöp kutusuna taşınan modelleri de geri yükler ve bu modeller restoredModels olarak bildirilir.
Kalıcı Olarak Sil#
DELETE /api/trashPython SDK: client.lifecycle.delete_trash(body=...)
Bir öğeyi silin:
{
"id": "65f1c0a2b3d4e5f601234567",
"type": "dataset"
}Veya tüm çöp kutusunu boşaltın:
{
"all": true
}Yanıt, deletedCount ile birlikte ilgili olduğunda cascadedModels ve survivingDeployments değerlerini bildirir.
Kalıcı silme işlemi geri alınamaz. Kaynak ve ilişkili tüm veriler kaldırılır.
Yükleme API'si#
İmzalı URL'ler kullanarak dosyaları doğrudan bulut depolamaya yükleyin. Model yüklemesinin tamamlanması ağırlıklarını ilişkilendirir; veri kümesi arşivi yüklemesinin tamamlanması oturumu kaydeder ve bu oturumu daha sonra veri kümesi alımı işlemine iletirsiniz. Bkz. Veri belgeleri.
İmzalı Yükleme URL'sini Al#
POST /api/upload/signed-urlPython SDK: client.upload.signed_url(body=...)
Gövde:
{
"assetType": "datasets",
"assetId": "65f1c0a2b3d4e5f601234567",
"filename": "warehouse.zip",
"contentType": "application/zip",
"totalBytes": 52428800
}| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
assetType | string | Evet | datasets, models, images veya videos |
assetId | string | Evet | Hedef veri kümesinin veya modelin kimliği |
filename | string | Evet | Özgün dosya adı (maksimum 256 karakter) |
contentType | string | Evet | MIME türü |
totalBytes | sayı | Evet | Bayt cinsinden dosya boyutu |
assetType, datasets olduğunda filename değeri .zip, .tar, .tar.gz, .tgz veya .ndjson ile bitmelidir. Yüklemeden önce paketlenmemiş görüntüleri bir arşive yerleştirin.
Yanıt:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.googleapis.com/...&signature=...",
"expiresAt": "2026-02-22T12:00:00Z",
"headers": { "x-goog-if-generation-match": "0" }
}Beyan ettiğin aynı Content-Type değerini ve headers içinde döndürülen her üst bilgiyi (header) kullanarak, dosyayı uploadUrl adresine bir PUT isteğiyle yükle. Veri kümesi yükleme URL'leri 12 saat boyunca geçerlidir ve yalnızca oluşturma amaçlıdır: aynı URL'ye yapılan ikinci bir PUT isteği
412 döndürür ve döndürülen üst bilgiler olmadan yapılan bir PUT isteği 400 döndürür.
Yüklemeyi Tamamla#
POST /api/upload/completePython SDK: client.upload.complete(session_id=...)
{
"sessionId": "session_abc123",
"md5": "<optional md5 hex>"
}Yanıt: success ve size ile contentType içeren bir file nesnesi. Modeller için bu işlem ağırlıkları ilişkilendirir; veri kümesi arşivleri için işlemeyi başlatmak üzere sonraki adımda ingest çağrısını yapın.
md5 sağlandığında, saklanan nesneye göre kontrol edilir. Uyuşmazlık 400 döndürür; henüz tamamlanmamış bir oturumda ayrıca yüklenen dosyayı siler ve oturumu tamamlanmamış olarak bırakır; bu nedenle yeni bir imzalı URL iste ve tekrar
yükle. Tamamlanmış bir veri kümesi oturumu, arşivi mevcut olduğu sürece tekrar tamamlanabilir, ancak farklı özet değerlerine (digest) sahip
çakışan tamamlama denemeleri 409 döndürür; model oturumları tamamlandığında kaldırılır. checksum, model dosyası meta verisi olarak saklanır
ve doğrulanmaz.
Depolama Entegrasyonları API'si#
Salt okunur Google Cloud Storage, Amazon S3 veya Azure Blob Storage hesaplarını bağlayın ve bunlara veri kümesi kaynakları olarak göz atın. Bkz. Entegrasyonlar belgeleri.
Entegrasyonları Listele#
GET /api/integrations/bucketsPython SDK: client.storage_integrations.list()
Her biri id, provider, credentialIdentity, targets ve createdAt içeren integrations döndürür. Kimlik bilgileri
asla döndürülmez.
Konumları Keşfet#
POST /api/integrations/buckets/discoverPython SDK: client.storage_integrations.discover(body=...)
Sağlanan kimlik bilgileriyle okunabilen paketleri veya kapsayıcıları kaydetmeden listeler.
{
"provider": "gcs",
"credentials": {
"client_email": "svc@project.iam.gserviceaccount.com",
"private_key": "-----BEGIN PRIVATE KEY-----\n...",
"project_id": "my-project"
}
}Yanıt: {"targets": ["my-bucket", "another-bucket"]}
Depolamaya Bağlan#
POST /api/integrations/bucketsPython SDK: client.storage_integrations.create(body=...)
Keşiftekiyle aynı kimlik bilgisi biçimlerine ek olarak, 1-50 paket veya kapsayıcı adı içeren zorunlu bir targets dizisi kullanılır. Kaydedilen entegrasyonla birlikte 201
döndürülür. Geçici S3 kimlik bilgileri (ASIA erişim anahtarları) reddedilir.
Nesnelere Göz At#
GET /api/integrations/buckets/{id}/objectsPython SDK: client.storage_integrations.objects(id, target=...)
Sorgu Parametreleri:
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
target | string | Evet | Paket veya kapsayıcı adı |
prefix | string | Hayır | Klasör ön eki (en fazla 1024 karakter) |
cursor | string | Hayır | Önceki sayfadan sağlayıcı sayfalandırma imleci |
entries döndürür (her kind, folder veya file değeridir) ve sonraki sayfa için isteğe bağlı bir cursor döndürür.
Depolama Bağlantısını Kes#
DELETE /api/integrations/buckets/{id}Python SDK: client.storage_integrations.delete(id)
Sağlayıcı verilerini silmeden kaydedilmiş kimlik bilgilerini kaldırır. Bağlı veri kümeleri görünür kalır, ancak aynı depolama hesabı yeniden bağlanana kadar dosyaları erişilemez durumda kalır. Çalışma alanı yöneticisi erişimi gerekir.
Veri Kümesi İçe Aktarma API'si#
Veri kümelerini üçüncü taraf hizmetlerden içe aktar. Roboflow entegrasyonuna bak.
Roboflow İçe Aktarmasını Önizle#
POST /api/integrations/roboflow/previewPython SDK: client.datasets.preview_roboflow(api_key=...)
Bir Roboflow API anahtarını içe aktarma planına çözümler: çalışma alanı ayrıntıları, içe aktarılacak newDatasets, atlanan, desteklenmeyen ve çözümlenemeyen projelerin sayıları, bytesTotal ve storage için kalan kapasiten. Roboflow API anahtarı gövdeden okunur
ve kalıcı olarak saklanmaz.
{
"apiKey": "ROBOFLOW_API_KEY"
}Roboflow'dan İçe Aktar#
POST /api/integrations/roboflow/importPython SDK: client.datasets.import_roboflow(api_key=..., items=...)
Önizlemede döndürülen öğeleri kullanarak en fazla 500 seçili Roboflow proje sürümü için alım işleri kuyruğa ekler.
{
"apiKey": "ROBOFLOW_API_KEY",
"items": [
{
"workspace": "my-workspace",
"projectId": "warehouse-safety",
"projectName": "Warehouse Safety",
"projectType": "object-detection",
"latestVersion": 4
}
]
}Yanıt (201): imported, failed ve skipped dizileri. İçe aktarma işlemleri depolama kapasitesi gerektirir ve her veri kümesi
planının içe aktarma başına boyut sınırına sığmalıdır.
Hesap API'si#
Platform hesabını, anahtarlarını, depolama alanını ve herkese açık profillerini incele. Ayarlar belgelerine bak.
Hesap Özeti#
GET /api/account/summaryPython SDK: client.account.summary()
Anahtarı oluşturan çalışma alanının planını, kredi bakiyesini ve kaynak sayılarını döndürür.
{
"username": "acme-vision",
"name": "Acme Vision",
"accountType": "team",
"plan": "pro",
"creditsCents": 2500,
"counts": { "projects": 4, "datasets": 7, "models": 21 },
"teams": []
}teams, tarayıcı oturumları için doldurulur. API anahtarı yanıtları boş bir liste döndürür; çünkü anahtar zaten tek bir çalışma alanıyla sınırlıdır.
API Anahtarlarını Listele#
GET /api/api-keysPython SDK: client.account.api_keys()
Anahtarın çalışma alanı için keyId, name, keyPrefix ve createdAt içeren keys döndürür. API anahtarıyla kimlik doğrulanan
istekler yalnızca meta verileri alır; tam anahtar değerleri, Platform kullanıcı arayüzündeki
Ayarlar > API Anahtarları bölümünde çalışma alanı sahibine gösterilir; anahtarlar burada oluşturulur ve iptal edilir.
Depolama Kullanımını Kontrol Et#
GET /api/storagePython SDK: client.account.storage()
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
details | boolean | Depolama alanını en çok kullanan on kaynağı dahil et (varsayılan: false) |
Yanıt:
{
"tier": "pro",
"usage": {
"storage": { "current": 1073741824, "limit": 107374182400, "percent": 1.0 },
"datasets": { "current": 536870912, "limit": 107374182400, "percent": 0.5 }
},
"breakdown": {
"byCategory": {
"datasets": { "bytes": 536870912, "count": 2 },
"models": { "bytes": 268435456, "count": 4 },
"exports": { "bytes": 268435456, "count": 3 }
},
"topItems": [
{
"_id": "65f1c0a2b3d4e5f601234567",
"name": "Warehouse",
"slug": "warehouse",
"sizeBytes": 536870912,
"type": "dataset"
}
]
},
"region": "us",
"username": "acme-vision",
"updatedAt": "2026-01-15T10:00:00Z"
}Herkese Açık Kullanıcı Profilini Al#
GET /api/usersPython SDK: client.account.profile(username=...)
Sorgu Parametreleri:
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
username | string | Evet | Aranacak kullanıcı adı |
Herkese açık user profilini, followerCount ile birlikte ve kimliği doğrulanmış çağrılar için isFollowed ile döndürür.
Bir Kullanıcıyı Takip Et veya Takibi Bırak#
PATCH /api/usersPython SDK: client.account.follow(username=..., followed=...)
{
"username": "target-user",
"followed": true
}Yanıt: followed ve güncellenmiş followerCount.
Faturalandırma API'si#
Plan kullanımını ve kredi defterini kontrol et. Faturalandırma belgelerine bak.
Faturalandırma tutarları ABD senti cinsinden tam sayılardır; burada 100 = $1.00.
Planı ve Kullanımı Görüntüle#
GET /api/billing/usage-summaryPython SDK: client.billing.usage_summary()
plan (kimlik, durum, faturalandırma döngüsü, dönem sonu), metrics (depolama sınırı ve kullanım), trainingCredit,
features, creditsCents ve koltuk sayılarını döndürür.
İşlemleri Görüntüle#
GET /api/billing/transactionsPython SDK: client.billing.transactions()
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
from | string | En erken işlem zaman damgası (ISO 8601) |
to | string | En geç işlem zaman damgası (ISO 8601) |
Her işlem id, type (örneğin purchase, training, monthly_grant veya refund), amountCents,
balanceAfter, createdAt, isteğe bağlı bir receiptUrl ve eğitim ücretleri için model bağlamı içerir. Dahili faturalandırma ayrıntıları asla döndürülmez.
API'yi Keşfet#
Topluluk tarafından paylaşılan herkese açık projeleri ve veri kümelerini ara. Keşfet belgelerine bak.
Herkese Açık İçerikte Ara#
GET /api/explore/searchPython SDK: client.explore.search()
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
q | string | Arama terimi (en fazla 200 karakter) |
type | string | all (varsayılan), projects veya datasets |
sort | string | newest (varsayılan), oldest, stars, name-asc, name-desc, count-desc, count-asc |
offset | int | Atlanacak sonuçlar (varsayılan: 0) |
limit | int | Kaynak türü başına maksimum sonuç (varsayılan: 20, maksimum: 100) |
task | string | Virgülle ayrılmış görev filtreleri: detect, segment, semantic, depth, classify, pose, obb |
author | string | Sahip kullanıcı adı filtresi |
starred | boolean | Yalnızca kimliği doğrulanmış çağrıyı yapan tarafından yıldızlanan içerikleri döndürür; API anahtarı gerekir |
Yanıt: projects, datasets ve hasMore.
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&task=detect&sort=stars&limit=20"Python SDK#
ultralytics-platform, OpenAPI sözleşmesinden oluşturulmuş, her uç nokta için bir yönteme (client.datasets.list, client.models.predict,
client.exports.create, ...) sahip, tür bilgili bir Python istemcisidir. Her yöntem yol parametrelerini konumsal olarak, diğer girdileri anahtar sözcük bağımsız değişkenleri olarak
ve istek başına isteğe bağlı timeout ile extra_headers değerlerini kabul eder.
pip install "ultralytics-platform>=0.1.45" # Python 3.11+from ultralytics_platform import Platform
with Platform() as client: # reads ULTRALYTICS_API_KEY or the key saved by yolo login
dataset = client.datasets.retrieve("acme-vision", "warehouse")
images = client.datasets.images("acme-vision", "warehouse", limit=10)
export = client.exports.create("acme-vision", "inspection", "v3", format="onnx")AsyncPlatform, async/await kodu için aynı kaynak ağacını sunar; başarısız yanıtlar status_code, body ve ayrıştırılmış json ile birlikte APIError hatasını yükseltir ve bağlantı hataları APIConnectionError hatasını yükseltir. Tam README için
SDK deposuna bak.
Python Entegrasyonu#
Eğitim ve çıkarım iş akışları için, kimlik doğrulama, yüklemeler ve gerçek zamanlı metrik akışını otomatik olarak yöneten Ultralytics Python paketini kullan. Python 3.11+ üzerinde pip install ultralytics, ultralytics-platform SDK'sını da kurar. model.train(project=...), Platform'u hedeflediğinde, eğitim geri çağrıları (callbacks) olayları SDK'nın client.training.metrics() üzerinden aktırır ve OpenAPI belgesindeki POST /api/webhooks/training/metrics ve POST /api/webhooks/models/upload işlemleri olan client.models.upload_checkpoint() aracılığıyla kontrol noktası yükleme URL'leri ister, dolayısıyla senin kendin çağırman gereken hiçbir şey yoktur.
Kurulum ve Ayarlar#
Platform entegrasyonu Python>=3.11 ve ultralytics>=8.4.120 gerektirir:
pip install "ultralytics>=8.4.120"Kurulumu doğrula:
yolo checkKimlik Doğrulama#
yolo login YOUR_API_KEYPlatform Veri Kümelerini Kullanma#
Veri kümelerine ul:// URI'leriyle başvur:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/datasets/your-dataset",
epochs=100,
imgsz=640,
)URI Biçimi:
| Şablon | Açıklama |
|---|---|
ul://username/datasets/slug | Veri kümesi |
ul://username/project-name | Proje |
ul://username/project/model-name | Belirli model |
ul://ultralytics/yolo26/yolo26n | Resmî model |
Platforma Gönderme#
Sonuçları bir Platform projesine gönder:
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",
)Senkronize edilenler:
- Eğitim metrikleri (gerçek zamanlı)
- Son model ağırlıkları
- Doğrulama grafikleri
- Konsol çıktısı
- Sistem metrikleri
- Eğitim argümanları ve ana bilgisayar ortamı (anahat adı, işletim sistemi, Python, donanım, git işleme, komut satırı)
API Örnekleri#
Platformdan model yükleme:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")Çıkarım çalıştırma:
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 probabilitiesModeli dışa aktarma:
# Export to ONNX
model.export(format="onnx", imgsz=640, quantize=16)
# Export to TensorRT
model.export(format="engine", imgsz=640, quantize=16)
# Export to CoreML
model.export(format="coreml", imgsz=640) # use imgsz=224 for classificationDoğrulama:
metrics = model.val(data="ul://username/datasets/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")SSS#
Platform URL'sinde görünen sahip ve ad bölümlerinin aynısını kullan.
https://platform.ultralytics.com/acme-vision/inspection/v3konumundaki bir modelGET /api/models/acme-vision/inspection/v3olur. Veritabanı kimlikleri yanıtlarında (idolarak) döndürülmeye devam eder ve bazı rotalar bunları doğrudan alır — görüntü rotaları birimageId, yüklemeler birassetIdvePOST /api/training/startbirmodelIdalır.Koleksiyona bağlıdır. Çoğu liste uç noktası
limitkabul eder:curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://platform.ultralytics.com/api/datasets/acme-vision?limit=50"Veri kümesi görüntüleri, kümeleme ve Keşfet araması
limitile birlikteoffsetkullanır vehasMoredeğerini bildirir:curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&limit=20&sort=stars"Çok büyük görüntü kümeleri,
nextCursorolarak döndürülen imleçle en iyi şekilde taranır:curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://platform.ultralytics.com/api/datasets/acme-vision/warehouse/images?limit=1000&includeTotal=false&cursor=LAST_IMAGE_ID"Çöp Kutusu
pagedeğerini kullanır ve dağıtım günlüklerinextPageTokenolarak döndürülen opakpageTokendeğerini kullanır.Evet. Bu sayfadaki her işlem basit bir HTTPS isteğidir ve eksiksiz sözleşme, herhangi bir dildeki bir istemci türeticisine besleyebileceğin platform.ultralytics.com/openapi.json adresinde OpenAPI 3.2 olarak yayımlanır.
ultralytics-platformpaketi tam olarak budur: sözleşmeden oluşturulmuş tür bilgili bir istemci;ultralyticspaketi ise eğitim ve çıkarımın üzerine gerçek zamanlı metrik akışı ile otomatik model yüklemeleri ekler. Faturalandırma ödeme sayfası ve ekip yönetimi gibi yalnızca tarayıcı oturumlarında kullanılabilen hesap akışları Platform kullanıcı arayüzünde kalır.Doğru süre kadar beklemek için
429yanıtındakiRetry-Afterüst bilgisini kullan:import time import requests def api_request_with_retry(url, headers, max_retries=3): for attempt in range(max_retries): response = requests.get(url, headers=headers) if response.status_code != 429: return response wait = int(response.headers.get("Retry-After", 2**attempt)) time.sleep(wait) raise RuntimeError("Rate limit exceeded")404, kaynağın hiç var olmadığı veya anahtarın tarafından görünür olmadığı anlamına gelir.403, kaynağın bulunduğu ancak işlemin anahtarının sahip olduğundan daha fazla erişim gerektirdiği anlamına gelir — veri kümesini değiştirmek için düzenleyici erişimi, dağıtımı silmek için sahip erişimi, depolama bağlantısını kesmek için yönetici erişimi veya dışa aktarma ve dağıtımlar için daha yüksek bir plan ya da kota.Herkese açık veri kümelerini, projeleri ve modelleri; bunların görüntüleri, imzalı görüntü URL'leri, sınıf istatistikleri, gömme durumu, kümeleme düzeni ve dışa aktarma listesi dahil olmak üzere okuma; herkese açık bir modelde eğitim ilerlemesini kontrol etme; herkese açık bir modelin dosyalarını indirme; herkese açık bir modelde çıkarım çalıştırma; herkese açık bir kullanıcı profilini arama; tek bir herkese açık modele göre filtrelenmiş dağıtımları listeleme ve Keşfet'te arama.
GET /api/training/gpu-availability, yönetilen kapasite istemediğin sürece tamamen herkese açıktır. Diğer her işlem için anahtar gerekir ve herkese açık bir uç noktada anahtar sağlamak özel kaynaklarını da gösterir.