REST API Referansı#
Ultralytics Platform, veri setlerine, modellere, eğitime ve dağıtımlara programatik erişim için kapsamlı bir REST API sağlar.

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsUltralytics Platform API docs adresinden tam interaktif API başvurusunu inceleyebilirsin.
API Genel Bakış#
API, temel platform kaynakları etrafında düzenlenmiştir:
graph LR
A[API Key]:::start --> B[Datasets]:::proc
A --> C[Projects]:::proc
A --> D[Models]:::proc
A --> E[Deployments]:::proc
B -->|train on| D
C -->|contains| D
D -->|deploy to| E
D -->|export| F[Exports]:::proc
B -->|auto-annotate| B
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff| Kaynak | Açıklama | Temel İşlemler |
|---|---|---|
| Datasets | Etiketli görüntü koleksiyonları | CRUD, görüntüler, etiketler, dışa aktarma, sürümler, klonlama |
| Projects | Eğitim çalışma alanları | CRUD, klonlama, simge |
| Modeller | Eğitilmiş kontrol noktaları | CRUD, tahmin, indirme, klonlama, dışa aktarma |
| Deployments | Özel çıkarım uç noktaları | CRUD, başlatma/durdurma, metrikler, günlükler, sağlık durumu |
| Exports | Format dönüştürme işleri | Oluşturma, durum, indirme |
| Training | Bulut GPU eğitim işleri | Başlatma, durum, iptal |
| Billing | Kredi ve kullanım | Bakiye, kullanım, işlemler |
| Teams | Çalışma alanı iş birliği | Çalışma alanları, üyeler, roller |
Kimlik Doğrulama#
Kaynak API'leri, veri kümesi sınıfı ve bölme yönetimi, kopyalama, eğitim, dışa aktarma, dağıtımlar ve desteklenen hesap okumaları dahil olmak üzere API anahtarı kimlik doğrulaması kullanır. Halka açık uç noktalar, belirtilen durumlarda anonim erişimi destekler. Yalnızca tarayıcıya özel uygulama yolları hariç tutulmuştur.
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ı tüm isteklerine dahil et:
Authorization: Bearer YOUR_API_KEYAPI anahtarları, ardından 40 heksadesimal karakter gelen ul_ formatını kullanır. Anahtarını gizli tut -- asla sürüm kontrolüne (version control) commit etme veya herkese açık şekilde paylaşma.
Örnek#
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsTemel URL#
Tüm API uç noktaları şunu kullanır:
https://platform.ultralytics.com/apiHız Sınırları#
API, her API anahtarı için Upstash Redis destekli kayan pencere sınırları uygular. Her rota aşağıdaki eşleşen kategoriyi kullanır.
İstekler kısıtlandığında (throttled), API yeniden deneme meta verileriyle birlikte 429 döndürür:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000ZAPI Anahtarı Başına Sınırlar#
Hız sınırları, çağrılan uç noktaya bağlı olarak otomatik uygulanır. Maliyetli işlemler, kötüye kullanımı önlemek için daha sıkı sınırlara sahiptir, standart CRUD işlemleri ise cömert bir varsayılan paylaşır:
| Kategori | Sınır | Uygulanan |
|---|---|---|
| Varsayılan | 100 istek/dk | Aşağıdaki bir kategoriye atanmamış rotalar |
| Eğitim | 10 istek/dk | Bulut eğitimi başlatılıyor |
| 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 | Takım oluşturma, depolama entegrasyonu değişiklikleri, API anahtarları, üyeler, davetler ve dağıtım başlatma/durdurma |
| Faturalandırma | 5 istek/dk | Otomatik bakiye yükleme ve abonelik ödeme rotaları |
| Yükleme/Hydrate | 20 istek/dk | Seçilen bir veri seti görüntüleri kümesini yükleme |
| Kümeleme (Clustering) | 10 istek/dk | Veri seti görüntü kümelemesi |
Her kategorinin API anahtarı başına bağımsız bir sayacı vardır. Örneğin, 20 tahmin isteği yapmak, 100 istek/dk varsayılan hakkını etkilemez.
Özel Uç Noktalar (Sınırsız)#
Dedicated endpoints, uç nokta URL'sini doğrudan çağırarak (https://predict-abc123.run.app/predict örneğinde olduğu gibi) Platform API anahtarı oran sınırlarına tabi değildir. İş hacmi o zaman dağıtılan servis yapılandırmasına bağlıdır.
Bir 429 durum kodu aldığında, yeniden denemeden önce Retry-After (veya X-RateLimit-Reset olana kadar) bekle. Üstel geri çekilme (exponential backoff) uygulaması için rate limit FAQ sayfasına göz at.
Yanıt Formatı#
Başarılı Yanıtlar#
Yanıtlar, kaynağa özel alanlar içeren JSON döner:
{
"datasets": [...],
"total": 100
}Hata Yanıtları#
{
"error": "Dataset not found"
}| HTTP Durumu | Anlamı |
|---|---|
200 | Başarılı |
201 | Oluşturuldu |
400 | Geçersiz istek |
401 | Kimlik doğrulama gerekli |
403 | Yetersiz izinler |
404 | Kaynak bulunamadı |
409 | Çakışma (kopya) |
429 | İstek limiti aşıldı |
500 | Sunucu hatası |
Veri Kümeleri API'si#
YOLO modellerini eğitmek için etiketlenmiş görüntü veri setleri oluştur, bunlara göz at ve bunları yönet. Datasets documentation sayfasına bak.
Veri Kümelerini Listele#
GET /api/datasetsSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
username | dize | Kullanıcı adına göre filtrele |
limit | tamsayı | Sayfa başına öğe sayısı (varsayılan: 1000, maksimum: 1000) |
owner | dize | Çalışma alanı sahibi kullanıcı adı |
includeImageUrls | boolean | İmzalı tam boyutlu örnek görüntü URL'lerini dahil et (varsayılan: false) |
includeSamples | boolean | Örnek görüntüleri hariç tutmak ve yanıt boyutunu küçültmek için false değerini ayarla. |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"Yanıt:
{
"datasets": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"task": "detect",
"imageCount": 1000,
"classCount": 10,
"classNames": ["person", "car"],
"visibility": "private",
"username": "johndoe",
"starCount": 3,
"isStarred": false,
"sampleImages": [
{
"url": "https://storage.example.com/...",
"width": 1920,
"height": 1080,
"labels": [{ "classId": 0, "bbox": [0.5, 0.4, 0.3, 0.6] }]
}
],
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-16T08:30:00Z"
}
],
"total": 1,
"region": "us"
}Veri Kümesini Getir#
GET /api/datasets/{datasetId}Sınıf adları, bölünme sayıları ve diğer Platform tarafından yönetilen özellikler dahil olmak üzere veri kümesi ayrıntılarını döndürür. Özel meta veriler, aşağıdaki meta veri uç noktasından ayrı olarak yüklenir.
{datasetId}, bir ID yerine bir veri kümesi kısaltması (slug) olduğunda username değerini geçir.
Veri Kümesi Oluştur#
POST /api/datasetsGövde:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"metadata": { "location": "factory-1", "reviewed": true },
"visibility": "private",
"classNames": ["person", "car"]
}Geçerli task değerleri: detect, segment, semantic, classify, pose ve obb.
Yanıt:
{
"datasetId": "dataset_abc123",
"slug": "my-dataset",
"region": "us"
}Veri Kümesini Güncelle#
PATCH /api/datasets/{datasetId}Gövde (kısmi güncelleme):
{
"name": "Updated Name",
"description": "New description",
"metadata": { "location": "factory-2", "reviewed": true },
"visibility": "public"
}Özel meta verileri temizlemek için boş bir metadata nesnesi ({}) gönder. Serileştirilmiş meta veri nesnesi 500.000 karakterle sınırlıdır ve her üst düzey anahtar 128 karakterle sınırlıdır.
Veri Kümesi Meta Verilerini Al#
GET /api/datasets/{datasetId}/metadataÖzel meta veri nesnesini ve Ultralytics tarafından yönetilen, salt okunur alan/değer çiftlerinden oluşan derlenmiş bir seti döndürür. Özel meta veriler, normal veri kümesi yüklerinden kasıtlı olarak hariç tutulmuştur. Kimlik doğrulama ve veri kümesi çalışma alanı erişimi gereklidir.
Veri Kümesi Simgesi#
POST /api/datasets/{datasetId}/icon
DELETE /api/datasets/{datasetId}/iconÇok parçalı (multipart) form alanı image olarak 5 MB'a kadar bir WebP simgesi yükle veya mevcut simgeyi kaldır.
Veri Kümesini Sil#
DELETE /api/datasets/{datasetId}Veri setini yumuşak silme (soft-delete) ile sil (trash bölümüne taşınır, 30 gün boyunca kurtarılabilir).
Veri Kümesini Kopyala#
POST /api/datasets/{datasetId}/cloneTüm görseller ve etiketlerle birlikte halka açık, sahip olunan veya düzenlenebilir bir çalışma alanı veri kümesinin kopyasını oluşturur.
İsteğe bağlı gövde (tüm alanlar isteğe bağlıdır):
{
"name": "cloned-dataset",
"slug": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"license": "AGPL-3.0",
"owner": "team-username"
}Veri Kümesini Dışa Aktar#
GET /api/datasets/{datasetId}/exportEn son veri kümesi dışa aktarımı için imzalı bir indirme URL'si içeren bir JSON yanıtı döndürür.
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
v | tamsayı | Sürüm numarası (1 tabanlı). Atlandığında, veri seti değişmediğinde yeniden kullanılarak en son değiştirilebilir dışa aktarmayı döndürür. |
Yanıt:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}Veri Kümesi Sürümü Oluştur#
POST /api/datasets/{datasetId}/exportVeri setinin numaralandırılmış yeni bir sürüm anlık görüntüsünü (snapshot) oluştur. Bu işlem, Editör erişimi veya daha yüksek bir yetki gerektirir. Sürüm; mevcut görüntü sayısını, sınıf sayısını, etiket sayısını ve bölünme (split) dağılımını yakalar, ardından değiştirilemez bir NDJSON dışa aktarması oluşturup saklar.
İstek Gövdesi:
{
"description": "Added 500 training images"
}Tüm alanlar isteğe bağlıdır. description alanı, kullanıcı tarafından sağlanan bir sürüm etiketidir.
Yanıt:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}Sürüm Açıklamasını Güncelle#
PATCH /api/datasets/{datasetId}/exportMevcut bir sürümün açıklamasını güncelle. Bu, Editör erişimi veya daha yüksek bir yetki gerektirir.
İstek Gövdesi:
{
"version": 2,
"description": "Fixed mislabeled classes"
}Yanıt:
{
"ok": true
}Veri Kümesi Sürümünü Geri Yükle#
POST /api/datasets/{datasetId}/restoreVeri kümesinin görsellerini, açıklamalarını ve sınıflarını, görsel baytlarını kopyalamadan kaydedilmiş bir sürümden yeniden oluştur.
{
"version": 2
}Sınıf İstatistiklerini Getir#
GET /api/datasets/{datasetId}/class-statsSınıf dağılımını, konum ısı haritasını ve boyut istatistiklerini döndürür. Sonuçlar 5 dakikaya kadar önbelleğe alınır.
Yanıt:
{
"classes": [{ "classId": 0, "count": 1500, "imageCount": 450 }],
"imageStats": {
"widthHistogram": [{ "bin": 640, "count": 120 }],
"heightHistogram": [{ "bin": 480, "count": 95 }],
"pointsHistogram": [{ "bin": 4, "count": 200 }]
},
"locationHeatmap": {
"bins": [
[5, 10],
[8, 3]
],
"maxCount": 50
},
"dimensionHeatmap": {
"bins": [
[2, 5],
[3, 1]
],
"maxCount": 12,
"minWidth": 10,
"maxWidth": 1920,
"minHeight": 10,
"maxHeight": 1080
},
"classNames": ["person", "car", "dog"],
"cached": true,
"sampled": false,
"sampleSize": 1000
}Sınıfları Yönet#
Sınıfları birleştir (ek açıklamaları kaynak sınıflardan hedef sınıfa yeniden ata, ardından kaynakları kaldır):
POST /api/datasets/{datasetId}/classes/merge{
"sourceClassIds": [2, 4],
"targetClassId": 1
}Sınıf kimlikleri konumsaldır, bu nedenle birleştirme işlemi idempotent değildir. Tekrar denemeden önce veri kümesini yeniden getir.
Sınıfları sil:
POST /api/datasets/{datasetId}/classes/delete{
"classIds": [2, 4]
}Bölümleri Yeniden Dağıt#
POST /api/datasets/{datasetId}/splits/redistributeGörselleri eğitim, doğrulama ve test bölmeleri arasında rastgele olarak yeniden ata. Yüzdelerin toplamı 100 olmalıdır.
{
"train": 80,
"val": 20,
"test": 0
}Veri Kümesi Gömülüleri (Embeddings)#
GET /api/datasets/{datasetId}/embeddings
POST /api/datasets/{datasetId}/embeddings
DELETE /api/datasets/{datasetId}/embeddingsGET, mevcut UMAP analiz özetini ve aktif iş durumunu döndürür; POST bir gömülü analiz işini sıraya alır; DELETE aktif işi iptal eder.
Görüntü Kümeleme#
GET /api/datasets/{datasetId}/images/clusteringKümeleme dağılım görünümü için UMAP 2D düzenini ve görüntü başına meta verileri döndürür (sayfalandırılmış ve hız sınırlamalı).
Veri Kümesinde Eğitilen Modelleri Getir#
GET /api/datasets/{datasetId}/modelsBu veri kümesi kullanılarak eğitilen modelleri döndürür.
Yanıt:
{
"models": [
{
"_id": "model_abc123",
"name": "experiment-1",
"slug": "experiment-1",
"status": "completed",
"task": "detect",
"epochs": 100,
"bestEpoch": 87,
"projectId": "project_xyz",
"projectSlug": "my-project",
"projectIconColor": "#3b82f6",
"projectIconLetter": "M",
"username": "johndoe",
"startedAt": "2024-01-14T22:00:00Z",
"completedAt": "2024-01-15T10:00:00Z",
"createdAt": "2024-01-14T21:55:00Z",
"metrics": {
"mAP50": 0.85,
"mAP50-95": 0.72,
"precision": 0.88,
"recall": 0.81
}
}
],
"count": 1
}Veri Kümesini Otomatik Etiketle#
POST /api/datasets/{datasetId}/predictAçıklamaları otomatik olarak oluşturmak için veri kümesi görüntülerinde YOLO çıkarımı çalıştır. Etiketlenmemiş görüntüler için etiketleri tahmin etmek üzere seçili bir model kullanır.
Gövde:
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
imageHash | dize | Evet | Etiketlenecek görüntünün karması |
modelId | dize | Hayır | Çıkarım (inference) için kullanılacak model, bir ul:// URI'si olarak belirtilir (örn. ul://username/project/model). Atlanırsa, veri setinin göreve özel varsayılan modeli kullanılır. |
confidence | kayan nokta | Hayır | Güven eşiği (varsayılan: 0.25) |
iou | kayan nokta | Hayır | IoU eşiği (varsayılan: 0.7) |
Veri Kümesi Alımı#
POST /api/datasets/ingestMevcut bir veri seti için veri seti içe aktarma (ingest) işi oluştur. Hedef veri seti, URL yolunda değil, her zaman JSON gövdesinde datasetId olarak iletilir.
İstek gövdesi, datasetId ile birlikte sessionId (yüklenmiş bir arşivin yükleme oturumu) veya sourceUrl (uzak bir ZIP, TAR, TAR.GZ, TGZ veya NDJSON URL'si) değerlerinden tam olarak birini gerektirir. Arşivin bölme yapısını geçersiz kılmak için isteğe bağlı targetSplit (train, val veya test) ekle. Özel meta veriler eklemek için her görselin arşiv içindeki tam göreli yolu veya NDJSON file değeriyle anahtarlanmış imageMetadata kullan.
Yüklenen arşivler için yükleme oturumu, POST /api/upload/signed-url değerine geçirilen assetId ile veri kümesine zaten bağlanmıştır; veri alımı (ingest), assetId değerinin gövdeyle (datasetId) eşleştiğini doğrular. İsteğe bağlı classMapping girdileri, gelen her sınıf adını mevcut sıfır tabanlı bir sınıf indeksine, yeniden kullanılacak veya oluşturulacak bir sınıf adına ya da sınıfı atlamak için null değerine eşler. Uzak sourceUrl içe aktarımları için önce veri kümesini oluştur, ardından veri alımı için datasetId değerini geçir.
Gövde (yüklenen arşiv):
{
"datasetId": "dataset_abc123",
"sessionId": "session_abc123",
"targetSplit": "train"
}Gövde (meta verilerle birlikte bir veya birden fazla görsel):
{
"datasetId": "dataset_abc123",
"sessionId": "session_abc123",
"imageMetadata": {
"airbus-wing.jpg": { "aircraft": { "family": "A350" }, "inspectionStatus": "reviewed" },
"images/tail.jpg": { "aircraft": { "family": "A320" }, "inspectionSeverity": 2 }
}
}Yerel görseller, arşivin tek bir görsel veya çok sayıda görsel içermesinden bağımsız olarak mevcut arşiv yükleme akışını kullanır. Anahtar, klasörler dahil olmak üzere arşiv içindeki normalleştirilmiş yol ile eşleşmelidir. NDJSON içeri aktarımları için her görsel kaydı bunun yerine kendi metadata nesnesini içerebilir. Kayda özel metadata, eşleşen bir imageMetadata girdisine göre önceliğe sahiptir.
Meta veriler JSON formatındadır ve iç içe değerleri destekler. Arşiv yolları 1.024 karakterle, üst düzey meta veri anahtarları 128 karakterle ve her meta veri nesnesi 500.000 serileştirilmiş karakterle sınırlıdır. Eksiksiz imageMetadata eşlemesi veya bir NDJSON içeri aktarımındaki birleştirilmiş geçerli meta veriler de 500.000 serileştirilmiş karakterle sınırlıdır. Bu kısıtlamalar etkileşimli OpenAPI şemasında yer almaktadır.
Python 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"}
dataset_id = "dataset_abc123"
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/ingest",
headers=headers,
json={
"datasetId": dataset_id,
"sessionId": upload["sessionId"],
"imageMetadata": {
"airbus-wing.jpg": {
"aircraft": {"family": "A350", "section": "wing"},
"inspectionStatus": "reviewed",
}
},
},
)
ingest.raise_for_status()
print(ingest.json())Gövde (uzak arşiv veya NDJSON):
{
"datasetId": "dataset_abc123",
"sourceUrl": "https://example.com/my-dataset.zip"
}Gövde (daha sonraki veri girişi, etiketlerin içe aktarılması):
{
"datasetId": "dataset_abc123",
"sessionId": "session_abc123",
"classMapping": { "person": 0, "automobile": "car", "background": null }
}İlk içe aktarma işlemi arşivden sınıfları otomatik olarak oluşturur. Sonraki içe aktarmalarda, classMapping içinde atlanan arşiv sınıfları, mevcut veri seti sınıflarıyla büyük/küçük harfe duyarsız bir eşleşmeye başvurur. Etiketler yalnızca açıkça null değerine eşlenen veya eşleşen mevcut bir sınıfı olmayan sınıflar için atlanır.
Yanıt:
{
"jobId": "job_abc123",
"datasetId": "dataset_abc123",
"status": "queued"
}graph LR
A[POST /api/datasets]:::start --> B[POST /api/upload/signed-url]:::proc
B --> C[Upload archive to signed URL]:::proc
C --> D[POST /api/upload/complete]:::proc
D --> E[POST /api/datasets/ingest]:::proc
E --> F[Process archive]:::proc
F --> G[Dataset ready]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffVeri Kümesi Görüntüleri#
Görüntüleri Listele#
GET /api/datasets/{datasetId}/imagesSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
split | dize | Bölüme (split) göre filtrele: train, val, test |
offset | tamsayı | Sayfalama ofseti (varsayılan: 0) |
limit | tamsayı | Sayfa başına öğe sayısı (varsayılan: 50, maksimum: 5000) |
sort | dize | Sıralama düzeni: newest, oldest, name-asc, name-desc, height-asc, height-desc, width-asc, width-desc, size-asc, size-desc, labels-asc, labels-desc (100 binden fazla görüntü içeren veri setleri için bazıları devre dışı bırakılmıştır) |
hasLabel | dize | Etiket durumuna göre filtrele (true veya false) |
hasError | dize | Hata durumuna göre filtrele (true veya false) |
search | dize | Dosya adında ve özel meta veri anahtarlarında, skaler değerlerde ve dizi girişlerinde alt dize eşleşmesi (alt nesneler içinde iç içe geçmiş değerler eşleştirilmez); 32 karakterlik bir heksadesimal dize, tam bir görsel hash aramasıdır |
classIds | dize | Virgülle ayrılmış sınıf kimlikleri; belirtilen sınıflardan herhangi birini içeren görüntüleri döndürür |
includeThumbnails | dize | İmzalı küçük resim (thumbnail) URL'lerini dahil et (varsayılan: true) |
includeImageUrls | dize | İmzalı tam görüntü URL'lerini dahil et (varsayılan: false) |
Seçili Görselleri Getir#
POST /api/datasets/{datasetId}/imagesSağlanan 1.000 görsel kimliğine kadar aynı görsel şeklini döndürür. Liste işlemiyle aynı URL ve etiket sorgu kontrollerini kabul eder.
{
"imageIds": ["IMAGE_OBJECT_ID"]
}İmzalı Görüntü URL'lerini Getir#
POST /api/datasets/{datasetId}/images/urls(Tarayıcıda görüntülemek için) bir dizi görüntü karması için imzalı URL'leri al.
Görüntüyü Sil#
DELETE /api/datasets/{datasetId}/images/{hash}Görüntü Etiketlerini Getir#
GET /api/datasets/{datasetId}/images/{hash}/labelsBelirli bir görüntü için açıklamaları ve sınıf adlarını döndürür.
Görüntü Etiketlerini Güncelle#
PUT /api/datasets/{datasetId}/images/{hash}/labelsGövde:
{
"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] }
]
}Etiket koordinatları 0 ile 1 arasında YOLO normalleştirilmiş değerlerini kullanır. Sınırlayıcı kutular (bounding boxes) [x_center, y_center, width, height] kullanır.
Segmentasyon etiketleri, çokgen köşe noktalarının düzleştirilmiş bir listesi olan segments değerini ([x1, y1, x2, y2, ...]) kullanır.
Toplu Görüntü İşlemleri#
Görüntüleri bir veri kümesi içindeki bölmeler (train/val/test) arasında taşı:
PATCH /api/datasets/{datasetId}/images/bulkGörüntüleri toplu sil:
DELETE /api/datasets/{datasetId}/images/bulkProjeler API'si#
Modellerini projeler altında organize et. Her model bir projeye aittir. Projects documentation sayfasına bak.
Projeleri Listele#
GET /api/projectsSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
username | dize | Kullanıcı adına göre filtrele |
limit | tamsayı | Sayfa başına öğe sayısı |
owner | dize | Çalışma alanı sahibi kullanıcı adı |
Projeyi Getir#
GET /api/projects/{projectId}Proje Oluştur#
POST /api/projectscurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-project",
"slug": "my-project",
"description": "Detection experiments",
"metadata": {"department": "manufacturing", "cost_center": "cv-01"}
}' \
https://platform.ultralytics.com/api/projectsProjeyi Güncelle#
PATCH /api/projects/{projectId}Gövde (kısmi güncelleme):
{
"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 üst düzey anahtar ve 500.000 karakterlik serileştirilmiş nesne sınırlarını kullanır.
Proje Meta Verilerini Al#
GET /api/projects/{projectId}/metadataÖzel meta veri nesnesini ve Ultralytics tarafından yönetilen salt okunur alan/değer çiftlerini döndürür. Kimlik doğrulama ve proje çalışma alanı erişimi gereklidir.
Projeyi Sil#
DELETE /api/projects/{projectId}Projeyi yumuşak silme (soft-delete) ile sil (trash bölümüne taşınır).
Projeyi Kopyala#
POST /api/projects/{projectId}/cloneHerkese açık, sahip olduğun veya düzenlenebilir bir çalışma alanı projesini ve modellerini hesabına veya çalışma alanına klonlar. İsteğe bağlı bir JSON gövdesi name, slug, description, visibility, license ve hedef owner geçersiz kılmalarını kabul eder.
Proje Simgesi#
POST /api/projects/{projectId}/icon
DELETE /api/projects/{projectId}/iconÇok parçalı (multipart) form alanı image olarak 5 MB'a kadar bir WebP simgesi yükle veya mevcut simgeyi kaldır.
Modeller API'si#
Eitilmiş YOLO modellerini yönet — metrikleri görüntüle, ağırlıkları indir, çıkarım çalıştır ve diğer formatlara dışarı aktar. Models documentation sayfasına bak.
Modelleri Listele#
GET /api/modelsSorgu Parametreleri:
| Parametre | Tip | Gerekli | Açıklama |
|---|---|---|---|
projectId | dize | Evet | Proje Kimliği (gerekli) |
fields | dize | Hayır | Alan kümesi: summary, charts |
ids | dize | Hayır | Virgülle ayrılmış model kimlikleri |
limit | tamsayı | Hayır | Maksimum sonuç (varsayılan 20, maks 100) |
Tamamlanan Modelleri Listele#
GET /api/models/completedEğitim ve dağıtım için tüm projelerde kullanılabilir ağırlıklara sahip en fazla 1.000 model döndürür. Çalışma alanı için owner değerini ilet.
Modeli Getir#
GET /api/models/{modelId}Model Oluştur#
POST /api/modelsJSON Gövdesi:
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
projectId | dize | Evet | Hedef proje kimliği |
slug | dize | Hayır | URL uzantısı (küçük harf alfasayısal/tire) |
name | dize | Hayır | Görünen ad (maks 100 karakter) |
description | dize | Hayır | Model açıklaması (maks 1000 karakter) |
metadata | nesne | Hayır | Özel JSON meta verileri |
task | dize | Hayır | Görev türü (detect, segment, semantic, depth, pose, obb, classify) |
.pt ağırlıklarını iliştirmek için assetType: models ile imzalı bir yükleme URL'si iste ve bu modelin ID'sini assetId olarak belirt, dosyayı 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/{modelId}Gövde (kısmi güncelleme):
{
"metadata": { "release": "candidate-3", "reviewed": true }
}Temizlemek için boş bir metadata nesnesi ({}) gönder. Model özel meta verileri, eğitime ait model bilgilerinden, ortam ayrıntılarından ve eğitim argümanlarından ayrıdır ve veri kümesi meta verileriyle aynı serileştirilmiş nesne ve üst düzey anahtar sınırlarını kullanır.
Model Meta Verilerini Al#
GET /api/models/{modelId}/metadataÖzel meta veri nesnesini ve Ultralytics tarafından yönetilen salt okunur alan/değer çiftlerini döndürür. Kimlik doğrulama ve model çalışma alanı erişimi gereklidir.
Modeli Sil#
DELETE /api/models/{modelId}Model Dosyalarını İndir#
GET /api/models/{modelId}/filesModel dosyaları için imzalı indirme URL'leri döndürür.
Modeli Kopyala#
POST /api/models/{modelId}/cloneHalka açık, sahip olunan veya düzenlenebilir bir çalışma alanı modelini projelerinden birine kopyala.
Gövde:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
targetProjectSlug | dize | Evet | Hedef proje uzantısı |
modelName | dize | Hayır | Kopyalanan model için ad |
description | dize | Hayır | Model açıklaması |
owner | dize | Hayır | Ekip kullanıcı adı (çalışma alanı kopyalama için) |
İndirmeyi İzle#
POST /api/models/{modelId}/track-downloadModel indirme analizlerini izle.
Çıkarımı Çalıştır.#
POST /api/models/{modelId}/predictHalka açık 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 |
source | dize | - | - | Resim URL'si veya base64 dizesi (file seçeneğinin alternatifi) |
file veya source değerinden birini sağla. Maksimum yükleme boyutu 100 MB'tır.
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/MODEL_ID/predictYanıt:
Yanıtlar, görsel başına shape, speed, results ve isteğe bağlı yoğun piksel haritası verilerini (bir anlamsal sınıf haritası veya depth = pixel × max / divisor içeren bir derinlik haritası — varsayılan 8 bitlik harita için 255 böleni, bits=12|16 ile 65535) artı görsel sayısı, işlev zamanlaması, görev ve servis sürümlerini içeren metadata değerini içerir. Dahili model yolları asla döndürülmez.
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}Eğitim API'si#
Bulut GPU'larında (RTX 2000 Ada'dan B300'e kadar 26 GPU türü) YOLO eğitimini başlat ve ilerlemeyi gerçek zamanlı olarak izle. Cloud Training documentation sayfasına bak.
graph LR
A[POST /training/start]:::start --> B[Job Created]:::proc
B --> C{Training}:::decide
C -->|progress| D[GET /models/id/training]:::proc
C -->|cancel| E[DELETE /models/id/training]:::error
C -->|complete| F[Model Ready]:::out
F --> G[Deploy or Export]:::proc
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fffEğitimi Başlat#
POST /api/training/startcurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/startMevcut GPU türleri arasında rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000, b300 ve diğerleri yer alır. Fiyatlandırma ile birlikte tam liste için Cloud Training sayfasına bak.
GPU Uygunluğunu Getir#
GET /api/training/gpu-availabilityGPU türü kimliğine göre anahtarlanmış mevcut GPU stok durumunu (High, Medium, Low veya null) döndürür. Herkese açık, kimlik doğrulama gerektirmez; 5 dakika boyunca önbelleğe alınır.
Eğitim Durumunu Al#
GET /api/models/{modelId}/trainingMevcut eğitim işi durumunu, metrikleri, ilerlemeyi, zamanlamayı, GPU detaylarını ve hataları döndürür. Halka açık projeler kimlik doğrulaması olmadan erişilebilirdir; özel ve paylaşılan projeler, erişimi olan bir API anahtarı gerektirir.
Eğitimi İptal Et#
DELETE /api/models/{modelId}/trainingÇalışan işlem örneğini sonlandırır ve işi iptal edildi olarak işaretler.
Dağıtım API'si#
Modelleri sağlık kontrolleri ve izleme özellikleriyle özel çıkarım uç noktalarına dağıt. Yeni dağıtımlar varsayılan olarak sıfıra ölçekleme (scale-to-zero) kullanır ve API isteğe bağlı bir resources nesnesini kabul eder. Endpoints documentation sayfasına bak.
Aşağıdaki tüm dağıtım yolları API anahtarı kimlik doğrulamasını kabul eder. Yüksek veri akış hızı gerektiren çıkarımlar için, dağıtımın kendi uç nokta URL'sini (örn. https://predict-abc123.run.app/predict) doğrudan API anahtarınla çağır. Dedicated endpoints için oran sınırı (rate limit) uygulanmaz.
graph LR
A[Create]:::start --> B[Deploying]:::proc
B --> C[Ready]:::out
C -->|stop| D[Stopped]:::extern
D -->|start| C
C -->|delete| E[Deleted]:::error
D -->|delete| E
C -->|predict| F[Inference Results]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fff
classDef error fill:#F44336,color:#fff
classDef extern fill:#607D8B,color:#fffDağıtımları Listele#
GET /api/deploymentsSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
modelId | dize | Modele göre filtrele |
status | dize | Duruma göre filtrele |
limit | tamsayı | Maksimum sonuç (varsayılan: 20, maks: 100) |
owner | dize | Çalışma alanı sahibi kullanıcı adı |
Dağıtım Oluştur#
POST /api/deploymentsGövde:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
modelId | dize | Evet | Dağıtılacak model kimliği |
name | dize | Evet | Dağıtım adı |
region | dize | Evet | Dağıtım bölgesi |
resources | nesne | Hayır | Kaynak yapılandırması (cpu, memoryGi, minInstances, maxInstances) |
Belirtilen bölgede özel bir çıkarım uç noktası oluşturur. Uç nokta benzersiz bir URL aracılığıyla küresel olarak erişilebilirdir.
Dağıtım iletişim kutusu şu anda cpu=1, memoryGi=2, minInstances=0 ve maxInstances=1 sabit varsayılan değerlerini gönderir. API yolu bir resources nesnesini kabul eder, ancak plan limitleri minInstances değerini 0 ile, maxInstances değerini ise 1 ile sınırlandırır.
En düşük gecikme süresi için kullanıcılarına yakın bir bölge seç. Platform arayüzü, mevcut 42 bölgenin tamamı için gecikme tahminlerini gösterir.
Dağıtımı Getir#
GET /api/deployments/{deploymentId}Dağıtımı Sil#
DELETE /api/deployments/{deploymentId}Dağıtımı Başlat#
POST /api/deployments/{deploymentId}/startDurdurulmuş bir dağıtımı devam ettir.
Dağıtımı Durdur#
POST /api/deployments/{deploymentId}/stopServisin minimum ve maksimum örnek sayısını sıfıra ayarlayarak istek sunmayı durdur.
Sağlık Kontrolü#
GET /api/deployments/{deploymentId}/healthDağıtım uç noktasının sağlık durumunu döndürür.
Dağıtımda Çıkarım Çalıştır#
POST /api/deployments/{deploymentId}/predictÇıkarım için bir görüntüyü doğrudan dağıtım uç noktasına gönder. İşlevsel olarak model tahminiyle eşdeğerdir ancak daha düşük gecikme için özel uç nokta üzerinden yönlendirilir.
Ç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 |
source | dize | - | - | Resim URL'si veya base64 dizesi (file seçeneğinin alternatifi) |
file veya source değerinden birini sağla. Yanıt, model tahminiyle aynı görüntü ve meta veri sözleşmesini kullanır ve dahili model yolunu asla döndürmez.
Metrikleri Getir#
GET /api/deployments/{deploymentId}/metricsİstek sayılarını, gecikmeyi ve hata oranı metriklerini kıvılcım grafiği verileriyle döndürür.
Sorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
range | dize | Zaman aralığı: 1h, 6h, 24h (varsayılan), 7d, 30d |
sparkline | dize | Kontrol paneli görünümü için optimize edilmiş mini grafik (sparkline) verisi almak üzere true olarak ayarla |
Günlükleri Getir#
GET /api/deployments/{deploymentId}/logsSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
severity | dize | Virgülle ayrılmış filtre: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | tamsayı | Girdi sayısı (varsayılan: 50, maks: 200) |
pageToken | dize | Önceki yanıttan sayfalama jetonu |
Dışa Aktarma (Export) API#
Kenar (edge) cihazda dağıtım için modelleri ONNX, TensorRT, CoreML ve LiteRT gibi optimize edilmiş formatlara dönüştür. Deploy documentation sayfasına bak.
Dışa Aktarımları Listele#
GET /api/exportsSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
modelId | dize | Model Kimliği (gerekli) |
status | dize | Duruma göre filtrele |
limit | tamsayı | Maksimum sonuç (varsayılan: 20, maks: 100) |
Dışa Aktarma Oluştur#
POST /api/exportsGövde:
| Alan | Tip | Gerekli | Açıklama |
|---|---|---|---|
modelId | dize | Evet | Kaynak model kimliği |
format | dize | Evet | Dışa aktarma formatı (aşağıdaki tabloya bak) |
gpuType | dize | Koşullu | format, engine olduğunda gereklidir; desteklenen bir GPU veya Jetson hedefi kullan |
args | nesne | Hayır | Dışa aktarma argümanları (imgsz, quantize, dynamic vb.) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId": "MODEL_ID", "format": "onnx"}' \
https://platform.ultralytics.com/api/exportsDesteklenen Formatlar:
Aşağıdaki paylaşılan dışa aktarma tablosundan format argümanını kullan. PyTorch kaynak formattı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 |
Dışa Aktarma Durumunu Al#
GET /api/exports/{exportId}Dışa Aktarmayı İptal Et#
DELETE /api/exports/{exportId}Dışa Aktarma İndirmesini İzle#
POST /api/exports/{exportId}/track-downloadEtkinlik (Activity) API#
Hesabındaki son eylemlerin (eğitim çalıştırmaları, yüklemeler ve daha fazlası) akışını görüntüle. Activity documentation sayfasına bak.
Aşağıdaki tüm Etkinlik yolları API anahtarı kimlik doğrulamasını kabul eder.
Etkinlikleri Listele#
GET /api/activitySorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
limit | tamsayı | Sayfa boyutu (varsayılan: 20, maks: 100) |
page | tamsayı | Sayfa numarası (varsayılan: 1) |
archived | boolean | Arşiv (Archive) sekmesi için true, Gelen Kutusu (Inbox) için false |
search | dize | Etkinlik alanlarında büyük/küçük harfe duyarlı olmayan arama |
start | tarih | Bu tarihte veya sonrasında gerçekleşen etkinlikleri dahil et |
end | tarih | Bu tarihte veya öncesinde gerçekleşen etkinlikleri dahil et |
export | boolean | Eşleşen tüm etkinlikleri JSON olarak döndür |
owner | dize | Çalışma alanı kullanıcı adı |
Etkinlikleri Görüldü Olarak İşaretle#
POST /api/activity/mark-seenGövde:
{
"all": true
}Veya belirli kimlikleri ilet:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}Bir çalışma alanındaki etkinlikleri işaretlemek için isteğe bağlı owner sorgu parametresini ilet.
Etkinlikleri Arşivle#
POST /api/activity/archiveGövde:
{
"all": true,
"archive": true
}Veya belirli kimlikleri ilet:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}Çalışma alanı etkinliklerini arşivlemek veya geri yüklemek için isteğe bağlı owner sorgu parametresini ilet.
Çöp Kutusu (Trash) API#
Silinen öğeleri görüntüle ve geri yükle. Öğeler 30 gün sonra kalıcı olarak kaldırılır. Trash documentation sayfasına bak.
Çöp Kutusunu Listele#
GET /api/trashSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
type | dize | Filtre: all, project, dataset, model |
page | tamsayı | Sayfa numarası (varsayılan: 1) |
limit | tamsayı | Sayfa başına öğe sayısı (varsayılan: 50, maks: 200) |
owner | dize | Çalışma alanı sahibi kullanıcı adı |
Öğeyi Geri Yükle#
POST /api/trashGövde:
{
"id": "item_abc123",
"type": "dataset"
}Öğeyi Kalıcı Olarak Sil#
DELETE /api/trashGövde:
{
"id": "item_abc123",
"type": "dataset"
}Kalıcı silme işlemi geri alınamaz. Kaynak ve ilgili tüm veriler kaldırılacaktır.
Çöp Kutusunu Boşalt#
DELETE /api/trash/emptyÇöp kutusundaki tüm öğeleri kalıcı olarak siler.
DELETE /api/trash/empty API anahtarı kimlik doğrulamasını kabul eder ve seçilen hesap veya çalışma alanı çöp kutusundaki her öğeyi kalıcı olarak siler.
Faturalandırma API#
Kredi bakiyeni, plan kullanımını ve işlem geçmişini kontrol et. Billing documentation sayfasına bak.
Bakiye ve işlem uç noktaları, çalışma alanı sahibinin kullanıcı adını içeren isteğe bağlı bir owner sorgu parametresini kabul eder.
Faturalandırma tutarları, 100 = $1.00 koşulunun sağlandığı durumlarda sent (creditsCents) cinsinden kullanılır.
Bakiyeyi Al#
GET /api/billing/balanceYanıt:
{
"creditsCents": 2500,
"plan": "free"
}Kullanım Özetini Al#
GET /api/billing/usage-summaryPlan detaylarını, limitleri ve kullanım metriklerini döndürür.
İşlemleri Al#
GET /api/billing/transactionsİşlem geçmişini döndürür (en son işlem önce gelecek şekilde).
İşlemler, tutar, sonuç bakiyesi, tarih, isteğe bağlı model bağlamı ve makbuz URL'si gibi müşteri tarafındaki defter alanlarını içerir. Dahili notlar, Stripe ödeme/iade kimlikleri ve idempotent anahtarlar döndürülmez.
Depolama API'si#
Depolama kullanım dökümünü kategoriye (veri kümeleri, modeller, dışa aktarmalar) göre kontrol et ve en büyük öğelerini görüntüle.
GET /api/storage API anahtarı kimlik doğrulamasını kabul eder. Aynı interaktif döküm için Settings > Profile sayfasını kullan.
Depolama Bilgisini Al#
GET /api/storageSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
details | boolean | topItems (en büyük veri kümeleri, modeller, dışa aktarımlar) öğesini dahil etmek için true olarak ayarla. |
owner | dize | Çalışma alanı kullanıcı adı. |
Yanıt:
{
"tier": "free",
"usage": {
"storage": {
"current": 1073741824,
"limit": 107374182400,
"percent": 1.0
}
},
"region": "us",
"username": "johndoe",
"updatedAt": "2024-01-15T10:00:00Z",
"breakdown": {
"byCategory": {
"datasets": { "bytes": 536870912, "count": 2 },
"models": { "bytes": 268435456, "count": 4 },
"exports": { "bytes": 268435456, "count": 3 }
},
"topItems": [
{
"_id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"sizeBytes": 536870912,
"type": "dataset"
},
{
"_id": "model_def456",
"name": "experiment-1",
"slug": "experiment-1",
"sizeBytes": 134217728,
"type": "model",
"parentName": "My Project",
"parentSlug": "my-project"
}
]
}
}Bulut Depolama Entegrasyonları#
Salt okunur GCS, S3 veya Azure Blob depolama entegrasyonlarına bağlan ve bunlara göz at:
GET /api/integrations/buckets
POST /api/integrations/buckets
POST /api/integrations/buckets/discover
GET /api/integrations/buckets/{id}/objectsDört işlem de çalışma alanı için isteğe bağlı owner sorgu parametresini kabul eder. Nesne göz atma (object browsing) ayrıca zorunlu target ile isteğe bağlı prefix ve sağlayıcı cursor sorgu parametrelerini kabul eder. Bağlantı ve keşif istek gövdeleri, interaktif OpenAPI başvurusundaki sağlayıcı kimlik bilgisi şemalarını kullanır; kimlik bilgileri asla döndürülmez.
Yükleme API'si#
Hızlı ve güvenilir transferler için imzalı URL'ler kullanarak dosyaları doğrudan bulut depolama alanına yükle. Bir model yüklemesini tamamlamak, modelin ağırlıklarını ekler. Bir veri seti arşivi yüklemesini tamamlamak ise oturumu kaydeder; işlem başlatmak için bu sessionId değerini POST /api/datasets/ingest parametresine ilet. Data documentation sayfasına bak.
İmzalı Yükleme URL'sini Al#
POST /api/upload/signed-urlDoğrudan bulut depolamaya dosya yüklemek için imzalı bir URL talep et. İmzalı URL, büyük dosya transferleri için API sunucusunu atlar.
Gövde:
{
"assetType": "datasets",
"assetId": "dataset_abc123",
"filename": "my-dataset.zip",
"contentType": "application/zip",
"totalBytes": 52428800
}| Alan | Tip | Açıklama |
|---|---|---|
assetType | dize | Varlık türü: models, datasets, images, videos |
assetId | dize | Hedef varlığın kimliği |
filename | dize | Orijinal dosya adı |
contentType | dize | MIME türü |
totalBytes | tamsayı | Bayt cinsinden dosya boyutu |
Yanıt:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.example.com/...",
"expiresAt": "2026-02-22T12:00:00Z"
}Yüklemeyi Tamamla#
POST /api/upload/completePlatforma bir dosya yüklemesinin tamamlandığını bildir. Modeller için bu işlem, yüklenen ağırlıkları ekler. Veri seti arşivleri için bu işlem yükleme oturumunu doğrular ve kaydeder; veri seti işlemeye başlamak için sonrasında POST /api/datasets/ingest fonksiyonunu çağır.
Gövde:
{
"sessionId": "session_abc123",
"checksum": "<optional sha-256 hex>"
}Entegrasyonlar API#
Veri setlerini üçüncü taraf hizmetlerden içe aktar. Integrations documentation sayfasına bak.
Roboflow İçe Aktarmayı Önizle#
POST /api/integrations/roboflow/previewBir Roboflow API key değerini toplu içe aktarma planına çözümle: çalışma alanı bilgisi, yeni içe aktarılacak projeler, zaten içe aktarılmış versiyon sayısı (atlandı) ve desteklenmeyen proje türleri. Roboflow API key gövdede iletilir ve kalıcı olarak saklanmaz.
Roboflow'dan İçe Aktar#
POST /api/integrations/roboflow/importSeçilen Roboflow projelerini çalışma alanına içe aktarmak için veri kümesi alım işlerini sıraya al. Depolama alanı boşluğu gerektirir ve her veri kümesi planının içe aktarma başına boyut sınırına uygun olmalıdır.
API Anahtarları API'si#
Programatik erişim için API anahtarlarını yönet. API Keys documentation sayfasına bak.
API Anahtarlarını Listele#
GET /api/api-keysAPI anahtarıyla kimliği doğrulanan istemciler anahtar meta verilerini alır, şifresi çözülmüş mevcut anahtar değerlerini asla almaz. Yeni oluşturulan bir anahtar POST /api/api-keys tarafından bir kez döndürülür.
Düzenleyici (editor) erişimine sahip olduğun bir çalışma alanı için anahtarları yönetmek üzere isteğe bağlı owner sorgu parametresini ilet.
API Anahtarı Oluştur#
POST /api/api-keysGövde:
{
"name": "training-server"
}API Anahtarını Sil#
DELETE /api/api-keysSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
keyId | dize | İptal edilecek API anahtarı kimliği |
owner | dize | İsteğe bağlı çalışma alanı kullanıcı adı. |
Örnek:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"Takımlar ve Üyeler API'si#
Takım çalışma alanları oluştur, üyeleri davet et ve iş birliği için rollerini yönet. Teams documentation sayfasına bak.
Takımları Listele#
GET /api/teamsTakım Oluştur#
POST /api/teams/createGövde:
{
"username": "my-team",
"fullName": "My Team"
}Üyeleri Listele#
GET /api/membersMevcut çalışma alanındaki üyeleri döndürür.
Üye Davet Et#
POST /api/membersGövde:
{
"email": "user@example.com",
"role": "editor"
}| Rol | İzinler |
|---|---|
viewer | Çalışma alanı kaynaklarına salt okunur erişim |
editor | Kaynak oluşturma, düzenleme ve silme |
admin | Üyeleri, faturalandırmayı ve tüm kaynakları yönetme (yalnızca takım sahibi tarafından atanabilir) |
Takım owner kullanıcısı oluşturucudur ve davet edilemez. Sahip rolü POST /api/members/transfer-ownership aracılığıyla ayrı olarak devredilir. Rollerin tüm ayrıntıları için Teams sayfasına bak.
Üye Rolünü Güncelle#
PATCH /api/members/{userId}Üyeyi Kaldır#
DELETE /api/members/{userId}Sahipliği Devret#
POST /api/members/transfer-ownershipKeşfet (Explore) API'si#
Topluluk tarafından paylaşılan halka açık veri setlerini ve projeleri ara ve onlara göz at. Explore documentation sayfasına bak.
Herkese Açık İçeriği Ara#
GET /api/explore/searchSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
q | dize | Arama sorgusu |
type | dize | Kaynak türü: all (varsayılan), projects, datasets |
sort | dize | Sıralama düzeni: newest (varsayılan), stars, oldest, name-asc, name-desc, count-desc, count-asc |
offset | tamsayı | Sayfalandırma ofseti (varsayılan: 0). Sonuçlar sayfa başına 20 öğe döndürür. |
task | dize | İsteğe bağlı: veri setlerini filtrelemek için virgülle ayrılmış YOLO görev türleri (detect, segment, semantic, classify, pose, obb) |
author | dize | İsteğe bağlı sahip kullanıcı adı filtresi. |
starred | boolean | Kimliği doğrulanan çağırıcının yıldız eklenen (starred) içeriğini döndürmek için true değerini ayarla; bir API anahtarı gerektirir. |
Kenar Çubuğu Verileri#
GET /api/explore/sidebarKeşfet kenar çubuğu için küratörlü içeriği döndürür.
Kullanıcı ve Ayarlar API'leri#
Profilini, API anahtarlarını, depolama kullanımını ve takım çalışma alanlarını yönet. Settings documentation sayfasına bak.
Hesap Özeti#
GET /api/account/summaryKimliği doğrulanmış hesabın planını, kredi bakiyesini, kaynak sayılarını ve ekip çalışma alanlarını döndürür.
Kullanıcı Adına Göre Kullanıcıyı Al#
GET /api/usersSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
username | dize | Aranacak kullanıcı adı |
Kullanıcıyı Takip Et veya Takibi Bırak#
PATCH /api/usersGövde:
{
"username": "target-user",
"followed": true
}Kullanıcı Adı Kullanılabilirliğini Kontrol Et#
GET /api/username/checkSorgu Parametreleri:
| Parametre | Tip | Açıklama |
|---|---|---|
username | dize | Kontrol edilecek kullanıcı adı |
suggest | bool | İsteğe bağlı: Alınmışsa (taken) bir öneri eklemek için true |
Ayarlar#
GET /api/settings
POST /api/settingsKullanıcı profili ayarlarını (görünen ad, biyografi, sosyal medya bağlantıları vb.) al veya güncelle.
Çalışma Alanı Simgesi#
POST /api/settings/icon
DELETE /api/settings/iconÇok parçalı form alanı image olarak 5 MB'a kadar bir WebP profil/çalışma alanı simgesi yükle veya simgeyi kaldır. Bir takım çalışma alanı için isteğe bağlı owner parametresini ilet.
Python Entegrasyonu#
Daha kolay entegrasyon için, kimlik doğrulama, yüklemeler ve gerçek zamanlı metrik akışını otomatik olarak yöneten Ultralytics Python paketini kullan.
Kurulum & Ayarlar#
pip install "ultralytics>=8.4.104"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#
Büyük sonuçları nasıl sayfalandırırım?#
Çoğu uç nokta, her istekte kaç sonucun döndürüleceğini kontrol etmek için bir limit parametresi kullanır:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"Etkinlik (Activity) ve Çöp Kutusu (Trash) uç noktaları da sayfa tabanlı sayfalandırma (pagination) için bir page parametresini destekler:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"Explore Search uç noktası, sabit 20 sayfa boyutuyla page yerine offset kullanır:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"API'yi SDK olmadan kullanabilir miyim?#
Yukarıda belgelenen halka açık REST işlemleri Python SDK olmadan kullanılabilir. SDK; gerçek zamanlı metrik akışı ve otomatik model yükleme gibi özellikler ekleyen kullanışlı bir sarmalayıcıdır (wrapper). Makine tarafından okunabilir sözleşmeyi platform.ultralytics.com/api/docs adresinden interaktif olarak inceleyebilirsin; yalnızca tarayıcı oturumuna dayalı hesap akışları Platform UI içinde kalır.
API istemci kütüphaneleri var mı?#
Ultralytics Python paketini kullan veya herhangi bir dilden doğrudan HTTP istekleri yap.
Hız sınırlarını (rate limits) nasıl yönetirim?#
Doğru süre boyunca beklemek için 429 yanıtındaki Retry-After baş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")Model veya veri kümesi kimliğimi (ID) nasıl bulurum?#
Kaynak kimlikleri (IDs) oluşturma, listeleme ve alma API yanıtları tarafından döndürülür. Platform sayfa URL'leri veritabanı kimlikleri yerine insan tarafından okunabilir kısa adlar (slugs) kullanır:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project modelBir model, veri seti, proje, dağıtım veya diğer kaynaklar için karşılık gelen _id değerini bulmak üzere liste uç noktalarını kullan.