İçeriğe geç

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.

Ultralytics Platform API Genel Bakışı

Hızlı Başlangıç

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://platform.ultralytics.com/api/datasets

Etkileşimli API Belgeleri

Ultralytics API belgelerinde etkileşimli API kılavuzunun tamamını inceleyin.

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
KaynakAçıklamaAnahtar İşlemler
Veri KümeleriEtiketli görüntü koleksiyonlarıCRUD, görüntüler, etiketler, dışa aktarma, sürümler, klonlama
ProjelerEğitim çalışma alanlarıCRUD, klonlama, simge
ModellerEğitilmiş kontrol noktalarıCRUD, tahmin etme, indirme, klonlama, dışa aktarma
DağıtımlarÖzel çıkarım uç noktalarıCRUD, başlatma/durdurma, metrikler, günlükler, sağlık durumu
Dışa AktarmalarBiçim dönüştürme işleriOluşturma, durum, indirme
EğitimBulut GPU eğitim işleriBaşlatma, durum, iptal etme
FaturalandırmaKrediler ve aboneliklerBakiye, 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

  1. Git Settings > Profile (API Anahtarları bölümü)
  2. Tıklayın Create Key
  3. 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ı Biçimi

API anahtarları şu formatı kullanır ul_ ardından 40 onaltılık karakter gelir. Anahtarınızı gizli tutun; asla sürüm kontrolüne kaydetmeyin veya herkese 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ımı önlerken meşru kullanımı kısıtlamadan 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 limitler
  • IP Başına — IP adresi başına dakikada 100 istek, tüm /api/* yollarda (hem kimliği doğrulanmış hem de kimliği doğrulanmamış istekler için geçerlidir)

Kısıtlandığında, API döndürür 429 yeniden deneme meta verileriyle birlikte:

Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000Z

API Anahtarı Başına Limitler

Hız limitleri, çağrılan uç noktaya göre otomatik olarak uygulanır. Maliyetli işlemler, kötüye kullanımı önlemek için daha sıkı limitlere sahipken, standart CRUD işlemleri cömert bir varsayılanı paylaşır:

Uç NoktaLimitUygulanır
Varsayılan100 istek/dkAşağıda listelenmeyen tüm uç noktalar (listeleme, alma, oluşturma, güncelleme, silme)
Eğitim10 istek/dkBulut eğitim işlerini başlatma (POST /api/training/start)
Yükle10 istek/dkDosya yüklemeleri, imzalı URL'ler ve veri kümesi alımı
Tahmin et20 istek/dkPaylaşılan model çıkarımı (POST /api/models/{id}/predict)
Dışa aktar20 istek/dkModel formatı dışa aktarımları (POST /api/exports), veri seti NDJSON dışa aktarımları ve sürüm oluşturma
İndir30 istek/dakikaModel ağırlık dosyası indirmeleri (GET /api/models/{id}/download)
ÖzelSınırsızÖzel uç noktalar — kendi hizmetiniz, API sınırlaması 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 izninizi etkilemez.

Özel Uç Noktalar (Sınırsız)

Özel uç noktalar API anahtarı hız sınırlamalarına tabi değildir. Bir modeli özel bir uç noktaya dağıttığınızda, o uç nokta URL'sine yapılan istekler (örn., https://predict-abc123.run.app/predict) Platformdan herhangi bir hız sınırlaması olmaksızın doğrudan özel hizmetinize gider. Hesaplama için ödeme yaptığınızdan, uç noktanızın ölçeklendirme yapılandırmasına kadar sınırsız aktarım hızı elde edersiniz.

Hız Sınırı Yönetimi

Bir aldığınızda 429 durum kodu, şunu bekleyin: Retry-After (veya şuna kadar X-RateLimit-Reset) yeniden denemeden önce. Şuna bakın: hız sınırı SSS üstel geri çekilme (exponential backoff) uygulaması için.

Yanıt Biçimi

Başarılı Yanıtlar

Yanıtlar, kaynağa özgü alanlarla JSON döndürür:

{
    "datasets": [...],
    "total": 100
}

Hata Yanıtları

{
    "error": "Invalid dataset ID"
}
HTTP DurumuAnlamı
200Başarılı
201Oluşturulma Tarihi
400Geçersiz istek
401Kimlik doğrulama gerekli
403Yetersiz izinler
404Kaynak bulunamadı
409Çakışma (kopya)
429Hız sınırı aşıldı
500Sunucu hatası

Veri Kümeleri API'si

YOLO modellerini eğitmek için etiketli görüntü koleksiyonlarını yönetin.

Veri Kümelerini Listeleme

GET /api/datasets

Sorgu Parametreleri:

ParametreTürAçıklama
usernamestringKullanıcı adına göre filtrele
slugstringSlug'a göre tek bir veri kümesi getir
limitintSayfa başına öğe (varsayılan: 20, maks: 500)
ownerstringÇ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ölme 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 Kümesini 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 geçici olarak siler (çö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 etiketlerle veri kümesinin bir kopyasını oluşturur. Yalnızca herkese açık veri kümeleri klonlanabilir.

Gövde (tüm alanlar isteğe bağlıdır):

{
    "name": "cloned-dataset",
    "description": "My cloned dataset",
    "visibility": "private",
    "owner": "team-username"
}

Veri Kümesini Dışa Aktar

GET /api/datasets/{datasetId}/export

En son veri seti dışa aktarımı için imzalı bir indirme URL'si içeren bir JSON yanıtı döndürür.

Sorgu Parametreleri:

ParametreTürAçıklama
vtam sayıSürüm numarası (1'den başlayarak indekslenmiş). Atlanırsa, en son (önbelleğe alınmamış) dışa aktarımı döndürür.

Yanıt:

{
    "downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
    "cached": true
}

Veri Seti Sürümü Oluştur

POST /api/datasets/{datasetId}/export

Veri kümesinin yeni numaralandırılmış bir sürüm anlık görüntüsünü oluşturun. Yalnızca sahip. Sürüm, mevcut görüntü sayısını, sınıf sayısını, açıklama sayısını ve bölme dağılımını yakalar, ardından değişmez bir NDJSON dışa aktarımı oluşturur ve depolar.

İstek Gövdesi:

{
    "description": "Added 500 training images"
}

Tüm alanlar isteğe bağlıdır. description alanı, sürüm için kullanıcı tarafından sağlanan bir etikettir.

Yanıt:

{
    "version": 3,
    "downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}

Sürüm Açıklamasını Güncelle

PATCH /api/datasets/{datasetId}/export

Mevcut bir sürümün açıklamasını güncelleyin. Yalnızca sahip.

İstek Gövdesi:

{
    "version": 2,
    "description": "Fixed mislabeled classes"
}

Yanıt:

{
    "ok": 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 ö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
}

Veri Kümesi Üzerinde Eğitilmiş Modelleri Edinin

GET /api/datasets/{datasetId}/models

Bu veri kümesi 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 Kümesini Otomatik Etiketle

POST /api/datasets/{datasetId}/predict

Veri kümesi görüntülerinde YOLO çıkarımı yaparak otomatik olarak ek açıklamalar oluşturun. Etiketlenmemiş görüntüler için etiketleri tahmin etmek üzere seçilen bir model kullanır.

Gövde:

AlanTürGerekliAçıklama
imageHashstringEvetEtiketlenecek görüntünün hash'i
modelIdstringHayırÇıkarım için kullanılacak Model Kimliği
confidencefloatHayırGüven eşiği (varsayılan: 0.25)
ioufloatHayırIoU eşiği (varsayılan: 0.45)

Veri Kümesi Alımı

POST /api/datasets/ingest

Görüntü ve etiket içeren yüklenmiş 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:

ParametreTürAçıklama
splitstringBölmeye göre filtrele: train, val, test
offsetintSayfalama ofseti (varsayılan: 0)
limitintSayfa başına öğe sayısı (varsayılan: 50, maks: 5000)
sortstringSıralama düzeni: newest, oldest, name-asc, name-desc, size-asc, size-desc, labels-asc, labels-desc
hasLabelstringEtiket durumuna göre filtrele (true veya false)
hasErrorstringHata durumuna göre filtrele (true veya false)
searchstringDosya adına veya görüntü hash'ine göre ara
includeThumbnailsstringİmzalı küçük resim URL'lerini dahil et (varsayılan: true)
includeImageUrlsstringİmzalı tam görüntü URL'lerini dahil et (varsayılan: false)

İmzalı Görüntü URL'lerini Al

POST /api/datasets/{datasetId}/images/urls

Bir grup görüntü karması için imzalı URL'ler alın (tarayıcıda görüntülemek için).

Görüntüyü 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 ek 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 normalleştirilmiş biçimini kullanır: [x_center, y_center, width, height] burada tüm değerler 0 ile 1 arasındadır.

Toplu Görüntü İşlemleri

Bir veri kümesi içindeki bölmeler (eğitim/doğrulama/test) arasında görüntüleri taşıyın:

PATCH /api/datasets/{datasetId}/images/bulk

Toplu görüntü silme:

DELETE /api/datasets/{datasetId}/images/bulk

Projeler API'si

Modelleri bir araya getiren eğitim çalışma alanlarını yönetin.

Projeleri Listele

GET /api/projects

Sorgu Parametreleri:

ParametreTürAçıklama
usernamestringKullanıcı adına göre filtrele
limitintSayfa başına öğe
ownerstringÇ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şınır).

Projeyi Klonla

POST /api/projects/{projectId}/clone

Proje Simgesi

Bir proje simgesi yükleyin (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

Projelerdeki eğitilmiş model kontrol noktalarını yönetin.

Modelleri Listele

GET /api/models

Sorgu Parametreleri:

ParametreTürGerekliAçıklama
projectIdstringEvetProje Kimliği (gerekli)
fieldsstringHayırAlan kümesi: summary, charts
idsstringHayırVirgülle ayrılmış model kimlikleri
limitintHayırMaksimum sonuç (varsayılan 20, maksimum 100)

Tamamlanmış Modelleri Listele

GET /api/models/completed

Eğitimini tamamlamış 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:

AlanTürGerekliAçıklama
projectIdstringEvetHedef proje kimliği
slugstringHayırURL slug'ı (küçük harf alfanümerik/tireler)
namestringHayırGörünen ad (maks. 100 karakter)
descriptionstringHayırModel açıklaması (maks. 1000 karakter)
taskstringHayırGörev türü (detect, segment, pose, obb, classify)

Model Dosyası Yükleme

Model .pt dosya yüklemeleri ayrı olarak ele alınır. Model dosyalarını bir projeye sürükleyip bırakmak için platform kullanıcı arayüzünü kullanı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.

Modeli Klonla

POST /api/models/{modelId}/clone

Herkese açık bir modeli projelerinizden birine klonlayın.

Gövde:

{
    "targetProjectSlug": "my-project",
    "modelName": "cloned-model",
    "description": "Cloned from public model",
    "owner": "team-username"
}
AlanTürGerekliAçıklama
targetProjectSlugstringEvetHedef proje slug'ı
modelNamestringHayırKlonlanan model için ad
descriptionstringHayırModel açıklaması
ownerstringHayırEkip kullanıcı adı (çalışma alanı klonlama için)

İndirmeyi track et

POST /api/models/{modelId}/track-download

Model indirme analizlerini track edin.

Çıkarım Çalıştır

POST /api/models/{modelId}/predict

Çok Parçalı Form:

AlanTürAçıklama
filedosyasıGörüntü dosyası (JPEG, PNG, WebP)
conffloatGüven eşiği (varsayılan: 0.25)
ioufloatIoU eşiği (varsayılan: 0.7)
imgszintPiksel 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
    }
}

Tahmin Token'ını Al

POST /api/models/{modelId}/predict/token

Doğrudan tahmin istekleri için kısa ömürlü bir token alın. Token, istemci tarafı uygulamalardan daha düşük gecikmeli çıkarım için API proxy'sini atlar.

Modeli Isıtma

POST /api/models/{modelId}/predict/warmup

Daha hızlı ilk çıkarım için bir modeli önceden yükleyin. İlk istekteki 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 Türleri

Mevcut GPU türleri şunları içerir: rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000, ve 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, metriklerini ve ilerlemesini 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:

ParametreTürAçıklama
modelIdstringModele göre filtrele
statusstringDuruma göre filtrele
limitintMaksimum sonuç sayısı (varsayılan: 20, maks: 100)
ownerstringÇ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
    }
}
AlanTürGerekliAçıklama
modelIdstringEvetDağıtılacak model kimliği
namestringEvetDağıtım adı
regionstringEvetDağıtım bölgesi
resourcesnesneHayırKaynak 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ş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 tamamı 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

Durdurulmuş bir dağıtımı devam ettir.

Dağıtımı Durdur

POST /api/deployments/{deploymentId}/stop

Çalışan bir dağıtımı duraklat (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ır

POST /api/deployments/{deploymentId}/predict

Çıkarım için bir görüntüyü doğrudan bir dağıtım uç noktasına gönderin. İşlevsel olarak model tahminine eşdeğerdir, ancak daha düşük gecikme süresi için özel uç nokta üzerinden yönlendirilir.

Çok Parçalı Form:

AlanTürAçıklama
filedosyasıGörüntü dosyası (JPEG, PNG, WebP)
conffloatGüven eşiği (varsayılan: 0.25)
ioufloatIoU eşiği (varsayılan: 0.7)
imgszintPiksel cinsinden görüntü boyutu (varsayılan: 640)

Metrikleri Al

GET /api/deployments/{deploymentId}/metrics

İstek sayılarını, gecikme süresini ve hata oranı metriklerini sparkline verileriyle birlikte döndürür.

Sorgu Parametreleri:

ParametreTürAçıklama
rangestringZaman aralığı: 1h, 6h, 24h (varsayılan), 7d, 30d
sparklinestringŞuna ayarla true pano görünümü için optimize edilmiş sparkline verileri için

Logları Al

GET /api/deployments/{deploymentId}/logs

Sorgu Parametreleri:

ParametreTürAçıklama
severitystringVirgülle ayrılmış filtre: DEBUG, INFO, WARNING, ERROR, CRITICAL
limitintGirdi sayısı (varsayılan: 50, maks: 200)
pageTokenstringÖnceki yanıttan sayfalama belirteci

İzleme API'si

Toplu Metrikler

GET /api/monitoring

Tüm kullanıcı dağıtımları genelindeki toplu metrikleri döndürür: toplam istekler, aktif 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ş formatlara dönüştürün.

Dışa Aktarımları Listele

GET /api/exports

Sorgu Parametreleri:

ParametreTürAçıklama
modelIdstringModel kimliği (gerekli)
statusstringDuruma göre filtrele
limitintMaksimum sonuç sayısı (varsayılan: 20, maks: 100)

Dışa Aktarım Oluştur

POST /api/exports

Gövde:

AlanTürGerekliAçıklama
modelIdstringEvetKaynak model kimliği
formatstringEvetDışa aktarma formatı (aşağıdaki tabloya bakın)
gpuTypestringKoşulluŞu durumlarda gerekli format şudur engine (TensorRT)
argsnesneHayırDış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:

FormatDeğerKullanım Durumu
ONNXonnxÇapraz platform çıkarımı
TorchScripttorchscriptPyTorch dağıtımı
OpenVINOopenvinoIntel donanımı
TensorRTengineNVIDIA GPU optimizasyonu
CoreMLcoremlApple cihazları
TFLitetfliteMobil ve gömülü
TF SavedModelsaved_modelTensorFlow Serving
TF GraphDefpbTensorFlow dondurulmuş grafiği
PaddlePaddlepaddleBaidu PaddlePaddle
NCNNncnnMobil sinir ağı
Edge TPUedgetpuGoogle Coral cihazları
TF.jstfjsTarayıcı çıkarımı
MNNmnnAlibaba mobil çıkarımı
RKNNrknnRockchip NPU
IMXimxSony IMX500 sensörü
AxeleraaxeleraAxelera AI hızlandırıcıları
ExecuTorchexecutorchMeta ExecuTorch çalışma zamanı

Dışa Aktarım Durumunu Al

GET /api/exports/{exportId}

Dışa Aktarmayı İptal Et

DELETE /api/exports/{exportId}

Dışa Aktarma İndirmesini track Et

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:

ParametreTürAçıklama
limitintSayfa boyutu (varsayılan: 20, maksimum: 100)
pageintSayfa numarası (varsayılan: 1)
archivedbooleantrue Arşiv sekmesi için, false Gelen Kutusu için
searchstringOlay alanlarında büyük/küçük harf duyarsız 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:

ParametreTürAçıklama
typestringFiltre: all, project, dataset, model
pageintSayfa numarası (varsayılan: 1)
limitintSayfa başına öğe (varsayılan: 50, maks: 200)
ownerstringÇ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 alınamaz

Kalıcı silme 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.


Faturalandırma API'si

Kredileri, abonelikleri ve ödeme yöntemlerini yönetin.

Para Birimleri

Fatura tutarları sent kullanır (creditsCents) burada 100 = $1.00.

Bakiye Al

GET /api/billing/balance

Sorgu Parametreleri:

ParametreTürAçıklama
ownerstringÇ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 döndürür (en yeniden eskiye doğru).

Sorgu Parametreleri:

ParametreTürAçıklama
ownerstringÇalışma alanı sahibi kullanıcı adı

Ödeme Oturumu Oluştur

POST /api/billing/checkout-session

Gövde:

{
    "amount": 25,
    "owner": "team-username"
}
AlanTürGerekliAçıklama
amountsayıEvetDolar cinsinden miktar (5-1000 $)
ownerstringHayırÇalışma alanı 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"
}
AlanTürGerekliAçıklama
planIdstringEvetAbone olunacak plan (pro)
billingCyclestringHayırFaturalandırma döngüsü: monthly (varsayılan) veya yearly
ownerstringHayı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:

ParametreTürAçıklama
ownerstringÇ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
}
AlanTürAçıklama
assetTypestringVarlık türü: models, datasets, images, videos
assetIdstringHedef varlığın Kimliği
filenamestringOrijinal dosya adı
contentTypestringMIME türü
totalBytesintBayt 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:

ParametreTürAçıklama
keyIdstringİ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
editorKaynakları 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:

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

ParametreTürAçıklama
qstringArama sorgusu
typestringKaynak türü: all (varsayılan), projects, datasets
sortstringSıralama düzeni: stars (varsayılan), newest, oldest, name-asc, name-desc, count-desc, count-asc
offsetintSayfalama ofseti (varsayılan: 0). Sonuçlar sayfa başına 20 öğe döndürür.
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:

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

ParametreTürAçıklama
usernamestringKontrol edilecek kullanıcı adı
suggestboolİ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:

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

KodHTTP DurumuAçıklama
UNAUTHORIZED401Geçersiz veya eksik API anahtarı
FORBIDDEN403Yetersiz izinler
NOT_FOUND404Kaynak bulunamadı
VALIDATION_ERROR400Geçersiz istek verileri
RATE_LIMITED429Çok fazla istek
INTERNAL_ERROR500Sunucu 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:

DesenAçıklama
ul://username/datasets/slugVeri Kümesi
ul://username/project-nameProje
ul://username/project/model-nameBelirli model
ul://ultralytics/yolo26/yolo26nResmi 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:

OlayAçıklama
training.startedEğitim işi başlatıldı
training.epochEpoch tamamlandı
training.completedEğitim tamamlandı
training.failedEğitim başarısız oldu
export.completedDış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şlevsellik REST aracılığıyla kullanılabilir. Python SDK, gerçek zamanlı metrik akışı ve otomatik model yüklemeleri gibi özellikler ekleyen bir kolaylık sarmalayıcısı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.



📅 2 ay önce oluşturuldu ✏️ 5 gün önce güncellendi
glenn-jochermykolaxboikosergiuwaxmannLaughing-q

Yorumlar