İçeriğe geç

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

  1. Ayarlar > API Anahtarları'na gidin.
  2. Anahtar Oluştur'u tıklayın
  3. 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/DakikaTalepler/Gün
Ücretsiz601,000
Pro30050,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:

ParametreTürAçıklama
pageintSayfa numarası (varsayılan: 1)
limitintSayfa başına öğe sayısı (varsayılan: 20)
taskdizeGö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:

ParametreTürAçıklama
projectIddizeProjeye göre filtrele
taskdizeGörev türüne göre filtrele

Modeli Al

GET /api/models/{modelId}

Model Yükle

POST /api/models

Çok Parçalı Form:

AlanTürAçıklama
filedosyasıModel .pt dosyası
projectIddizeHedef proje
namedizeModel 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:

AlanTürAçıklama
filedosyasıGörüntü dosyası
confyüzmekGüven eşiği
iouyüzmekIoU

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:

ParametreTürAçıklama
modelIddizeModele 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:

ParametreTürAçıklama
severitydizeBİLGİ, UYARI, HATA
limitintGiriş 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:

ParametreTürAçıklama
startDatedizeTarihten filtrele (ISO)
endDatedizeTarihe göre filtrele (ISO)
searchdizeOlay 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"
}
EylemAçıklama
exportTüm hesap verilerini indirin
deleteHesabı 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ı

KodAçıklama
UNAUTHORIZEDGeçersiz veya eksik API anahtarı
FORBIDDENYetersiz izinler
NOT_FOUNDKaynak bulunamadı
VALIDATION_ERRORGeçersiz istek verileri
RATE_LIMITEDÇok fazla istek var
INTERNAL_ERRORSunucu 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:

EtkinlikAçıklama
training.startedEğitim işi başladı
training.epochEpoch tamamlandı
training.completedEğitim tamamlandı
training.failedEğ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")


📅 0 gün önce oluşturuldu ✏️ 0 gün önce güncellendi
glenn-jocher

Yorumlar