REST API
Ultralytics , veri kümelerine, modellere, eğitime ve dağıtımlara programlı erişim REST API 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
# Run inference on a model
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
https://platform.ultralytics.com/api/models/MODEL_ID/predict
Kimlik Doğrulama
Tüm API istekleri API anahtarı ile kimlik doğrulaması gerektirir.
API Anahtarını Al
- Ayarlar > API Anahtarları'na gidin.
- Anahtar Oluştur'u tıklayın
- Oluşturulan anahtarı kopyalayın
Ayrıntılı talimatlar için API Anahtarları bölümüne bakın.
Yetkilendirme Başlığı
Tüm isteklerde API anahtarınızı ekleyin:
Authorization: Bearer ul_your_api_key_here
Örnek
curl -H "Authorization: Bearer ul_abc123..." \
https://platform.ultralytics.com/api/datasets
Temel URL
Tüm API uç noktaları şunları kullanır:
https://platform.ultralytics.com/api
Hız Sınırları
| Plan | İstekler/Dakika | Talepler/Gün |
|---|---|---|
| Ücretsiz | 60 | 1,000 |
| Pro | 300 | 50,000 |
| Kurumsal | Özel | Özel |
Yanıtlara hız sınırı başlıkları eklenir:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 55
X-RateLimit-Reset: 1640000000
Yanıt Biçimi
Tüm yanıtlar JSON formatındadır:
{
"success": true,
"data": { ... },
"meta": {
"page": 1,
"limit": 20,
"total": 100
}
}
Hata Yanıtları
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid dataset ID",
"details": { ... }
}
}
Veri kümeleri API'si
Veri Kümelerini Listeleme
GET /api/datasets
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
page | int | Sayfa numarası (varsayılan: 1) |
limit | int | Sayfa başına öğe sayısı (varsayılan: 20) |
task | dize | Görev türüne göre filtrele |
Yanıt:
{
"success": true,
"data": [
{
"id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"task": "detect",
"imageCount": 1000,
"classCount": 10,
"visibility": "private",
"createdAt": "2024-01-15T10:00:00Z"
}
]
}
Veri Setini Al
GET /api/datasets/{datasetId}
Veri Kümesi Oluştur
POST /api/datasets
Gövde:
{
"name": "my-dataset",
"task": "detect",
"description": "A custom detection dataset"
}
Veri Kümesini Sil
DELETE /api/datasets/{datasetId}
Veri Setini Dışa Aktar
POST /api/datasets/{datasetId}/export
NDJSON formatında indirme URL'sini döndürür.
Projeler API
Projeleri Listele
GET /api/projects
Projeyi Al
GET /api/projects/{projectId}
Proje Oluştur
POST /api/projects
Gövde:
{
"name": "my-project",
"description": "Detection experiments"
}
Projeyi Sil
DELETE /api/projects/{projectId}
Modeller API
Liste Modelleri
GET /api/models
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
projectId | dize | Projeye göre filtrele |
task | dize | Görev türüne göre filtrele |
Modeli Al
GET /api/models/{modelId}
Model Yükle
POST /api/models
Çok Parçalı Form:
| Alan | Tür | Açıklama |
|---|---|---|
file | dosyası | Model .pt dosyası |
projectId | dize | Hedef proje |
name | dize | Model adı |
Modeli Sil
DELETE /api/models/{modelId}
Modeli İndir
GET /api/models/{modelId}/files
Model dosyaları için imzalanmış indirme URL'lerini döndürür.
Çı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ı |
conf | yüzmek | Güven eşiği |
iou | yüzmek | IoU |
Yanıt:
{
"success": true,
"predictions": [
{
"class": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
Eğitim API'si
Eğitime Başla
POST /api/training/start
Gövde:
{
"modelId": "model_abc123",
"datasetId": "dataset_xyz789",
"epochs": 100,
"imageSize": 640,
"gpuType": "rtx-4090"
}
Eğitim Durumunu Al
GET /api/models/{modelId}/training
Eğitimi İptal Et
DELETE /api/models/{modelId}/training
Dağıtımlar API
Liste Dağıtımları
GET /api/deployments
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
modelId | dize | Modele göre filtrele |
Dağıtım Oluştur
POST /api/deployments
Gövde:
{
"modelId": "model_abc123",
"region": "us-central1",
"minInstances": 0,
"maxInstances": 10
}
Dağıtım Alın
GET /api/deployments/{deploymentId}
Dağıtımı Başlat
POST /api/deployments/{deploymentId}/start
Dağıtımı Durdur
POST /api/deployments/{deploymentId}/stop
Dağıtımı Sil
DELETE /api/deployments/{deploymentId}
Metrikleri Al
GET /api/deployments/{deploymentId}/metrics
Günlükleri Al
GET /api/deployments/{deploymentId}/logs
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
severity | dize | BİLGİ, UYARI, HATA |
limit | int | Giriş sayısı |
Dışa Aktarma API'si
Liste İhracatı
GET /api/exports
Dışa Aktar Oluştur
POST /api/exports
Gövde:
{
"modelId": "model_abc123",
"format": "onnx"
}
Desteklenen Formatlar:
onnx, torchscript, openvino, tensorrt, coreml, tflite, saved_model, graphdef, paddle, ncnn, edgetpu, tfjs, mnn, rknn, imx, axelera, executorch
Dışa Aktarım Durumunu Al
GET /api/exports/{exportId}
Etkinlik API'si
Hesabınız için etkinlik olaylarını takip edin ve yönetin.
Etkinlik Listesi
GET /api/activity
Sorgu Parametreleri:
| Parametre | Tür | Açıklama |
|---|---|---|
startDate | dize | Tarihten filtrele (ISO) |
endDate | dize | Tarihe göre filtrele (ISO) |
search | dize | Olay mesajlarında arama yapın |
Görülen Etkinlikleri İşaretle
POST /api/activity/mark-seen
Arşiv Etkinlikleri
POST /api/activity/archive
Çöp API
Yumuşak silinmiş kaynakları yönetme (30 gün saklama süresi).
Çöp Kutusu Listesi
GET /api/trash
Öğeyi Geri Yükle
POST /api/trash
Gövde:
{
"itemId": "item_abc123",
"type": "dataset"
}
Çöp Kutusunu Boşalt
POST /api/trash/empty
Çöp kutusundaki tüm öğeleri kalıcı olarak siler.
Faturalandırma API'si
Kredileri ve abonelikleri yönetin.
Dengeyi Yakala
GET /api/billing/balance
Yanıt:
{
"success": true,
"data": {
"cashBalance": 5000000,
"creditBalance": 20000000,
"reservedAmount": 0,
"totalBalance": 25000000
}
}
Mikro-USD
Tüm tutarlar, kesin hesaplama için mikro ABD doları cinsindendir (1.000.000 = 1,00 $).
Kullanım Özetini Al
GET /api/billing/usage-summary
İade planı ayrıntılarını, limitleri ve kullanım ölçümlerini gösterir.
Ödeme Oturumu Oluştur
POST /api/billing/checkout-session
Gövde:
{
"amount": 25
}
Kredi satın alımı için Stripe ödeme oturumu oluşturur (5-1000 dolar).
Abonelik Ödeme Sayfası Oluştur
POST /api/billing/subscription-checkout
Pro aboneliği için Stripe ödeme oturumu oluşturur.
Portal Oturumu Oluştur
POST /api/billing/portal-session
Abonelik yönetimi için Stripe fatura portalına URL'yi döndürür.
Ödeme Geçmişini Al
GET /api/billing/payments
Stripe'den ödeme işlemlerinin listesini döndürür.
Depolama API'si
Depolama Bilgilerini Al
GET /api/storage
Yanıt:
{
"success": true,
"data": {
"used": 1073741824,
"limit": 107374182400,
"percentage": 1.0
}
}
GDPR API
Veri aktarımı ve silme için GDPR uyumluluk uç noktaları.
Hesap Verilerini Dışa Aktar/Sil
POST /api/gdpr
Gövde:
{
"action": "export"
}
| Eylem | Açıklama |
|---|---|
export | Tüm hesap verilerini indirin |
delete | Hesabı ve tüm verileri sil |
Geri Dönüşü Olmayan Eylem
Hesap silme işlemi kalıcıdır ve geri alınamaz. Tüm veriler, modeller ve dağıtımlar silinecektir.
API Anahtarları API
API Anahtarlarını Listele
GET /api/api-keys
API Anahtarı Oluştur
POST /api/api-keys
Gövde:
{
"name": "training-server",
"scopes": ["training", "models"]
}
API Anahtarını Sil
DELETE /api/api-keys/{keyId}
Hata Kodları
| Kod | Açıklama |
|---|---|
UNAUTHORIZED | Geçersiz veya eksik API anahtarı |
FORBIDDEN | Yetersiz izinler |
NOT_FOUND | Kaynak bulunamadı |
VALIDATION_ERROR | Geçersiz istek verileri |
RATE_LIMITED | Çok fazla istek var |
INTERNAL_ERROR | Sunucu hatası |
SDK Desteği
Daha kolay entegrasyon için Ultralytics Python kullanın.
Paket Sürümü Gereksinimi
Platform entegrasyonu için ultralytics>=8.4.0 sürümü gereklidir. Daha düşük sürümler Platform ile çalışmayacaktır.
pip install "ultralytics>=8.4.0"
import os
from ultralytics import YOLO
# Set API key
os.environ["ULTRALYTICS_API_KEY"] = "ul_your_key"
# Train with Platform integration
model = YOLO("yolo11n.pt")
model.train(data="ul://username/datasets/my-dataset", project="username/my-project", name="experiment-1", epochs=100)
Webhook'lar
Webhooks, sunucunuza Platform olaylarını bildirir:
| Etkinlik | Açıklama |
|---|---|
training.started | Eğitim işi başladı |
training.epoch | Epoch tamamlandı |
training.completed | Eğitim tamamlandı |
training.failed | Eğitim başarısız oldu |
export.completed | İhracat için hazır |
Webhook kurulumu Enterprise planlarında mevcuttur.
SSS
Büyük sonuçları nasıl sayfalara bölerim?
Kullanım page ve limit parametreler:
GET /api/datasets?page=2 &
limit=50
SDK olmadan API'yi kullanabilir miyim?
Evet, tüm işlevler REST aracılığıyla kullanılabilir. SDK, kullanışlı bir sarmalayıcıdır.
API istemci kitaplıkları var mı?
Şu anda, Ultralytics Python kullanın veya doğrudan HTTP istekleri yapın. Diğer diller için resmi istemci kitaplıkları planlanmaktadır.
Hız sınırlarını nasıl yönetirim?
Üstel geri çekilme uygulayın:
import time
def api_request_with_retry(url, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url)
if response.status_code != 429:
return response
wait = 2**attempt
time.sleep(wait)
raise Exception("Rate limit exceeded")