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

Hızlı Başlangıç
# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasets
API Genel Bakış
API, temel platform kaynakları etrafında düzenlenmiştir:
graph LR
A[API Key] --> B[Datasets]
A --> C[Projects]
A --> D[Models]
A --> E[Deployments]
B -->|train on| D
C -->|contains| D
D -->|deploy to| E
D -->|export| F[Exports]
B -->|auto-annotate| B
| Kaynak | Açıklama | Anahtar İşlemler |
|---|---|---|
| Veri Kümeleri | Etiketli resim koleksiyonları | CRUD, resimler, etiketler, dışa aktarma, klonlama |
| Projeler | Eğitim çalışma alanları | CRUD, klon, simge |
| Modeller | Eğitimli kontrol noktaları | CRUD, tahmin, indirme, klonlama, dışa aktarma |
| Dağıtımlar | Özel çıkarım uç noktaları | CRUD, başlatma/durdurma, metrikler, günlükler, durum |
| Dışa Aktarmalar | Format dönüştürme işleri | Oluştur, durum, indir |
| Eğitim | Bulut GPU işleri | Başlat, durum, iptal |
| Faturalandırma | Krediler ve abonelikler | Bakiye, kontör yükleme, ödeme yöntemleri |
| Takımlar | Çalışma alanı işbirliği | Üyeler, davetler, roller |
Kimlik Doğrulama
Çoğu API isteği, API anahtarı aracılığıyla kimlik doğrulama gerektirir. Genel uç noktalar (genel veri kümelerini, projeleri ve modelleri listeleme), anahtar olmadan anonim okuma erişimini destekler.
API Anahtarını Al
- Git
Settings>Profile(API Anahtarları bölümü) - Tıklayın
Create Key - Oluşturulan anahtarı kopyalayın
Ayrıntılı talimatlar için API Anahtarları bölümüne bakın.
Yetkilendirme Başlığı
API anahtarınızı tüm isteklere dahil edin:
Authorization: Bearer ul_your_api_key_here
API Anahtar Formatı
API anahtarları şu biçimi kullanır ul_ ardından 40 hex karakteri gelir. Anahtarınızı gizli tutun - asla sürüm kontrolüne kaydetmeyin veya kamuya açık olarak paylaşmayın.
Örnek
curl -H "Authorization: Bearer ul_abc123..." \
https://platform.ultralytics.com/api/datasets
import requests
headers = {"Authorization": "Bearer ul_abc123..."}
response = requests.get(
"https://platform.ultralytics.com/api/datasets",
headers=headers,
)
data = response.json()
const response = await fetch("https://platform.ultralytics.com/api/datasets", {
headers: { Authorization: "Bearer ul_abc123..." },
});
const data = await response.json();
Temel URL
Tüm API uç noktaları şunları kullanır:
https://platform.ultralytics.com/api
Hız Sınırları
API, kötüye kullanıma karşı koruma sağlamak ve meşru kullanımı kısıtlamadan devam ettirmek için iki katmanlı bir hız sınırlama sistemi kullanır:
- API anahtarı başına — Kimliği doğrulanmış isteklerde API anahtarı başına uygulanan sınırlar
- IP başına — Tüm IP adresleri için dakikada 100 istek
/api/*yollar (hem kimliği doğrulanmış hem de kimliği doğrulanmamış istekler için geçerlidir)
Kısıtlandığında, API şu yanıtı döndürür 429 yeniden deneme meta verileriyle:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000Z
API Anahtarı Sınırları
Hız sınırları, çağrılan uç noktaya göre otomatik olarak uygulanır. Kötüye kullanımı önlemek için pahalı işlemler daha sıkı sınırlara tabidir, ancak standart CRUD işlemleri cömert bir varsayılan değeri paylaşır:
| Uç Nokta | Limit | Uygulanabilir |
|---|---|---|
| Varsayılan | 100 istek/dakika | Aşağıda listelenmeyen tüm uç noktalar (liste, alma, oluşturma, güncelleme, silme) |
| Eğitim | 10 istek/dakika | Bulut eğitimi işlerine başlamak (POST /api/training/start) |
| Yükle | 10 istek/dakika | Dosya yüklemeleri, imzalı URL'ler ve veri kümesi alımı |
| Tahmin et | 20 istek/dakika | Paylaşılan model çıkarım (POST /api/models/{id}/predict) |
| Dışa aktar | 20 istek/dakika | Model formatı dışa aktarımları (POST /api/exports) ve veri kümesi NDJSON dışa aktarımları |
| İndir | 30 istek/dakika | Model ağırlık dosyası indirmeleri (GET /api/models/{id}/download) |
| Özel | Sınırsız | Özel uç noktalar — kendi hizmetiniz, API sınırı yok |
Her kategori, API anahtarı başına bağımsız bir sayaca sahiptir. Örneğin, 20 tahmin isteği yapmak, 100 istek/dakika varsayılan kotanızı etkilemez.
Özel Uç Noktalar (Sınırsız)
Özel uç noktalar olmak API anahtar hız sınırlarına tabi değildir. Bir modeli özel bir uç noktaya dağıttığınızda, o uç nokta URL'sine (örneğin, https://predict-abc123.run.app/predict) Platformdan herhangi bir hız sınırlaması olmaksızın doğrudan özel hizmetinize erişin. Hesaplama için ödeme yaptığınız için, uç noktanızın ölçeklendirme yapılandırmasına kadar sınırsız verim elde edersiniz.
İşlem Hızı Sınırları
Bir 429 durum kodu, bekle Retry-After (veya X-RateLimit-Reset) yeniden denemeden önce. Bkz. hız sınırı SSS üstel geri çekilme uygulaması için.
Yanıt Biçimi
Başarı Yanıtları
Yanıtlar, kaynağa özgü alanlarla JSON döndürür:
{
"datasets": [...],
"total": 100
}
Hata Yanıtları
{
"error": "Invalid dataset ID"
}
| HTTP Durumu | Anlam |
|---|---|
200 | Başarı |
201 | Oluşturulma Tarihi |
400 | Geçersiz istek |
401 | Kimlik doğrulama gerekli |
403 | Yetersiz izinler |
404 | Kaynak bulunamadı |
409 | Çatışma (yinelenen) |
429 | Hız sınırı aşıldı |
500 | Sunucu hatası |
Veri Kümeleri API'si
YOLO eğitmek için etiketli görüntü koleksiyonlarını yönetin.
Veri Kümelerini Listeleme
GET /api/datasets
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
username | string | Kullanıcı adına göre filtrele |
slug | string | Slug ile tek bir veri kümesini getir |
limit | int | Sayfa başına öğe sayısı (varsayılan: 20, maksimum: 500) |
owner | string | Çalışma alanı sahibi kullanıcı adı |
curl -H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"
import requests
resp = requests.get(
"https://platform.ultralytics.com/api/datasets",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"limit": 10},
)
for ds in resp.json()["datasets"]:
print(f"{ds['name']}: {ds['imageCount']} images")
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 Al
GET /api/datasets/{datasetId}
Meta veriler, sınıf adları ve bölünme sayıları dahil olmak üzere tam veri kümesi ayrıntılarını döndürür.
Veri Kümesi Oluştur
POST /api/datasets
Gövde:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}
Desteklenen Görevler
Geçerli task değerler: detect, segment, classify, pose, obb.
Veri Setini Güncelle
PATCH /api/datasets/{datasetId}
Gövde (kısmi güncelleme):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}
Veri Kümesini Sil
DELETE /api/datasets/{datasetId}
Veri kümesini yumuşak silme ( çöp kutusuna taşınır, 30 gün boyunca kurtarılabilir).
Veri Kümesini Klonla
POST /api/datasets/{datasetId}/clone
Tüm görüntüler ve etiketleri içeren veri kümesinin bir kopyasını oluşturur. Yalnızca genel veri kümeleri kopyalanabilir.
Gövde (tüm alanlar isteğe bağlı):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}
Veri Kümesini Dışa Aktar
GET /api/datasets/{datasetId}/export
Veri kümesi dışa aktarma dosyası için imzalı indirme URL'si içeren bir JSON yanıtı döndürür.
Yanıt:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}
Sınıf İstatistiklerini Al
GET /api/datasets/{datasetId}/class-stats
Sınıf dağılımını, konum ısı haritasını ve boyut istatistiklerini döndürür. Sonuçlar 5 dakikaya kadar önbellekte saklanı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
}
Veri Kümesi Üzerinde Eğitimli Modeller Alın
GET /api/datasets/{datasetId}/models
Bu veri seti kullanılarak eğitilmiş 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 Setini Otomatik Olarak Açıklama Ekleme
POST /api/datasets/{datasetId}/predict
Veri kümesi görüntülerinde YOLO çalıştırarak otomatik olarak açıklamalar oluşturun. Seçilen modeli kullanarak açıklaması olmayan görüntüler için etiketleri tahmin eder.
Gövde:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
imageHash | string | Evet | Ek açıklama yapılacak görüntünün hash değeri |
modelId | string | Hayır | Çıkarım için kullanılacak model kimliği |
confidence | float | Hayır | Güven eşiği (varsayılan: 0,25) |
iou | float | Hayır | IoU (varsayılan: 0,45) |
Veri Kümesi Alımı
POST /api/datasets/ingest
Görüntüleri ve etiketleri içeren yüklenen ZIP dosyalarını işlemek için bir veri kümesi alım işi oluşturun.
graph LR
A[Upload ZIP] --> B[POST /api/datasets/ingest]
B --> C[Process ZIP]
C --> D[Extract images]
C --> E[Parse labels]
C --> F[Generate thumbnails]
D & E & F --> G[Dataset ready]
Veri Kümesi Görüntüleri
Görüntüleri Listele
GET /api/datasets/{datasetId}/images
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
split | string | Bölünmeye göre filtrele: train, val, test |
offset | int | Sayfa numaralandırma ofseti (varsayılan: 0) |
limit | int | Sayfa başına öğe sayısı (varsayılan: 50, maksimum: 5000) |
sort | string | Sıralama düzeni: newest, oldest, name-asc, name-desc, size-asc, size-desc, labels-asc, labels-desc |
hasLabel | string | Etiket durumuna göre filtrele (true veya false) |
hasError | string | Hata durumuna göre filtrele (true veya false) |
search | string | Dosya adına veya görüntü hash'ine göre arama yapın |
includeThumbnails | string | İmzalı küçük resim URL'lerini dahil et (varsayılan: true) |
includeImageUrls | string | İmzalı tam resim URL'lerini dahil et (varsayılan: false) |
İmzalı Görüntü URL'lerini Alın
POST /api/datasets/{datasetId}/images/urls
Bir grup görüntü hash'i için imzalı URL'ler alın (tarayıcıda görüntülemek için).
Resmi Sil
DELETE /api/datasets/{datasetId}/images/{hash}
Görüntü Etiketlerini Al
GET /api/datasets/{datasetId}/images/{hash}/labels
Belirli 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}/labels
Gövde:
{
"labels": [{ "classId": 0, "bbox": [0.5, 0.5, 0.2, 0.3] }]
}
Koordinat Biçimi
Sınırlayıcı kutular YOLO formatını kullanır: [x_center, y_center, width, height] tüm değerlerin 0 ile 1 arasında olduğu yer.
Toplu Görüntü İşlemleri
Bir veri kümesi içinde bölmeler (eğitim/değerlendirme/test) arasında görüntüleri taşıma:
PATCH /api/datasets/{datasetId}/images/bulk
Görüntüleri toplu olarak silme:
DELETE /api/datasets/{datasetId}/images/bulk
Projeler API'si
Modelleri gruplandıran eğitim çalışma alanlarını yönetin.
Projeleri Listele
GET /api/projects
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
username | string | Kullanıcı adına göre filtrele |
limit | int | Sayfa başına öğe sayısı |
owner | string | Çalışma alanı sahibi kullanıcı adı |
Proje Al
GET /api/projects/{projectId}
Proje Oluştur
POST /api/projects
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "my-project", "slug": "my-project", "description": "Detection experiments"}' \
https://platform.ultralytics.com/api/projects
resp = requests.post(
"https://platform.ultralytics.com/api/projects",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"name": "my-project", "slug": "my-project", "description": "Detection experiments"},
)
project_id = resp.json()["projectId"]
Projeyi Güncelle
PATCH /api/projects/{projectId}
Projeyi Sil
DELETE /api/projects/{projectId}
Projeyi geçici olarak siler ( çöp kutusuna taşır).
Klon Projesi
POST /api/projects/{projectId}/clone
Proje Simgesi
Proje simgesini yükle (görüntü dosyası içeren çok parçalı form):
POST /api/projects/{projectId}/icon
Proje simgesini kaldırın:
DELETE /api/projects/{projectId}/icon
Modeller API'si
Projeler içinde eğitilmiş model kontrol noktalarını yönetin.
Modelleri Listele
GET /api/models
Sorgu Parametreleri:
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
projectId | string | Evet | Proje Kimliği (gerekli) |
fields | string | Hayır | Alan seti: summary, charts |
ids | string | Hayır | Virgülle ayrılmış model kimlikleri |
limit | int | Hayır | Maksimum sonuç sayısı (varsayılan 20, maksimum 100) |
Tamamlanan Modeller Listesi
GET /api/models/completed
Eğitimi tamamlanmış modelleri döndürür (model seçicilerde ve dağıtımda kullanılmak üzere).
Model Al
GET /api/models/{modelId}
Model Oluştur
POST /api/models
JSON Gövdesi:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
projectId | string | Evet | Hedef proje kimliği |
slug | string | Hayır | URL slug (küçük harfli alfasayısal/tireler) |
name | string | Hayır | Görünen ad (maks. 100 karakter) |
description | string | Hayır | Model açıklaması (maks. 1000 karakter) |
task | string | Hayır | Görev türü (detect, segment, poz, obb, classify) |
Model Dosya Yükleme
Model .pt Dosya yüklemeleri ayrı olarak işlenir. Platform kullanıcı arayüzünü kullanarak model dosyalarını bir projeye sürükleyip bırakın.
Modeli Güncelle
PATCH /api/models/{modelId}
Modeli Sil
DELETE /api/models/{modelId}
Model Dosyalarını İndir
GET /api/models/{modelId}/files
Model dosyaları için imzalı indirme URL'leri döndürür.
Klon Modeli
POST /api/models/{modelId}/clone
Genel bir modeli projelerinizden birine kopyalayın.
Gövde:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
targetProjectSlug | string | Evet | Hedef proje slug |
modelName | string | Hayır | Klonlanan modelin adı |
description | string | Hayır | Model açıklaması |
owner | string | Hayır | Takım kullanıcı adı (çalışma alanı klonlama için) |
İzle İndir
POST /api/models/{modelId}/track-download
Model indirme analizlerini takip edin.
Çıkarım Çalıştır
POST /api/models/{modelId}/predict
Çok Parçalı Form:
| Alan | Tür | Açıklama |
|---|---|---|
file | dosyası | Görüntü dosyası (JPEG, PNG, WebP) |
conf | float | Güven eşiği (varsayılan: 0,25) |
iou | float | IoU (varsayılan: 0,7) |
imgsz | int | Piksel cinsinden görüntü boyutu (varsayılan: 640) |
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/MODEL_ID/predict
with open("image.jpg", "rb") as f:
resp = requests.post(
f"https://platform.ultralytics.com/api/models/{model_id}/predict",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"conf": 0.5},
)
results = resp.json()["images"][0]["results"]
Yanıt:
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}
Predict Token Alın
POST /api/models/{modelId}/predict/token
Doğrudan tahmin istekleri için kısa süreli bir jeton alın. Jeton, istemci tarafı uygulamalardan daha düşük gecikmeli çıkarım için API proxy'sini atlar.
Isınma Modeli
POST /api/models/{modelId}/predict/warmup
Daha hızlı ilk çıkarım için modeli önceden yükleyin. İlk istekte gecikmeleri önlemek için tahminleri çalıştırmadan önce bunu çağırın.
Eğitim API'si
Bulut eğitim işlerini başlatın, izleyin ve iptal edin.
graph LR
A[POST /training/start] --> B[Job Created]
B --> C{Training}
C -->|progress| D[GET /models/id/training]
C -->|cancel| E[DELETE /models/id/training]
C -->|complete| F[Model Ready]
F --> G[Deploy or Export]
Eğitime Başla
POST /api/training/start
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo11n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/start
resp = requests.post(
"https://platform.ultralytics.com/api/training/start",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo11n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16,
},
},
)
GPU
Mevcut GPU şunlardır: rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000ve diğerleri. Bkz. Bulut Eğitimi fiyatlandırma ile birlikte tam liste için.
Eğitim Durumunu Al
GET /api/models/{modelId}/training
Bir model için mevcut eğitim işi durumunu, ölçümleri ve ilerleme durumunu döndürür.
Eğitimi İptal Et
DELETE /api/models/{modelId}/training
Çalışan hesaplama örneğini sonlandırır ve işi iptal edilmiş olarak işaretler.
Dağıtımlar API'si
Özel çıkarım uç noktaları oluşturun ve yönetin.
graph LR
A[Create] --> B[Deploying]
B --> C[Ready]
C -->|stop| D[Stopped]
D -->|start| C
C -->|delete| E[Deleted]
D -->|delete| E
C -->|predict| F[Inference Results]
Dağıtımları Listele
GET /api/deployments
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
modelId | string | Modele göre filtrele |
status | string | Duruma göre filtrele |
limit | int | Maksimum sonuç sayısı (varsayılan: 20, maksimum: 100) |
owner | string | Çalışma alanı sahibi kullanıcı adı |
Dağıtım Oluştur
POST /api/deployments
Gövde:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
modelId | string | Evet | Dağıtılacak model kimliği |
name | string | Evet | Dağıtım adı |
region | string | 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ç noktaya, benzersiz bir URL aracılığıyla global olarak erişilebilir.
Bölge Seçimi
En düşük gecikme süresi için kullanıcılarınıza yakın bir bölge seçin. Platform kullanıcı arayüzü, mevcut 43 bölgenin tümü için gecikme süresi tahminlerini gösterir.
Dağıtım Al
GET /api/deployments/{deploymentId}
Dağıtımı Sil
DELETE /api/deployments/{deploymentId}
Dağıtımı Başlat
POST /api/deployments/{deploymentId}/start
Durdurulan dağıtımı yeniden başlatın.
Dağıtımı Durdur
POST /api/deployments/{deploymentId}/stop
Çalışan bir dağıtımı duraklatın (faturalandırmayı durdurur).
Sağlık Kontrolü
GET /api/deployments/{deploymentId}/health
Dağıtım uç noktasının sağlık durumunu döndürür.
Dağıtımda Çıkarım Çalıştırma
POST /api/deployments/{deploymentId}/predict
Çıkarım için bir görüntüyü doğrudan dağıtım uç noktasına gönderin. İşlevsel olarak model tahmini ile eşdeğerdir, ancak daha düşük gecikme süresi için özel uç nokta üzerinden yönlendirilir.
Çok Parçalı Form:
| Alan | Tür | Açıklama |
|---|---|---|
file | dosyası | Görüntü dosyası (JPEG, PNG, WebP) |
conf | float | Güven eşiği (varsayılan: 0,25) |
iou | float | IoU (varsayılan: 0,7) |
imgsz | int | Piksel cinsinden görüntü boyutu (varsayılan: 640) |
Metrikleri Al
GET /api/deployments/{deploymentId}/metrics
İade taleplerinin sayısını, gecikme süresini ve hata oranını sparkline verileriyle birlikte gösterir.
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
range | string | Zaman aralığı: 1h, 6h, 24h (varsayılan), 7d, 30d |
sparkline | string | Ayarlamak true dashboard görünümü için optimize edilmiş sparkline verileri |
Logları Al
GET /api/deployments/{deploymentId}/logs
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
severity | string | Virgülle ayrılmış filtre: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | int | Giriş sayısı (varsayılan: 50, maksimum: 200) |
pageToken | string | Önceki yanıtın sayfa numaralandırma belirteci |
İzleme API'si
Toplam Metrikler
GET /api/monitoring
Tüm kullanıcı dağıtımları için toplu metrikleri döndürür: toplam istek sayısı, etkin dağıtımlar, hata oranı ve ortalama gecikme süresi.
Dışa Aktarım API'si
Modelleri kenar dağıtımı için optimize edilmiş biçimlere dönüştürün.
Dışa Aktarımları Listele
GET /api/exports
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
modelId | string | Model Kimliği (gerekli) |
status | string | Duruma göre filtrele |
limit | int | Maksimum sonuç sayısı (varsayılan: 20, maksimum: 100) |
Dışa Aktarım Oluştur
POST /api/exports
Gövde:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
modelId | string | Evet | Kaynak model kimliği |
format | string | Evet | Dışa aktarma biçimi (aşağıdaki tabloya bakın) |
gpuType | string | Koşullu | Gerekli olduğunda format şudur engine (TensorRT) |
args | nesne | Hayır | Dışa aktarma argümanları (imgsz, half, dynamic, vb.) |
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId": "MODEL_ID", "format": "onnx"}' \
https://platform.ultralytics.com/api/exports
resp = requests.post(
"https://platform.ultralytics.com/api/exports",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"modelId": "MODEL_ID", "format": "onnx"},
)
export_id = resp.json()["exportId"]
Desteklenen Formatlar:
| Format | Değer | Kullanım Durumu |
|---|---|---|
| ONNX | onnx | Çapraz platform çıkarım |
| TorchScript | torchscript | PyTorch dağıtımı |
| OpenVINO | openvino | Intel |
| TensorRT | engine | NVIDIA GPU |
| CoreML | coreml | Apple cihazları |
| TFLite | tflite | Mobil ve gömülü |
| TF SavedModel | saved_model | TensorFlow |
| TF GraphDef | pb | TensorFlow grafik |
| PaddlePaddle | paddle | Baidu PaddlePaddle |
| NCNN | ncnn | Mobil sinir ağı |
| Edge TPU | edgetpu | Google cihazları |
| TF.js | tfjs | Tarayıcı çıkarım |
| MNN | mnn | Alibaba mobil çıkarım |
| RKNN | rknn | Rockchip NPU |
| IMX | imx | Sony IMX500 sensör |
| Axelera | axelera | Axelera AI hızlandırıcıları |
| ExecuTorch | executorch | Meta ExecuTorch çalışma zamanı |
Dışa Aktarım Durumunu Al
GET /api/exports/{exportId}
Dışa Aktarımı İptal Et
DELETE /api/exports/{exportId}
İzleme İhracatı İndir
POST /api/exports/{exportId}/track-download
Etkinlik API'si
Hesabınızdaki etkinlikleri track edin ve yönetin.
Etkinliği Listele
GET /api/activity
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
limit | int | Sayfa boyutu (varsayılan: 20, maksimum: 100) |
page | int | Sayfa numarası (varsayılan: 1) |
archived | boolean | true Arşiv sekmesi için, false Gelen Kutusu için |
search | string | Olay alanlarında büyük/küçük harf duyarlı olmayan arama |
Olayları Görüldü Olarak İşaretle
POST /api/activity/mark-seen
Gövde:
{
"all": true
}
Veya belirli kimlikleri geçirin:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}
Olayları Arşivle
POST /api/activity/archive
Gövde:
{
"all": true,
"archive": true
}
Veya belirli kimlikleri geçirin:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}
Çöp Kutusu API'si
Geçici olarak silinmiş kaynakları yönetin (30 günlük saklama süresi).
Çöp Kutusunu Listele
GET /api/trash
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
type | string | Filtre: all, project, dataset, model |
page | int | Sayfa numarası (varsayılan: 1) |
limit | int | Sayfa başına öğe sayısı (varsayılan: 50, maksimum: 200) |
owner | string | Çalışma alanı sahibi kullanıcı adı |
Öğeyi Geri Yükle
POST /api/trash
Gövde:
{
"id": "item_abc123",
"type": "dataset"
}
Öğeyi Kalıcı Olarak Sil
DELETE /api/trash
Gövde:
{
"id": "item_abc123",
"type": "dataset"
}
Geri dönüşü olmayan
Kalıcı silme işlemi geri alınamaz. Kaynak ve tüm ilişkili veriler silinecektir.
Çöp Kutusunu Boşalt
DELETE /api/trash/empty
Çöp kutusundaki tüm öğeleri kalıcı olarak siler.
Faturalandırma API'si
Kredileri, abonelikleri ve ödeme yöntemlerini yönetin.
Para Birimleri
Fatura tutarları sent cinsindendir (creditsCents) nerede 100 = $1.00.
Bakiye Al
GET /api/billing/balance
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
owner | string | Çalışma alanı sahibi kullanıcı adı |
Yanıt:
{
"creditsCents": 2500,
"plan": "free",
"cashBalance": 25,
"creditBalance": 0,
"reservedAmount": 0,
"totalBalance": 25
}
Kullanım Özetini Al
GET /api/billing/usage-summary
Plan ayrıntılarını, limitlerini ve kullanım metriklerini döndürür.
İşlemleri Al
GET /api/billing/transactions
İşlem geçmişini (en sonuncusu ilk olarak) döndürür.
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
owner | string | Çalışma alanı sahibi kullanıcı adı |
Ödeme Oturumu Oluştur
POST /api/billing/checkout-session
Gövde:
{
"amount": 25,
"owner": "team-username"
}
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
amount | sayı | Evet | Dolar cinsinden tutar (5-1000 dolar) |
owner | string | Hayır | Çalışma alanı kontör yüklemeleri için ekip kullanıcı adı (yönetici rolü gerektirir) |
Kredi satın alımı için bir ödeme oturumu oluşturur.
Abonelik Ödemesi Oluştur
POST /api/billing/subscription-checkout
Pro abonelik yükseltmesi için bir ödeme oturumu oluşturur.
Gövde:
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
planId | string | Evet | Abone olunacak plan (pro) |
billingCycle | string | Hayır | Faturalandırma döngüsü: monthly (varsayılan) veya yearly |
owner | string | Hayır | Çalışma alanı yükseltmeleri için ekip kullanıcı adı (yönetici rolü gerektirir) |
Portal Oturumu Oluştur
POST /api/billing/portal-session
Abonelik yönetimi için faturalandırma portalına URL döndürür.
Otomatik Yükleme
Bakiye bir eşiğin altına düştüğünde otomatik olarak kredi ekler.
Otomatik Yükleme Yapılandırmasını Al
GET /api/billing/auto-topup
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
owner | string | Çalışma alanı sahibi kullanıcı adı |
Otomatik Yükleme Yapılandırmasını Güncelle
PATCH /api/billing/auto-topup
Gövde:
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}
Ödeme Yöntemleri
Ödeme Yöntemlerini Listele
GET /api/billing/payment-methods
Kurulum Amacı Oluştur
POST /api/billing/payment-methods/setup
Yeni bir ödeme yöntemi eklemek için bir istemci sırrı döndürür.
Varsayılan Ödeme Yöntemini Ayarla
POST /api/billing/payment-methods/default
Gövde:
{
"paymentMethodId": "pm_123"
}
Fatura Bilgilerini Güncelle
PATCH /api/billing/payment-methods
Gövde:
{
"name": "Jane Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
}
}
Ödeme Yöntemini Sil
DELETE /api/billing/payment-methods/{id}
Depolama API'si
Depolama Bilgisi Al
GET /api/storage
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"
}
]
}
}
Depolamayı Yeniden Hesapla
POST /api/storage
Depolama kullanımının yeniden hesaplanmasını tetikler.
Yükleme API'si
Doğrudan dosya yüklemeleri, iki aşamalı imzalı URL akışı kullanır.
İmzalı Yükleme URL'si Al
POST /api/upload/signed-url
Bir dosyayı doğrudan bulut depolamaya yüklemek için imzalı bir URL isteyin. İmzalı URL, büyük dosya aktarımları için API sunucusunu atlar.
Gövde:
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}
| Alan | Tür | Açıklama |
|---|---|---|
assetType | string | Varlık türü: models, datasets, images, videos |
assetId | string | Hedef varlığın Kimliği |
filename | string | Orijinal dosya adı |
contentType | string | MIME türü |
totalBytes | int | Bayt cinsinden dosya boyutu |
Yanıt:
{
"sessionId": "session_abc123",
"uploadUrl": "https://storage.example.com/...",
"objectPath": "images/abc123/my-image.jpg",
"downloadUrl": "https://cdn.example.com/...",
"expiresAt": "2026-02-22T12:00:00Z"
}
Yüklemeyi Tamamla
POST /api/upload/complete
Platformu, bir dosya yüklemesinin tamamlandığı konusunda bilgilendirin, böylece işlemeye başlayabilir.
Gövde:
{
"datasetId": "abc123",
"objectPath": "datasets/abc123/images/my-image.jpg",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"size": 5242880
}
API Anahtarları API'si
API Anahtarlarını Listele
GET /api/api-keys
API Anahtarı Oluştur
POST /api/api-keys
Gövde:
{
"name": "training-server"
}
API Anahtarını Sil
DELETE /api/api-keys
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
keyId | string | İptal edilecek API anahtarı Kimliği |
Örnek:
curl -X DELETE \
-H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"
Ekipler ve Üyeler API'si
Çalışma alanı işbirliğini ekipler, üyeler ve davetiyelerle yönetin.
Ekipleri Listele
GET /api/teams
Takım Oluştur
POST /api/teams/create
Gövde:
{
"username": "my-team",
"fullName": "My Team"
}
Üyeleri Listele
GET /api/members
Mevcut çalışma alanının üyelerini döndürür.
Üye Davet Et
POST /api/members
Gövde:
{
"email": "user@example.com",
"role": "editor"
}
Üye Rolleri
| Rol | İzinler |
|---|---|
viewer | Çalışma alanı kaynaklarına salt okunur erişim |
editor | Kaynakları oluştur, düzenle ve sil |
admin | Üye yönetimi dahil tam erişim |
Kullanıcı arayüzündeki rol detayları için Ekipler bölümüne bakın.
Üye Rolünü Güncelle
PATCH /api/members/{userId}
Üyeyi Kaldır
DELETE /api/members/{userId}
Sahipliği Devret
POST /api/members/transfer-ownership
Davetiyeler
Daveti Kabul Et
POST /api/invites/accept
Davet Bilgisini Al
GET /api/invites/info
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
token | string | Davet jetonu |
Daveti İptal Et
DELETE /api/invites/{inviteId}
Daveti Yeniden Gönder
POST /api/invites/{inviteId}/resend
API'yi Keşfet
Herkese Açık İçeriği Ara
GET /api/explore/search
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
q | string | Arama sorgusu |
type | string | Kaynak türü: all (varsayılan), projects, datasets |
sort | string | Sıralama düzeni: stars (varsayılan), newest, oldest, name-asc, name-desc, count-desc, count-asc |
offset | int | Sayfalama ofseti (varsayılan: 0). Sonuçlar sayfa başına 20 öğe döndürür. |
Kenar Çubuğu Verileri
GET /api/explore/sidebar
Keşfet kenar çubuğu için derlenmiş içerik döndürür.
Kullanıcı ve Ayarlar API'leri
Kullanıcı Adına Göre Kullanıcıyı Getir
GET /api/users
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
username | string | Aranacak kullanıcı adı |
Kullanıcıyı Takip Et veya Takibi Bırak
PATCH /api/users
Gövde:
{
"username": "target-user",
"followed": true
}
Kullanıcı Adı Uygunluğunu Kontrol Et
GET /api/username/check
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
username | string | Kontrol edilecek kullanıcı adı |
suggest | bool | İsteğe bağlı: true alınırsa bir öneri eklemek için |
Ayarlar
GET /api/settings
POST /api/settings
Kullanıcı profili ayarlarını (görünen ad, biyografi, sosyal bağlantılar vb.) al veya güncelle.
Profil Simgesi
POST /api/settings/icon
DELETE /api/settings/icon
Profil avatarını yükle veya kaldır.
Kullanıcı Katılımı
POST /api/onboarding
Kullanıcı katılım akışını tamamla (veri bölgesi, kullanıcı adı ayarla).
GDPR API'si
Veri dışa aktarımı ve silme için GDPR uyumluluk uç noktaları.
GDPR İş Durumunu Al
GET /api/gdpr
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
jobId | string | Kontrol edilecek GDPR iş kimliği |
İş durumunu döndürür. Tamamlanmış dışa aktarma işleri için yanıt şunları içerir: downloadUrl.
Dışa Aktarma veya Silme Akışını Başlat
POST /api/gdpr
Gövde:
{
"action": "export"
}
{
"action": "delete",
"confirmationWord": "DELETE"
}
Ekip çalışma alanları için isteğe bağlı:
{
"action": "delete",
"confirmationWord": "DELETE",
"teamUsername": "my-team"
}
Geri Alınamaz Eylem
Hesap silme işlemi kalıcıdır ve geri alınamaz. Tüm veriler, modeller ve dağıtımlar silinecektir.
Hata Kodları
| Kod | HTTP Durumu | Açıklama |
|---|---|---|
UNAUTHORIZED | 401 | Geçersiz veya eksik API anahtarı |
FORBIDDEN | 403 | Yetersiz izinler |
NOT_FOUND | 404 | Kaynak bulunamadı |
VALIDATION_ERROR | 400 | Geçersiz istek verileri |
RATE_LIMITED | 429 | Çok fazla istek |
INTERNAL_ERROR | 500 | Sunucu hatası |
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ın.
Kurulum
pip install ultralytics
Kurulumu doğrulayın:
yolo check
Paket Sürüm Gereksinimi
Platform entegrasyonu ultralytics>=8.4.14 sürümünü gerektirir. Daha düşük sürümler Platform ile ÇALIŞMAZ.
Kimlik Doğrulama
yolo settings api_key=YOUR_API_KEY
export ULTRALYTICS_API_KEY=YOUR_API_KEY
from ultralytics import settings
settings.api_key = "YOUR_API_KEY"
Platform Veri Kümelerini Kullanma
Referans veri kümeleri ile ul:// URI'ler:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/your-dataset",
epochs=100,
imgsz=640,
)
URI Biçimi:
| Desen | Açıklama |
|---|---|
ul://username/datasets/slug | Veri Kümesi |
ul://username/project-name | Proje |
ul://username/project/model-name | Belirli model |
ul://ultralytics/yolo26/yolo26n | Resmi model |
Platforma Yükleme
Sonuçları bir Platform projesine gönderin:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
# Results automatically sync to Platform
model.train(
data="coco8.yaml",
epochs=100,
project="ul://your-username/my-project",
name="experiment-1",
)
Neler senkronize edilir:
- 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ükleyin:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")
Çıkarım çalıştırın:
results = model("image.jpg")
# Access results
for r in results:
boxes = r.boxes # Detection boxes
masks = r.masks # Segmentation masks
keypoints = r.keypoints # Pose keypoints
probs = r.probs # Classification probabilities
Modeli dışa aktarın:
# Export to ONNX
model.export(format="onnx", imgsz=640, half=True)
# Export to TensorRT
model.export(format="engine", imgsz=640, half=True)
# Export to CoreML
model.export(format="coreml", imgsz=640)
Doğrulama:
metrics = model.val(data="ul://username/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")
Webhook'lar
Web kancaları, HTTP POST geri çağrıları aracılığıyla sunucunuza Platform olaylarını bildirir:
| Olay | Açıklama |
|---|---|
training.started | Eğitim işi başlatıldı |
training.epoch | Epoch tamamlandı |
training.completed | Eğitim tamamlandı |
training.failed | Eğitim başarısız oldu |
export.completed | Dışa aktarmaya hazır |
Kurumsal Özellik
Özel web kancası uç noktaları Kurumsal planlarda mevcuttur. python SDK'sı için eğitim web kancaları tüm planlarda otomatik olarak çalışır.
SSS
Büyük sonuçları nasıl sayfalandırırım?
Çoğu uç nokta bir limit parametre kullanarak istek başına kaç sonuç döndürüleceğini kontrol eder:
curl -H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"
Etkinlik ve Çöp Kutusu uç noktaları ayrıca bir page parametre ile sayfa tabanlı sayfalama desteği sunar:
curl -H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"
Keşfet Arama uç noktası şunu kullanır: offset yerine page, sabit 20 sayfa boyutuyla:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"
API'yi bir SDK olmadan kullanabilir miyim?
Evet, tüm işlevler REST aracılığıyla kullanılabilir. Python , gerçek zamanlı metrik akışı ve otomatik model yüklemeleri gibi özellikler ekleyen kullanışlı bir sarmalayıcıdır.
API istemci kütüphaneleri mevcut mu?
Şu anda, Ultralytics python paketini kullanın veya doğrudan HTTP istekleri yapın. Diğer diller için resmi istemci kütüphaneleri planlanmaktadır.
Hız sınırlarını nasıl yönetirim?
Şunu kullanın: Retry-After Doğru miktarda beklemek için 429 yanıtından gelen başlık:
import time
import requests
def api_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code != 429:
return response
wait = int(response.headers.get("Retry-After", 2**attempt))
time.sleep(wait)
raise Exception("Rate limit exceeded")
Model veya veri kümesi kimliğimi nasıl bulurum?
Kaynak kimlikleri, API aracılığıyla kaynak oluşturduğunuzda döndürülür. Bunları platform URL'sinde de bulabilirsiniz:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project model
Ada göre arama yapmak veya projeye göre filtrelemek için liste uç noktalarını kullanın.