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
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
| Kaynak | Açıklama | Anahtar İşlemler |
|---|---|---|
| Veri Kümeleri | Etiketli görüntü koleksiyonları | CRUD, görüntüler, etiketler, dışa aktarma, sürümler, klonlama |
| Projeler | Eğitim çalışma alanları | CRUD, klonlama, simge |
| Modeller | Eğ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 Aktarmalar | Biçim dönüştürme işleri | Oluşturma, durum, indirme |
| Eğitim | Bulut GPU eğitim işleri | Başlatma, durum, iptal etme |
| Faturalandırma | Krediler ve abonelikler | Bakiye, 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ı 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ç Nokta | Limit | Uygulanır |
|---|---|---|
| Varsayılan | 100 istek/dk | Aşağıda listelenmeyen tüm uç noktalar (listeleme, alma, oluşturma, güncelleme, silme) |
| Eğitim | 10 istek/dk | Bulut eğitim işlerini başlatma (POST /api/training/start) |
| Yükle | 10 istek/dk | Dosya yüklemeleri, imzalı URL'ler ve veri kümesi alımı |
| Tahmin et | 20 istek/dk | Paylaşılan model çıkarımı (POST /api/models/{id}/predict) |
| Dışa aktar | 20 istek/dk | Model formatı dışa aktarımları (POST /api/exports), veri seti NDJSON dışa aktarımları ve sürüm oluşturma |
| İ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ı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 Durumu | Anlamı |
|---|---|
200 | Başarılı |
201 | Oluşturulma Tarihi |
400 | Geçersiz istek |
401 | Kimlik doğrulama gerekli |
403 | Yetersiz izinler |
404 | Kaynak bulunamadı |
409 | Çakışma (kopya) |
429 | Hız sınırı aşıldı |
500 | Sunucu 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:
| Parametre | Tür | Açıklama |
|---|---|---|
username | string | Kullanıcı adına göre filtrele |
slug | string | Slug'a göre tek bir veri kümesi getir |
limit | int | Sayfa başına öğe (varsayılan: 20, maks: 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ö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:
| Parametre | Tür | Açıklama |
|---|---|---|
v | tam 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:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
imageHash | string | Evet | Etiketlenecek görüntünün hash'i |
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 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:
| Parametre | Tür | Açıklama |
|---|---|---|
split | string | Bölmeye göre filtrele: train, val, test |
offset | int | Sayfalama ofseti (varsayılan: 0) |
limit | int | Sayfa başına öğe sayısı (varsayılan: 50, maks: 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 ara |
includeThumbnails | string | İmzalı küçük resim URL'lerini dahil et (varsayılan: true) |
includeImageUrls | string | İ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:
| Parametre | Tür | Açıklama |
|---|---|---|
username | string | Kullanıcı adına göre filtrele |
limit | int | Sayfa başına öğe |
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şı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:
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
projectId | string | Evet | Proje Kimliği (gerekli) |
fields | string | Hayır | Alan kümesi: summary, charts |
ids | string | Hayır | Virgülle ayrılmış model kimlikleri |
limit | int | Hayır | Maksimum 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:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
projectId | string | Evet | Hedef proje kimliği |
slug | string | Hayır | URL slug'ı (küçük harf alfanümerik/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, 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"
}
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
targetProjectSlug | string | Evet | Hedef proje slug'ı |
modelName | string | Hayır | Klonlanan model için ad |
description | string | Hayır | Model açıklaması |
owner | string | Hayır | Ekip 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:
| 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 eşiği (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
}
}
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:
| 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, maks: 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ç 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:
| 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 eşiği (varsayılan: 0.7) |
imgsz | int | Piksel 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:
| Parametre | Tür | Açıklama |
|---|---|---|
range | string | Zaman aralığı: 1h, 6h, 24h (varsayılan), 7d, 30d |
sparkline | string | Ş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:
| Parametre | Tür | Açıklama |
|---|---|---|
severity | string | Virgülle ayrılmış filtre: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | int | Girdi sayısı (varsayılan: 50, maks: 200) |
pageToken | string | Ö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:
| 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, maks: 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 formatı (aşağıdaki tabloya bakın) |
gpuType | string | Koşullu | Şu durumlarda gerekli 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 donanımı |
| TensorRT | engine | NVIDIA GPU optimizasyonu |
| CoreML | coreml | Apple cihazları |
| TFLite | tflite | Mobil ve gömülü |
| TF SavedModel | saved_model | TensorFlow Serving |
| TF GraphDef | pb | TensorFlow dondurulmuş grafiği |
| PaddlePaddle | paddle | Baidu PaddlePaddle |
| NCNN | ncnn | Mobil sinir ağı |
| Edge TPU | edgetpu | Google Coral 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 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:
| 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 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:
| 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 (varsayılan: 50, maks: 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 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:
| 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 döndürür (en yeniden eskiye doğru).
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 miktar (5-1000 $) |
owner | string | Hayı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"
}
| 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ş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.