REST API Referansı#
Ultralytics Platform, veri setlerine, görüntülere, projelere, modellere, eğitime, dışa aktarmalara 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ından client.<resource>.<method>(...) çağrısını listeler.
Bu sayfa API'nin rehberli bir turudur. Oluşturulan, her zaman güncel referans platform.ultralytics.com/api/docs adresinde bulunur ve bunu destekleyen makine tarafından okunabilir OpenAPI 3.2 belgesi platform.ultralytics.com/openapi.json adresinde yayınlanır. İkisi de doğrudan sunucu tarafı sözleşmesinden oluşturulmuştur, bu nedenle bu sayfa ile şema çeliştiğinde bunlar yetkilidir.
API Genel Bakış#
API, çekirdek Platform kaynakları etrafında organize edilmiş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 |
|---|---|---|
| Datasets | Etiketli görüntü koleksiyonları | CRUD, veri alma, sürümler, sınıflar, bölmeler, klonlama |
| Images | Bireysel görüntüler ve etiketler | Okuma, etiketleme, bölme taşıma, silme, otomatik etiketleme |
| Projects | Model çalışma alanları | CRUD, klonlama |
| Modeller | Eğitilmiş kontrol noktaları | CRUD, tahmin, indirme, klonlama, eğitim durumu |
| Training | Bulut GPU eğitim işleri | GPU kullanılabilirliği, başlatma, ilerleme, iptal etme |
| Exports | Format dönüştürme işleri | Oluşturma, listeleme, durum, iptal etme |
| Deployments | Özel çıkarım uç noktaları | Oluşturma, başlatma/durdurma/değiştirme, tahmin, metrikler, loglar |
| Trash | Geçici olarak silinen kaynaklar | Listeleme, geri yükleme, kalıcı olarak silme |
| Storage | Bulut depolama entegrasyonları | Bağlanma, keşfetme, göz atma, bağlantıyı kesme |
| Account | Plan, krediler, depolama, profil | Hesap özeti, API anahtarları, depolama kullanımı, kullanıcı arama |
| Billing | Plan kullanımı ve defter | Kullanım özeti, işlemler |
| Explore | Genel içerik arama | Projeleri ve veri setlerini arama |
Kimlik Doğrulama#
Çoğu uç nokta bir API anahtarı gerektirir. Genel içeriği açığa çıkaran uç noktalar — herkese açık bir veri setini, projeyi veya modeli okumak, genel veri seti görüntülerini listelemek, genel bir model üzerinde çıkarım çalıştırmak veya Explore araması yapmak — ayrıca anonim istekleri kabul eder ve bir anahtar sağlandığında basitçe daha fazlasını döndürür.
Bir API Anahtarı Al#
Settings>API Keysbölümüne gitCreate Keyöğesine tıkla- Oluşturulan anahtarı kopyala
Ayrıntılı talimatlar için API Keys sayfasına bak.
Yetkilendirme Başlığı#
API anahtarını bir bearer token olarak ekle:
Authorization: Bearer YOUR_API_KEYAPI anahtarları, ul_ harf dizisini takip eden 40 onaltılık karakterden oluşur, toplamda 43 karakterdir (örneğin ul_a1b2c3d4e5f6789012345678901234567890abcd). Eksik başlığa, hatalı biçimlendirilmiş bir anahtara veya iptal edilmiş bir anahtara sahip istekler 401 döndürür. Anahtarını gizli tut -- asla sürüm kontrolüne taahhüt etme 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ı#
Kaynaklar veritabanı ID'leri ile değil, Platform URL'lerinde görünen aynı insan tarafından okunabilir adlarla adreslenir:
| Kaynak | Yol | Örnek |
|---|---|---|
| Veri Seti | /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örsel | /api/images/{imageId} | /api/images/65f1c0a2b3d4e5f601234567 |
{owner}kişisel bir kullanıcı adı veya takım çalışma alanı tanıtıcısıdır: 4-32 karakter, segmentler arasında tek tire içeren küçük harfli alfasayısal.{dataset},{project},{model}ve{deployment}, 128 karaktere kadar aynı küçük harfli tireli deseni takip eder.{imageId}ve{exportId}, API tarafından döndürülen 24 karakterlik onaltılık ID'lerdir.- Bir kaynağı
PATCHaracılığıyla yeniden adlandırmak, görüntülenennamedeğerini ve URL adını birlikte değiştirir ve yanıt, takip etmeye devam edebilmen için güncel URL adını döndürür.
Bir owner sorgu parametresi yoktur. Çalışma alanı kapsamlı yollar sahibi yolda taşır ve hesap kapsamlı uç noktalar (/api/account/summary, /api/api-keys, /api/storage, /api/billing/*, /api/trash, /api/integrations/buckets) API anahtarını oluşturan çalışma alanı üzerinde çalışır. Bir takım çalışma alanı üzerinde işlem yapmak için, o çalışma alanında oluşturulmuş bir API anahtarı kullan.
Hız 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 kotanı tüketmez.
| Kategori | Sınır | Uygulanan |
|---|---|---|
| Varsayılan | 100 istek/dk | Aşağıda listelenmeyen her rota |
| Eğitim | 10 istek/dk | POST /api/training/start |
| Yükleme | 10 istek/dk | İmzalı yükleme URL'leri, yükleme tamamlama ve veri seti içe aktarma |
| Tahmin | 20 istek/dk | Platform API rotaları aracılığıyla model ve dağıtım çıkarımı |
| Dışa Aktar | 20 istek/dk | Model dışa aktarma rotaları ve veri seti dışa aktarma/sürüm rotaları |
| İndirme | 30 istek/dk | Model dosyası indirmeleri |
| Değişiklik (Mutation) | 10 istek/dk | API anahtarlarını listeleme, bulut depolamayı bağlama veya keşfetme ve dağıtım PATCH eylemleri |
| Yükleme/Hydrate | 20 istek/dk | POST /api/datasets/{owner}/{dataset}/images (seçilen bir görüntü kümesini getirme) |
| Kümeleme (Clustering) | 10 istek/dk | GET /api/datasets/{owner}/{dataset}/images/clustering |
Faturalandırma ödemesi ve takım yönetimi gibi yalnızca tarayıcıya özel Platform rotaları, API anahtarı trafiği için geçerli olmayan kendi sınırlarına sahiptir.
Sınırlama uygulandığında, API hem başlıklar hem de bir JSON gövdesi ile birlikte 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)#
Dağıtımın kendi serviceUrl adresini doğrudan (örneğin https://predict-abc123.run.app/predict) çağırdığınızda özel uç noktalar Platform API anahtarı oran sınırlarına tabi değildir. İş hacmi daha sonra dağıtılan servis yapılandırmasına bağlıdır.
Bir 429 aldığında, yeniden denemeden önce Retry-After saniye (veya X-RateLimit-Reset olana kadar) bekle. Üstel artış (exponential backoff) uygulaması için oran sınırı SSS kısmına göz at.
Yanıt Formatı#
Başarılı Yanıtlar#
Yanıtlar kaynak özelinde alanlara sahip JSON nesneleridir. Genel bir zarf yoktur: liste uç noktaları sayıların yanında adlandırılmış bir koleksiyon döndürür ve mutasyonlar değiştirilen tanımlayıcıları 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), yani o çalışma alanı için depolama bölgesini içerir.
Hata Yanıtları#
Her hata yanıtı bir error mesajına sahip bir JSON nesnesidir:
{
"error": "Dataset not found"
}| HTTP Durumu | Anlamı |
|---|---|
200 | Başarılı |
201 | Oluşturuldu |
202 | Kabul edildi, çalışma asenkron olarak devam ediyor |
400 | Geçersiz yol, sorgu veya istek gövdesi |
401 | Eksik veya geçersiz kimlik doğrulama |
402 | Yetersiz kredi (eğitim) |
403 | Yetersiz izinler, plan veya kota |
404 | Kaynak bulunamadı |
409 | Mevcut durumla çakışma (yinelenen ad, devam eden iş) |
413 | Tahmin girdisi çok büyük |
422 | Model sınıfları veri setiyle eşleşmiyor (otomatik etiketleme) |
429 | İstek limiti aşıldı |
500 | Sunucu hatası |
502 | Üst akış sağlayıcı veya servis çağrısı başarısız oldu |
503 | Bağımlı servis geçici olarak kullanılamıyor |
Sayfalandırma#
Sayfalama stili koleksiyona bağlıdır:
| Stil | Uç Noktalar | Parametreler |
|---|---|---|
| Yalnızca sınır | Veri setleri, projeler, modeller, dışa aktarmalar, dağıtımlar listeleri | limit |
| Ofset ve sınır | Veri seti görüntüleri, görüntü kümeleme, Explore araması | offset, limit, ayrıca yanıtta hasMore |
| İmleç | Veri seti görüntüleri (büyük veri setleri) | cursor, includeTotal, ayrıca nextCursor |
| Sayfa numarası | Çöp Kutusu | page, limit, ayrıca totalPages |
| Okunamaz (opaque) sayfa belirteci | Dağıtım logları | pageToken, ayrıca nextPageToken |
Veri Kümeleri API'si#
YOLO modellerini eğitmek için etiketlenmiş görüntü veri setleri oluştur, göz at ve yönet. Datasets documentation sayfasına bakın.
Veri Kümelerini Listele#
GET /api/datasets/{owner}Python SDK: client.datasets.list(owner)
Sahibin genel veri setlerini ve anahtarınızın bu çalışma alanını görüntüleyebildiği durumlarda özel veri setlerini döndürür.
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
limit | tamsayı | Döndürülecek maksimum veri seti (varsayılan: 1000, maks: 1000) |
includeSamples | boolean | Örnek görüntü önizlemelerini dahil et (varsayılan: true) |
includeImageUrls | boolean | Tam boyutta ö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 Getir#
GET /api/datasets/{owner}/{dataset}Python SDK: client.datasets.retrieve(owner, dataset)
dataset anahtarı altında tam veri seti nesnesini, classNames, splits, versions, source ve kullanıcı tanımlı metadata nesnesi dahil olmak üzere döndürür.
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 | Tip | Gerekli | Açıklama |
|---|---|---|---|
dataset | dize | Evet | Platform URL'lerinde kullanılan veri seti adı (küçük harfli, tireli, maks 128 karakter) |
name | dize | Evet | Görünen ad (maks 100 karakter) |
description | dize | Hayır | Açıklama (maks 1000 karakter) |
task | dize | Hayır | Görev türü (varsayılan: detect) |
classNames | dizi | Hayır | İndeks sırasına göre sınıf adları (maks 25.000) |
format | dize | Hayır | Etiketleme formatı: yolo (varsayılan), coco, raw, ndjson |
visibility | dize | Hayır | public veya private |
tags | dizi | Hayır | Her biri 50 karakterlik en fazla 50 etiket |
license | dize | Hayır | Veri seti lisans tanımlayıcısı |
metadata | nesne | Hayır | Özel JSON meta verileri |
owner | dize | Hayır | Takım çalışma alanı tanıtıcısı; varsayılan olarak kişisel çalışma alanındır |
Bir veri seti oluştururken veya güncellerken geçerli task değerleri: detect, segment, semantic, depth, classify,
pose ve obb. Derinlik veri setlerinin sınıfı 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 verileri temizlemek için boş bir metadata nesnesi ({}) gönder. Meta veri anahtarları 128 karakterle ve serileştirilmiş nesne 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 istekler için döndürülen dataset değerini kullan.
Veri Kümesini Sil#
DELETE /api/datasets/{owner}/{dataset}Python SDK: client.datasets.delete(owner, dataset)
Veri setini 30 gün boyunca kurtarılabileceği trash alanına taşır.
Veri Kümesini Kopyala#
POST /api/datasets/{owner}/{dataset}/clonePython SDK: client.datasets.clone(owner, dataset)
Görüntüleri ve etiketleriyle birlikte erişilebilir bir veri setini kişisel çalışma alanına veya bir takım ç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 setleri, dosyaları kopyalanmadığı için 409 döndürür.
Veri Seti Dışa Aktarımını İndir#
GET /api/datasets/{owner}/{dataset}/exportPython SDK: client.datasets.export(owner, dataset)
İmzalı bir NDJSON indirme URL'si döndürür. Oluşturulduğundan beri hiçbir şey değişmediğinde önbelleğe alınmış dışa aktarımı yeniden kullanarak veri setinin mevcut durumunu dışa aktarmak için v değerini atla.
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
v | tamsayı | Kaydedilen sürüm numarası (1 tabanlı). Geçerli veri kümesi için atla. |
Yanıt:
{
"downloadUrl": "https://storage.googleapis.com/...&signature=...",
"cached": true
}Belirli bir sürümün istenmesi, cached yerine downloadUrl ve version döndürü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 aktarımı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ştirilmediğinde ve bunun yerine bu anlık görüntü döndürüldüğünde reused, true olur.
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, ek 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 ek açıklama sayıları, görüntü ve ek açıklama histogramları ile ısı haritaları döndürür. Büyük veri kümeleri örneklenir; bu durumda sampleSize, kaç görüntünün katkıda bulunduğunu 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 (ek açıklamaları hedef bir sınıfa yeniden ata, ardından kaynakları 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 (ek açıklamaları silinir ve kalan sınıf kimlikleri aşağı 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üncellenmiş classNames ve classColors ile neyin değiştiğine dair bir özet (mergedClassIds ve targetClassId ya da deletedClassIds ve deletedAnnotations) döndürür.
Bir birleştirme veya silme işleminden sonra kalan kimlikler kaydığı için bu işlemler eşpotansiyel değildir. Başka bir sınıf işlemi gerçekleştirmeden önce geçerli sınıf indekslerini 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, ortaya çıkan splits sayıları ve modified (taşınan görüntü sayısı).
Veri Kümesi Gömülüleri (Embeddings)#
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 analizi kuyruğa alır ve jobId içeren bir 202 döndürür. DELETE, etkin işi iptal eder ve iptal edilen iş kimliğini ya da null döndürür.
Görüntü Kümeleme#
GET /api/datasets/{owner}/{dataset}/images/clusteringPython SDK: client.datasets.clustering(owner, dataset)
Tamamlanan bir analizden UMAP 2D yerleşimini döndürür; offset ve limit (varsayılan ve en fazla 50.000) ile sayfalandırılmıştır. Her girdi id, umapX, umapY, split, classIds, width, height, bytes, labelCount ve missing içerir.
Veri Kümesinde 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 | Tip | Açıklama |
|---|---|---|
limit | tamsayı | Döndürülecek maksimum görüntü sayısı (varsayılan: 50, maks: 5000) |
offset | tamsayı | Atlanacak görüntüler (varsayılan: 0) |
cursor | dize | İmleç sayfalaması için önceki sayfanın son görüntü kimliği |
includeTotal | boolean | Toplam eşleşen sayısını dahil et (varsayılan: true) |
split | dize | Bölüme (split) göre filtrele: train, val, test |
hasLabel | boolean | Ek açıklama durumuna göre filtrele |
hasError | boolean | İşleme hatası durumuna göre filtrele |
classIds | dize | Virgülle ayrılmış sınıf kimlikleri; bunlardan herhangi birini içeren görüntüleri döndürür |
search | dize | Dosya adı ve özel meta veriler üzerinde alt dize eşleşmesi (maks 200 karakter) |
sort | dize | 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 (thumbnail) URL'lerini dahil et (varsayılan: true) |
includeImageUrls | boolean | İmzalı tam boyutlu görüntü URL'lerini dahil et (varsayılan: false) |
includeLabels | boolean | Üst sınırı belirlenmiş önizleme ek 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örselleri Getir#
POST /api/datasets/{owner}/{dataset}/imagesPython SDK: client.datasets.selected_images(owner, dataset, image_ids=...)
En fazla 1.000 sağlanan görüntü kimliği için aynı görüntü şeklini döndürür ve liste işlemiyle aynı filtre ile 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 sağlayın:
| Alan | Tip | Açıklama |
|---|---|---|
sessionId | dize | POST /api/upload/signed-url adresinden, halihazırda tamamlanmış yükleme oturumu |
sourceUrl | dize | Bir ZIP, TAR, TAR.GZ, TGZ veya NDJSON dosyasının genel HTTP ya da HTTPS URL'si (maks 4096 karakter) |
reference | nesne | Bağlı bir kaynak: bulut depolama (provider: "cloud", integrationId, target, prefix) veya Şirket İçi (provider: "local", keyId, root, prefix) |
targetSplit | dize | train, val veya test; arşivin bölünmüş yapısını geçersiz kılar |
conflictPolicy | dize | 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 indeksine, mevcut ya da yeni bir sınıf adın veya atlamak için null değerine eşler |
imageMetadata | nesne | Her görüntünün arşive göreli yolu veya NDJSON file değeri tarafından anahtarlanmış özel meta veriler |
Yükleme oturumları, POST /api/upload/signed-url'e iletilen assetId tarafından bir veri kümesine bağlanır ve alma işlemi, farklı bir veri kümesine ait bir 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 bir alımda 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ş yol ile eşleşmelidir. NDJSON içe aktarımları için her kayıt, eşleşen bir imageMetadata girdisine göre önceliğe sahip olan kendi metadata nesnesini taşıyabilir. Arşiv yolları 1.024 karakterle, üst düzey meta veri anahtarları 128 karakterle ve her meta veri nesnesinin yanı sıra tüm imageMetadata eşlemesi 500.000 serileştirilmiş karakterle sınırlıdır.
İlk veri alımı arşivden otomatik olarak sınıflar oluşturur. Daha sonraki alımlarda, classMapping dışındaki arşiv sınıfları, mevcut veri kümesi sınıflarına karşı büyük/küçük harfe duyarsız bir eşleşmeye geri döner. Etiketler yalnızca null öğesine açıkça eşlenen veya eşleşen mevcut bir sınıfı olmayan 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 birlikte tek bir görsel yükle
Aynı kod bir görsel grubunu da işler: ZIP dosyasına daha fazla dosya ve imageMetadata içine 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#
Veri kümesi görüntülerini 24 karakterlik görüntü kimliklerine göre inceleyin, not edin, taşıyın ve silin. Bkz. Ek açıklama belgeleri.
Görüntü Al#
GET /api/images/{imageId}Python SDK: client.images.retrieve(image_id)
metadata (özel, kullanıcı tanımlı), properties (dosya adı, hash, boyutlar, bölme, sayımlar, zaman damgaları), labels ve veri kümesinin classNames değerini döndürür.
Görüntüyü Güncelle#
PATCH /api/images/{imageId}Python SDK: client.images.update(image_id, body=...)
Ek açıklamaları veya özel meta verileri değiştirir — her ikisini değil, iki şekilden birini gönderin.
Gövde (ek 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. Bölütleme etiketleri segments, çokgen köşelerinin düzleştirilmiş bir listesi [x1, y1, x2, y2, ...] kullanır. Poz etiketleri, görünürlüğün geleneksel olarak 0, 1 veya 2 kullandığı çiftler [x1, y1, x2, y2, ...] veya üçlüler [x1, y1, v1, x2, y2, v2, ...] şeklinde tutarlı bir düz biçimde keypoints kullanı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 ek açıklama kabul eder.
Görüntüyü Sil#
DELETE /api/images/{imageId}Python SDK: client.images.delete(image_id)
Tek bir görüntüyü ve ek açıklamalarını kalıcı olarak siler.
Görüntüyü Otomatik Olarak Etiketle#
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 ek açıklamaları döndürür. Bunları kaydetmez; sonuçlardan memnun kaldığınızda bunları PATCH /api/images/{imageId} ile geri yazın.
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
modelId | dize | Evet | Tam nitelikli model URI'si, ul://{owner}/{project}/{model} |
confidence | kayan nokta | Hayır | Güven eşiği, 0,01 – 1,0 (varsayılan: 0,25) |
iou | kayan nokta | Hayır | Maksimum olmayan bastırma için IoU eşiği, 0,0 – 0,95 (varsayılan: 0,7) |
Yanıt: success, predictions (ek açıklama nesneleri), modelUsed ve inferenceTime. Sınıfları veri kümesiyle eşleşmeyen bir model 422 döndürür.
Toplu Görüntü Taşıma#
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ı, sepet genelinde skip, keep_both veya replace arasından bir conflictPolicy seçeneği belirleyene kadar 409 döndürür. Yanıt modifiedCount, skippedCount ve targetSplit bildirir.
Toplu Görüntü Silme#
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 döndürür.
İmzalı Görüntü URL'lerini Getir#
POST /api/images/urlsPython SDK: client.images.urls(image_ids=...)
Tek bir veri kümesinden en fazla 100 görüntü kimliği için geçici imzalı URL'ler döndürür.
{
"imageIds": ["65f1c0a2b3d4e5f601234567"]
}Yanıt: İkisi de görüntü kimliğine göre anahtarlanmış urls ve thumbnails.
Projeler API'si#
Modellerinizi projeler halinde düzenleyin. Her model bir projeye aittir. Bkz. Projeler belgeleri.
Projeleri Listele#
GET /api/projects/{owner}Python SDK: client.projects.list(owner)
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
limit | tamsayı | Döndürülecek maksimum proje sayısı (varsayılan: 20, maks: 500) |
Projeyi Getir#
GET /api/projects/{owner}/{project}Python SDK: client.projects.retrieve(owner, project)
project nesnesini, model başına özetlerin (durum, metrikler, dönemler, ağırlıklar, eğitim argümanları) models dizisini ve isOwner değerini döndürür.
Proje Oluştur#
POST /api/projectsPython SDK: client.projects.create(project=..., name=...)
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
project | dize | Evet | Platform URL'lerinde kullanılan proje adı |
name | dize | Evet | Görünen ad (maks 100 karakter) |
description | dize | Hayır | Açıklama (maks 1000 karakter) |
visibility | dize | Hayır | public veya private |
tags | dizi | Hayır | En fazla 50 etiket |
license | dize | Hayır | Proje lisans tanımlayıcısı |
metadata | nesne | Hayır | Özel JSON meta verileri |
owner | dize | Hayır | Takım çalışma alanı tanıtıcısı; varsayılan olarak kişisel çalışma alanındı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önderin. 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şıyarak cascadedModels döndürür.
Projeyi Kopyala#
POST /api/projects/{owner}/{project}/clonePython SDK: client.projects.clone(owner, project)
Erişilebilir bir projeyi ve tamamlanan modellerini klonlar. İsteğe bağlı gövde project, name, description, visibility, license ve bir hedef owner kabul eder.
Modeller API'si#
Eğitilmiş YOLO modellerini yönetin; metrikleri görüntüleyin, ağırlıkları indirin, çıkarım çalıştırın ve eğitimi izleyin. Bkz. Modeller belgeleri.
Bir Projedeki Modelleri Listele#
GET /api/models/{owner}/{project}Python SDK: client.models.list(owner, project)
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
limit | tamsayı | Döndürülecek maksimum model sayısı (varsayılan: 20, maks: 100) |
Modeli Getir#
GET /api/models/{owner}/{project}/{model}Python SDK: client.models.retrieve(owner, project, model)
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
analysis | tamsayı | Model yerine görüntü başına doğrulama analizi 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ı — artı isOwner içerir.
Model Oluştur#
POST /api/modelsPython SDK: client.models.create(body=...)
Ağırlık ekleyebileceğiniz veya eğitebileceğiniz eğitilmemiş bir model kaydı oluşturur.
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
project | dize | Evet | Hedef proje adı |
owner | dize | Hayır | Çalışma alanı kolu; varsayılan olarak kişisel çalışma alanınızdır |
model | dize | Hayır | Platform URL'lerinde kullanılan model adı; atlandığında oluşturulur |
name | dize | Hayır | Görünen ad (yalnızca model ile birlikte kabul edilir) |
description | dize | Hayır | Açıklama (maks 1000 karakter) |
task | dize | 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 argümanları |
metrics | nesne | Hayır | mAP50, mAP50-95, precision, recall gibi metrikler |
epochs | sayı | Hayır | Halihazırda eğitilmiş bir model için dönem sayısı |
version | dize | Hayır | Sürüm etiketi (maks 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 değerini assetId olarak isteyin, PUT dosyayı döndürülen URL'ye gönderin, ardından döndürülen sessionId ile POST /api/upload/complete öğesini çağırın.
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.
{
"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 Kopyala#
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 | Tip | Gerekli | Açıklama |
|---|---|---|---|
project | dize | Evet | Hedef proje adı |
owner | dize | Hayır | Hedef çalışma alanı; varsayılan olarak kişisel çalışma alanındır |
model | dize | Hayır | Hedef model adı |
name | dize | Hayır | Hedef görünen ad |
description | dize | 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=...)
Genel modeller kimlik doğrulaması olmadan tahmin edilebilir. Özel ve paylaşılan modeller, üst projeye erişimi olan bir API anahtarı gerektirir.
Çok Parçalı Form:
| Parametre | Tip | Varsayılan | Aralık | Açıklama |
|---|---|---|---|---|
file | dosya | - | - | Resim veya video dosyası (source ayarlanmadığı sürece gereklidir) |
conf | kayan nokta | 0.25 | 0.01 – 1.0 | Minimum güven eşiği |
iou | kayan nokta | 0.7 | 0.0 – 0.95 | NMS IoU eşiği |
imgsz | tamsayı | 640 | 32 – 1280 | Piksel cinsinden giriş görüntüsü boyutu |
normalize | bool | false | - | Sınırlayıcı kutu koordinatlarını 0 – 1 olarak döndür |
decimals | tamsayı | 5 | 0 – 10 | Koordinat değerleri için ondalık hassasiyeti |
bits | tamsayı | 8 | 8, 12, 16 | Derinlik haritası nicelemesi, yalnızca derinlik modelleri |
source | dize | - | - | Resim URL'si veya base64 dizesi (file seçeneğinin alternatifi) |
file veya source değerlerinden birini sağlayın. Derinlik modelleri, derinlik haritasının PNG nicelemesini seçmek için bits (8, 12 veya 16) değerini de kabul eder. Servisin girdi 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 bir girdi shape, speed, results ve yoğun tahmin görevleri için bir semantic_mask veya depth PNG yükü taşır (varsayılan 8 bitlik harita için 255 ve bits değeri 12 veya 16 olduğunda 65535 böleni ile derinlik değerleri pixel × max / divisor olur). metadata nesnesi resim sayısını, işlev zamanlamalarını, görevi ve servis sürümlerini bildirir. Dahili model yolları asla 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, hesaplama detayları, eğitim argümanları, epoch metrikleri ve güvenli hata detayları içeren job veya model hiç eğitilmemişse null döndürür. Genel projelerdeki modeller kimlik doğrulaması olmadan okunabilir.
Eğitimi İptal Et#
DELETE /api/models/{owner}/{project}/{model}/trainingPython SDK: client.models.delete_training(owner, project, model)
Çalışan hesaplama örneğini sonlandırır ve işi iptal edildi olarak işaretler. Eğitim artık aktif değilse 409 döndürür.
Eğitim API'si#
Bulut GPU'larında YOLO eğitimini başlat ve ilerlemeyi gerçek zamanlı olarak izle. 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 Uygunluğunu Getir#
GET /api/training/gpu-availabilityPython SDK: client.training.gpu_availability()
GPU ID'sine göre anahtarlanmış mevcut stok durumunu döndürür. Genel ve kimlik doğrulaması gerektirmez; bir API anahtarı gerektiren yönetilen eğitim kapasitesini dahil etmek için managed=true değerini iletin.
Eğitimi Başlat#
POST /api/training/startPython SDK: client.training.start(model_id=..., train_args=...)
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
modelId | dize | Evet | Eğitilecek modelin ID'si |
trainArgs | nesne | Evet | YOLO eğitim argümanları; model, data ve epochs gereklidir |
gpuType | dize | Hayır | Kullanılacak bulut GPU (varsayılan: rtx-4090) |
captureDatasetVersion | boolean | Hayır | Bu çalıştırma için değiştirilemez bir veri seti sürümü kaydet (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
}
}Eğitim, kredi bakiye çok düşük olduğunda 402 ve istenen GPU için uygun kapasite olmadığında 503 döndürür.
rtx-2000-ada ile b300 arasında, rtx-4090, l40s, a100-80gb-pcie, a100-80gb-sxm, rtx-pro-6000, h100-sxm, h200-sxm ve b200 dahil olmak üzere 26 GPU türü mevcuttur. Fiyatlandırma ile tam liste için bkz. Bulut Eğitimi.
Dışa Aktarma API'si#
Modelleri uçta dağıtım için ONNX, TensorRT, CoreML ve LiteRT gibi optimize edilmiş formatlara dönüştür. Bkz. Dağıtım belgeleri.
Dışa Aktarımları Listele#
GET /api/models/{owner}/{project}/{model}/exportsPython SDK: client.exports.list(owner, project, model)
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
status | dize | queued, starting, running, completed, failed veya cancelled ile filtrele |
limit | tamsayı | Döndürülecek maksimum dışa aktarma sayısı (varsayılan: 20, maks: 100) |
Dışa Aktarma Oluştur#
POST /api/models/{owner}/{project}/{model}/exportsPython SDK: client.exports.create(owner, project, model, format=...)
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
format | dize | Evet | Hedef dışa aktarma formatı (aşağıdaki tabloya bakın) |
gpuType | dize | Koşullu | format, engine olduğunda gereklidir; desteklenen bir GPU veya Jetson hedefi kullan |
args | nesne | Hayır | Dışa aktarma seçenekleri: imgsz, quantize, dynamic, simplify, opset, conf, iou, batch, workspace, nms, end2end, 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 Formatlar:
Aşağıdaki paylaşılan dışa aktarma tablosundan format argümanını kullanın. PyTorch kaynak formatıdır ve bir API dışa aktarma hedefi değildir.
| Format | format Argümanı | Model | Meta veriler | Argümanlar |
|---|---|---|---|---|
| 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 |
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 nesnesi ile 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)
Aktif 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ım API'si#
Modelleri sağlık kontrolleri ve izleme ile ö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 | Tip | Açıklama |
|---|---|---|
status | dize | creating, deploying, ready, stopping, stopped veya failed |
model | dize | {project}/{model} ile filtrele, örneğin inspection/v3 |
limit | tamsayı | Döndürülecek maksimum dağıtım sayısı (varsayılan: 20, maks: 100) |
Anonim çağrıcılar tek bir genel modelle filtreleme yapmalıdır; tüm çalışma alanını listelemek kimlik doğrulaması gerektirir.
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 | Tip | Gerekli | Açıklama |
|---|---|---|---|
project | dize | Evet | Modeli içeren proje |
model | dize | Evet | Dağıtılacak model |
deployment | dize | Evet | Platform URL'lerinde kullanılan dağıtım adı |
name | dize | Evet | Görünen ad |
region | dize | 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 limitlerinizden Platform tarafından yönetilir ve oluşturma isteği bir kaynak yapılandırması kabul etmez. Mevcut 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 arayüzü mevcut tüm 42 bölge için gecikme tahminlerini gösterir.
Dağıtımı Getir#
GET /api/deployments/{owner}/{deployment}Python SDK: client.deployments.retrieve(owner, deployment)
status, statusMessage, region, serviceUrl ve resources ile birlikte deployment nesnesini döndürür.
Bir 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 korurken yeni bir revizyon yayınlar; dağıtım başarısız olursa mevcut revizyon yayında kalır. Yedek model, anahtarınızın erişebileceği ağırlıklara sahip tamamlanmış bir model olmalıdır. Tamamlanan işlemler status ready veya stopped ile 200 döndürür; hâlâ yayınlanmakta olan işlemler ise deploying veya stopping ile 202 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 atar ve ısıtır, healthy, latencyMs ve yukarı yönlü status kodunu döndürür.
Bir 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ç noktadan geçirir. İstek ve yanıt sözleşmeleri model çıkarımı ile eşleşir.
Çok Parçalı Form:
| Parametre | Tip | Varsayılan | Aralık | Açıklama |
|---|---|---|---|---|
file | dosya | - | - | Resim veya video dosyası (source ayarlanmadığı sürece gereklidir) |
conf | kayan nokta | 0.25 | 0.01 – 1.0 | Minimum güven eşiği |
iou | kayan nokta | 0.7 | 0.0 – 0.95 | NMS IoU eşiği |
imgsz | tamsayı | 640 | 32 – 1280 | Piksel cinsinden giriş görüntüsü boyutu |
normalize | bool | false | - | Sınırlayıcı kutu koordinatlarını 0 – 1 olarak döndür |
decimals | tamsayı | 5 | 0 – 10 | Koordinat değerleri için ondalık hassasiyeti |
bits | tamsayı | 8 | 8, 12, 16 | Derinlik haritası nicelemesi, yalnızca derinlik modelleri |
source | dize | - | - | Resim URL'si veya base64 dizesi (file seçeneğinin alternatifi) |
Metrikleri Getir#
GET /api/deployments/{owner}/{deployment}/metricsPython SDK: client.deployments.metrics(owner, deployment)
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
range | dize | 1h, 6h, 24h (varsayılan), 7d veya 30d |
sparkline | boolean | Tam seriler yerine kompakt kontrol paneli özetini döndür (varsayılan: false) |
Tam yanıt summary (istek toplamları, hata oranı, ortalama ve p50/p95/p99 gecikme) ve timeSeries (istekler, hatalar, gecikme, CPU, bellek, örnek sayısı) içerir. Çizgi grafik yanıtı requests24h, totalRequests, errorRate ve avgLatencyMs döndürür.
Günlükleri Getir#
GET /api/deployments/{owner}/{deployment}/logsPython SDK: client.deployments.logs(owner, deployment)
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
severity | dize | Virgülle ayrılmış: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY |
limit | tamsayı | Döndürülecek girdiler (varsayılan: 50, maks: 200) |
pageToken | dize | Önceki bir yanıttan sayfalama belirteci |
Çöp Kutusu (Trash) API#
Yumuşak silinmiş projeleri, veri setlerini ve modelleri görüntüle, geri yükle ve kalıcı olarak sil. Öğeler 30 gün sonra otomatik olarak temizlenir. Bkz. Çöp Kutusu belgeleri.
Çöp Kutusunu Listele#
GET /api/trashPython SDK: client.lifecycle.trash()
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
type | dize | all (varsayılan), project, dataset veya model |
page | tamsayı | Sayfa numarası (varsayılan: 1) |
limit | tamsayı | Sayfa başına öğe sayısı (varsayılan: 50, maks: 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ükle#
POST /api/trashPython SDK: client.lifecycle.restore(id=..., type=...)
{
"id": "65f1c0a2b3d4e5f601234567",
"type": "dataset"
}Bir projeyi geri yüklemek, onunla birlikte çöpe atılan ve restoredModels olarak bildirilen modelleri de geri yükler.
Kalıcı Olarak Sil#
DELETE /api/trashPython SDK: client.lifecycle.delete_trash(body=...)
Tek bir öğeyi sil:
{
"id": "65f1c0a2b3d4e5f601234567",
"type": "dataset"
}Veya tüm çöp kutusunu boşalt:
{
"all": true
}Yanıt deletedCount değerini, ayrıca ilgili yerlerde cascadedModels ve survivingDeployments değerlerini bildirir.
Kalıcı silme işlemi geri alınamaz. Kaynak ve ilgili tüm veriler kaldırılır.
Yükleme API'si#
İmzalı URL'leri kullanarak dosyaları doğrudan bulut depolama alanına yükleyin. Bir model yüklemesini tamamlamak ağırlıklarını ekler; bir veri seti arşivi yüklemesini tamamlamak ise oturumu kaydeder ve bunu daha sonra veri seti yükleme 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 | Tip | Gerekli | Açıklama |
|---|---|---|---|
assetType | dize | Evet | datasets, models, images veya videos |
assetId | dize | Evet | Hedef veri setinin veya modelin ID'si |
filename | dize | Evet | Orijinal dosya adı (maks 256 karakter) |
contentType | dize | Evet | MIME türü |
totalBytes | sayı | Evet | Bayt cinsinden dosya boyutu |
assetType, datasets olduğunda, filename .zip, .tar, .tar.gz, .tgz veya .ndjson ile bitmelidir. Yüklemeden önce serbest görüntüleri bir arşive paketleyin.
Yanıt:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.googleapis.com/...&signature=...",
"expiresAt": "2026-02-22T12:00:00Z"
}Beyan ettiğiniz aynı Content-Type değerini kullanarak, uploadUrl adresine bir PUT isteği ile dosyayı yükleyin.
Yüklemeyi Tamamla#
POST /api/upload/completePython SDK: client.upload.complete(session_id=...)
{
"sessionId": "session_abc123",
"checksum": "<optional sha-256 hex>"
}Yanıt: success ve size ile contentType içeren bir file nesnesi. Modeller için bu ağırlıkları ekler; veri seti arşivleri için ise işlemeye başlamak üzere hemen ardından ingest çağrısı yapın.
Depolama Entegrasyonları API'si#
Salt okunur Google Cloud Storage, Amazon S3 veya Azure Blob Storage hesaplarını bağlayın ve bunları veri seti kaynakları olarak inceleyin. 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, bunları kaydetmeden kova veya kapları 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"]}
Depolama Alanını Bağla#
POST /api/integrations/bucketsPython SDK: client.storage_integrations.create(body=...)
Keşifle aynı kimlik bilgisi biçimleri, ayrıca 1-50 kova veya kap adı içeren zorunlu bir targets dizisi. Depolanan entegrasyonla birlikte 201 döndürü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 | Tip | Gerekli | Açıklama |
|---|---|---|---|
target | dize | Evet | Kova veya kap adı |
prefix | dize | Hayır | Klasör öneki (maks 1024 karakter) |
cursor | dize | Hayır | Önceki bir sayfadan sağlayıcı sayfalama imleci |
entries (her kind bir 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 kayıtlı kimlik bilgilerini kaldırır. Bağlı veri setleri görünür kalmaya devam eder, ancak aynı depolama hesabı yeniden bağlanana kadar dosyaları kullanılamaz durumda kalır. Çalışma alanı yönetici erişimi gerektirir.
Veri Seti İçe Aktarma API'si#
Üçüncü taraf servislerden veri setlerini içe aktarın. Bkz. Roboflow entegrasyonu.
Bir Roboflow İçeri Aktarımını Önizle#
POST /api/integrations/roboflow/previewPython SDK: client.datasets.preview_roboflow(api_key=...)
Bir Roboflow API anahtarını bir içe aktarım planına çözer: çalışma alanı ayrıntıları, içe aktarılacak newDatasets, atlanan, desteklenmeyen ve çözümlenemeyen projelerin sayıları, bytesTotal ve storage alanınız. Roboflow API anahtarı gövdeden okunur ve kalıcı hale getirilmez.
{
"apiKey": "ROBOFLOW_API_KEY"
}Roboflow'dan İçe Aktar#
POST /api/integrations/roboflow/importPython SDK: client.datasets.import_roboflow(api_key=..., items=...)
Önizleme tarafından döndürülen öğeleri kullanarak, seçilen en fazla 500 Roboflow proje sürümü için veri alma (ingest) işlerini kuyruğa alır.
{
"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 aktarımlar depolama alanı gerektirir ve her veri kümesi planınızın içe aktarım başına boyut sınırına uymalıdır.
Hesap API'si#
Platform hesabını, anahtarları, depolamayı ve genel profilleri incele. Ayarlar belgelerine göz at.
Hesap Özeti#
GET /api/account/summaryPython SDK: client.account.summary()
Anahtarı oluşturan çalışma alanı için planı, kredi bakyiyesini 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ü bir anahtar zaten tek bir çalışma alanına kapsamlanmıştır.
API Anahtarlarını Listele#
GET /api/api-keysPython SDK: client.account.api_keys()
Anahtarın çalışma alanı için keys, keyId, name, keyPrefix ve createdAt ile birlikte döner. API anahtarıyla kimliği doğrulanan istekler yalnızca meta veri alır; tam anahtar değerleri, Platform arayüzündeki Ayarlar > API Anahtarları kısmında çalışma alanı sahibine gösterilir (anahtarların oluşturulduğu ve iptal edildiği yer de burasıdır).
Depolama Kullanımını Kontrol Et#
GET /api/storagePython SDK: client.account.storage()
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
details | boolean | En büyük on depolama tüketicisini 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"
}Genel Kullanıcı Profili Al#
GET /api/usersPython SDK: client.account.profile(username=...)
Sorgu Parametreleri:
| Parametre | Tip | Gerekli | Açıklama |
|---|---|---|---|
username | dize | Evet | Aranacak kullanıcı adı |
Genel user profilini followerCount ile ve kimliği doğrulanmış çağrıcılar için isFollowed ile birlikte 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üncellenen followerCount.
Faturalandırma API#
Plan kullanımını ve kredi defterini kontrol et. Faturalandırma belgelerine bak.
Faturalandırma tutarları ABD senti cinsinden tam sayılardır ve 100 = $1.00 şeklindedir.
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 | Tip | Açıklama |
|---|---|---|
from | dize | En erken işlem zaman damgası (ISO 8601) |
to | dize | En son işlem zaman damgası (ISO 8601) |
Her işlem şunları içerir: 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ı. Dahili faturalandırma ayrıntıları asla döndürülmez.
Keşfet (Explore) API'si#
Topluluk tarafından paylaşılan genel projeleri ve veri kümelerini ara. Keşfet belgelerine göz at.
Herkese Açık İçeriği Ara#
GET /api/explore/searchPython SDK: client.explore.search()
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
q | dize | Arama terimi (maks. 200 karakter) |
type | dize | all (varsayılan), projects veya datasets |
sort | dize | newest (varsayılan), oldest, stars, name-asc, name-desc, count-desc, count-asc |
offset | tamsayı | Atlanacak sonuçlar (varsayılan: 0) |
limit | tamsayı | Kaynak türü başına maksimum sonuç (varsayılan: 20, maks: 100) |
task | dize | Virgülle ayrılmış görev filtreleri: detect, segment, semantic, depth, classify, pose, obb |
author | dize | Sahip kullanıcı adı filtresi |
starred | boolean | Yalnızca kimliği doğrulanmış çağrıcı tarafından yıldızlanan içeriği döndür; API anahtarı gerektirir |
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ş, uç nokta başına bir yönteme (client.datasets.list, client.models.predict, client.exports.create, ...) sahip türü belirlenmiş bir Python istemcisidir. Her yöntem yol parametrelerini konumsal olarak, diğer girdileri anahtar kelime argümanları olarak ve isteğe bağlı istek başına timeout ile extra_headers değerlerini kabul eder.
pip install "ultralytics-platform>=0.1.5" # Python 3.11+from ultralytics_platform import Platform
with Platform() as client: # reads ULTRALYTICS_API_KEY
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 APIError değerini status_code, body ve ayrıştırılmış json ile birlikte tetikler; bağlantı hataları ise APIConnectionError hatasına neden olur. Eksiksiz README için SDK deposuna göz at.
Python Entegrasyonu#
Eğitim ve çıkarım iş akışları için kimlik doğrulamayı, yüklemeleri ve gerçek zamanlı metrik akışını otomatik olarak yöneten Ultralytics Python paketini kullan.
Kurulum & Ayarlar#
pip install "ultralytics>=8.4.120"Kurulumu doğrula:
yolo checkKimlik Doğrulama#
yolo login YOUR_API_KEYPlatform Veri Kümelerini Kullanma#
Veri setlerine ul:// URI'leriyle başvuru yap:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/datasets/your-dataset",
epochs=100,
imgsz=640,
)URI Formatı:
| Desen | Açıklama |
|---|---|
ul://username/datasets/slug | Veri Seti |
ul://username/project-name | Proje |
ul://username/project/model-name | Belirli model |
ul://ultralytics/yolo26/yolo26n | Resmi 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ı)
- Nihai model ağırlıkları
- Doğrulama grafikleri
- Konsol çıktısı
- Sistem metrikleri
API Örnekleri#
Platformdan bir model yükle:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")Çıkarım çalıştır:
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 aktar:
# 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 aynı sahip ve ad segmentlerini kullan.
https://platform.ultralytics.com/acme-vision/inspection/v3adresindeki bir modelGET /api/models/acme-vision/inspection/v3'dir. Veritabanı kimlikleri hala yanıtlarda döndürülür (idolarak) ve birkaç rota bunları doğrudan alır; görüntü rotaları birimageIdalır, yüklemeler birassetIdalır vePOST /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ı,
offsetilelimitkullanır vehasMorebildirir:curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&limit=20&sort=stars"Çok büyük görüntü setleri arasında en iyi şekilde
nextCursorolarak döndürülen imleçle gezinilir: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
pagekullanır ve dağıtım logları,nextPageTokenolarak döndürülen opakpageTokendeğerini kullanır.Evet. Bu sayfadaki her işlem düz bir HTTPS isteğidir ve eksiksiz sözleşme, herhangi bir dilde bir istemci oluşturucuya besleyebileceğin platform.ultralytics.com/openapi.json adresinde OpenAPI 3.2 olarak yayınlanır.
ultralytics-platformpaketi tam olarak budur: sözleşmeden oluşturulmuş türü belirlenmiş bir istemci;ultralyticspaketi ise eğitim ve çıkarımın yanı sıra gerçek zamanlı metrik akışı ve otomatik model yüklemeleri ekler. Faturalandırma ödemesi ve ekip yönetimi gibi yalnızca tarayıcı oturumuna ait hesap akışları Platform UI içinde kalır.Doğru süre boyunca beklemek için
429yanıtındakiRetry-Afterbaşlığını 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 mevcut olmadığını veya anahtarınız tarafından hiç görünmediğini ifade eder.403, kaynağın bulunduğunu ancak eylemin anahtarınızın sahip olduğundan daha fazla erişim gerektirdiğini belirtir — bir veri kümesini değiştirmek için düzenleyici erişimi, bir dağıtımı silmek için sahip erişimi, depolama bağlantısını kesmek için yönetici erişimi ya da dışarı aktarımlar ve dağıtımlar için daha yüksek bir plan veya kota.Genel veri kümelerini, projeleri ve modelleri okumak (görüntüleri, imzalı görüntü URL'leri, sınıf istatistikleri, gömme durumu, kümeleme düzeni ve dışarı aktarma listesi dahil); genel bir modeldeki eğitim ilerlemesini kontrol etmek; genel bir modelin dosyalarını indirmek; genel bir model üzerinde çıkarım çalıştırmak; genel bir kullanıcı profilini aratmak; tek bir genel modelle filtrelenmiş dağıtımları listelemek ve Keşfet'te arama yapmak.
GET /api/training/gpu-availability, yönetilmiş kapasite talep etmediğiniz sürece tamamen aşıktır (geneldir). Geri kalan her şey bir anahtar gerektirir ve genel bir uç noktada anahtar sağlamak özel kaynaklarınızı da açığa çıkarır.