REST APIリファレンス
Ultralytics Platformは、データセット、モデル、トレーニング、デプロイメントへのプログラムによるアクセスを可能にする包括的なREST APIを提供します。

クイックスタート
# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasets
API概要
APIはコアプラットフォームリソースを中心に構成されています:
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
| リソース | 説明 | 主要業務 |
|---|---|---|
| データセット | ラベル付き画像コレクション | CRUD、画像、ラベル、エクスポート、クローン |
| プロジェクト | トレーニングワークスペース | CRUD、クローン、アイコン |
| モデル | 訓練済みチェックポイント | CRUD操作、予測、ダウンロード、クローン、エクスポート |
| デプロイ | 専用推論エンドポイント | CRUD、起動/停止、メトリクス、ログ、ヘルス |
| エクスポート | フォーマット変換ジョブ | 作成、ステータス、ダウンロード |
| 学習 | クラウドGPUGPU ジョブ | 開始、状態、キャンセル |
| 請求 | クレジットとサブスクリプション | 残高、チャージ、支払い方法 |
| チーム | ワークスペースでの共同作業 | メンバー、招待、役割 |
認証
ほとんどのAPIリクエストにはAPIキーによる認証が必要です。公開エンドポイント(公開データセット、プロジェクト、モデルのリスト表示)は、キーなしで匿名での読み取りアクセスをサポートしています。
APIキーの取得
- 行く
Settings>Profile(APIキーセクション) - クリック
Create Key - 生成されたキーをコピーします。
詳細な手順については、APIキーを参照してください。
認証ヘッダー
すべてのリクエストにAPキーを含める:
Authorization: Bearer ul_your_api_key_here
APIキーの形式
APIキーは次の形式を使用します ul_ 40文字の16進数が続きます。鍵は秘密にしておいてください。バージョン管理にコミットしたり、公開したりしないでください。
例
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();
ベースURL
すべてのAPエンドポイントは以下を使用します:
https://platform.ultralytics.com/api
レート制限
APIは、不正利用から保護しつつ正当な利用を制限しないよう、二層式のレート制限システムを採用しています:
- APIキーごと— 認証済みリクエストに対して、APIキーごとに制限が適用されます
- IPあたり — 全てのIPアドレスにつき1分あたり100リクエスト
/api/*パス(認証済みリクエストと未認証リクエストの両方に適用されます)
スロットリングされた場合、APIは 429 再試行メタデータ付き:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000Z
APIキーの制限
レート制限は呼び出されるエンドポイントに基づいて自動的に適用されます。負荷の高い操作には悪用防止のためより厳しい制限が設けられ、標準的なCRUD操作には寛大なデフォルト値が共有されます:
| エンドポイント | 制限 | 適用対象 |
|---|---|---|
| デフォルト | 100リクエスト/分 | 以下に列挙されていないすべてのエンドポイント(list、get、create、update、delete) |
| 学習 | 10リクエスト/分 | クラウドトレーニング業務の開始POST /api/training/start) |
| アップロード | 10リクエスト/分 | ファイルアップロード、署名付きURL、およびデータセット取り込み |
| 予測 | 20リクエスト/分 | 共有モデル推論POST /api/models/{id}/predict) |
| エクスポート | 20リクエスト/分 | モデル形式のエクスポートPOST /api/exports) およびデータセット NDJSON エクスポート |
| ダウンロード | 30リクエスト/分 | モデル重量ファイルのダウンロード (GET /api/models/{id}/download) |
| 専用 | 無制限 | 専用エンドポイント— 独自のサービス、API制限なし |
各カテゴリにはAPIキーごとに独立したカウンターが設定されています。例えば、20回の予測リクエストを実行しても、1分あたり100リクエストというデフォルトの許容量には影響しません。
専用エンドポイント(無制限)
専用エンドポイント である APIキーのレート制限の対象外モデルを専用エンドポイントにデプロイすると、そのエンドポイントURL(例: https://predict-abc123.run.app/predictプラットフォームからのレート制限なしで、専用サービスに直接アクセスできます。コンピューティングリソースに対して課金されるため、エンドポイントのスケーリング構成の上限まで無制限のスループットが得られます。
レート制限の処理
あなたが受け取ったとき 429 ステータスコード、待機 Retry-After (または~まで) X-RateLimit-Reset再試行する前に。参照: レート制限に関するよくある質問 指数バックオフの実装のために。
応答形式
成功応答
レスポンスはリソース固有のフィールドを含むJSONを返します:
{
"datasets": [...],
"total": 100
}
エラー応答
{
"error": "Invalid dataset ID"
}
| HTTPステータス | 意味 |
|---|---|
200 | 成功 |
201 | 作成 |
400 | 無効なリクエスト |
401 | 認証が必要です |
403 | 権限不足 |
404 | リソースが見つかりません |
409 | 衝突(重複) |
429 | レート制限を超えました |
500 | サーバーエラー |
データセットAPI
YOLO トレーニング用にラベル付き画像コレクションを管理する。
データセットのリスト表示
GET /api/datasets
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
username | string | ユーザー名でフィルタリング |
slug | string | スラッグで単一データセットを取得する |
limit | int | 1ページあたりの表示件数(デフォルト: 20件、最大: 500件) |
owner | string | ワークスペース所有者のユーザー名 |
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")
レスポンス:
{
"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"
}
データセットの取得
GET /api/datasets/{datasetId}
メタデータ、クラス名、分割カウントを含む完全なデータセットの詳細を返します。
データセットの作成
POST /api/datasets
ボディ:
{
"slug": "my-dataset",
"name": "My Dataset",
"task": "detect",
"description": "A custom detection dataset",
"visibility": "private",
"classNames": ["person", "car"]
}
サポートされているタスク
有効 task 値: detect, segment, classify, pose, obb.
データセットの更新
PATCH /api/datasets/{datasetId}
本文(部分更新):
{
"name": "Updated Name",
"description": "New description",
"visibility": "public"
}
データセットの削除
DELETE /api/datasets/{datasetId}
データセットをソフト削除(ごみ箱に移動、30日間復元可能)。
データセットをクローンする
POST /api/datasets/{datasetId}/clone
データセットの全画像とラベルを含むコピーを作成します。公開データセットのみ複製可能です。
本文(すべての項目は任意):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}
データセットのエクスポート
GET /api/datasets/{datasetId}/export
データセットのエクスポートファイルの署名付きダウンロードURLを含むJSONレスポンスを返します。
レスポンス:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}
クラス統計を取得する
GET /api/datasets/{datasetId}/class-stats
クラス分布、位置ヒートマップ、および次元統計を返します。結果は最大5分間キャッシュされます。
レスポンス:
{
"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
}
データセットでモデルを学習させる
GET /api/datasets/{datasetId}/models
このデータセットを使用して訓練されたモデルを返します。
レスポンス:
{
"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
}
自動アノテーションデータセット
POST /api/datasets/{datasetId}/predict
データセット画像に対してYOLO を実行し、アノテーションを自動生成します。選択したモデルを使用して、未アノテーション画像のラベルを予測します。
ボディ:
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
imageHash | string | はい | 注釈を付ける画像のハッシュ値 |
modelId | string | いいえ | 推論に使用するモデルID |
confidence | float | いいえ | 信頼度しきい値(デフォルト: 0.25) |
iou | float | いいえ | IoU (デフォルト: 0.45) |
データセット取り込み
POST /api/datasets/ingest
アップロードされた画像とラベルを含むZIPファイルを処理するためのデータセット取り込みジョブを作成します。
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]
データセット画像
画像一覧
GET /api/datasets/{datasetId}/images
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
split | string | 分割によるフィルタリング: train, val, test |
offset | int | ページネーションオフセット(デフォルト: 0) |
limit | int | 1ページあたりの表示件数(デフォルト: 50件、最大: 5000件) |
sort | string | 並べ替え順序: newest, oldest, name-asc, name-desc, size-asc, size-desc, labels-asc, labels-desc |
hasLabel | string | ラベルステータスでフィルタリング (true または false) |
hasError | string | エラー状態によるフィルタリング (true または false) |
search | string | ファイル名または画像ハッシュで検索 |
includeThumbnails | string | 署名付きサムネイルURLを含める(デフォルト: true) |
includeImageUrls | string | 署名付き完全画像URLを含める(デフォルト: false) |
署名付き画像のURLを取得する
POST /api/datasets/{datasetId}/images/urls
画像ハッシュのバッチに対して署名付きURLを取得する(ブラウザでの表示用)。
画像を削除
DELETE /api/datasets/{datasetId}/images/{hash}
画像ラベルを取得する
GET /api/datasets/{datasetId}/images/{hash}/labels
特定の画像に対するアノテーションとクラス名を返します。
画像ラベルを更新する
PUT /api/datasets/{datasetId}/images/{hash}/labels
ボディ:
{
"labels": [{ "classId": 0, "bbox": [0.5, 0.5, 0.2, 0.3] }]
}
座標形式
バウンディングボックスYOLO 形式を使用します: [x_center, y_center, width, height] すべての値が0から1の間に収まる。
一括画像操作
データセット内の分割(訓練/評価/テスト)間で画像を移動する:
PATCH /api/datasets/{datasetId}/images/bulk
画像の一括削除:
DELETE /api/datasets/{datasetId}/images/bulk
プロジェクトAPI
モデルをグループ化するトレーニングワークスペースを管理する。
プロジェクトの一覧表示
GET /api/projects
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
username | string | ユーザー名でフィルタリング |
limit | int | 1ページあたりの項目数 |
owner | string | ワークスペース所有者のユーザー名 |
プロジェクトの取得
GET /api/projects/{projectId}
プロジェクトを作成します
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"]
プロジェクトを更新する
PATCH /api/projects/{projectId}
プロジェクトの削除
DELETE /api/projects/{projectId}
プロジェクトをソフト削除(ごみ箱に移動)します。
クローンプロジェクト
POST /api/projects/{projectId}/clone
プロジェクト・アイコン
プロジェクトアイコンをアップロード(画像ファイルを含むマルチパートフォーム):
POST /api/projects/{projectId}/icon
プロジェクトアイコンを削除する:
DELETE /api/projects/{projectId}/icon
モデルAPI
プロジェクト内で学習済みモデルのチェックポイントを管理する。
モデルの一覧表示
GET /api/models
クエリパラメータ:
| パラメータ | 種類 | 必要 | 説明 |
|---|---|---|---|
projectId | string | はい | プロジェクトID(必須) |
fields | string | いいえ | フィールドセット: summary, charts |
ids | string | いいえ | カンマ区切りのモデルID |
limit | int | いいえ | 最大結果数(デフォルト20、最大100) |
完成モデル一覧
GET /api/models/completed
トレーニングが完了したモデルを返します(モデルセレクターやデプロイメントで使用するため)。
モデルの取得
GET /api/models/{modelId}
モデルを作成する
POST /api/models
JSON本文:
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
projectId | string | はい | 対象プロジェクトID |
slug | string | いいえ | URLスラッグ(小文字の英数字/ハイフン) |
name | string | いいえ | 表示名(最大100文字) |
description | string | いいえ | モデル説明(最大1000文字) |
task | string | いいえ | タスクタイプ(detect、segment、姿勢推定、obb、classify) |
モデルファイルアップロード
モデル .pt ファイルのアップロードは別途処理されます。プラットフォームのUIを使用して、モデルファイルをプロジェクトにドラッグアンドドロップしてください。
モデルを更新する
PATCH /api/models/{modelId}
モデルの削除
DELETE /api/models/{modelId}
モデルファイルをダウンロード
GET /api/models/{modelId}/files
モデルファイル用の署名付きダウンロードURLを返します。
クローンモデル
POST /api/models/{modelId}/clone
公開モデルをプロジェクトの1つに複製する。
ボディ:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
targetProjectSlug | string | はい | 目的プロジェクトスラグ |
modelName | string | いいえ | クローンモデルの名称 |
description | string | いいえ | モデル説明 |
owner | string | いいえ | チームユーザー名(ワークスペースのクローン作成用) |
トラックダウンロード
POST /api/models/{modelId}/track-download
トラックモデルのダウンロード分析。
推論の実行
POST /api/models/{modelId}/predict
マルチパートフォーム:
| フィールド | 種類 | 説明 |
|---|---|---|
file | ファイル | 画像ファイル(JPEG、PNG、WebP) |
conf | float | 信頼度しきい値(デフォルト: 0.25) |
iou | float | IoU (デフォルト: 0.7) |
imgsz | int | 画像サイズ(ピクセル単位)(デフォルト: 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"]
レスポンス:
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}
Predictトークンを取得する
POST /api/models/{modelId}/predict/token
直接予測リクエスト用の短命トークンを取得します。このトークンはAPIプロキシをバイパスし、クライアントサイドアプリケーションからの低遅延推論を実現します。
ウォームアップモデル
POST /api/models/{modelId}/predict/warmup
モデルをプリロードして初回推論を高速化します。予測実行前にこれを呼び出すことで、最初のリクエストでの遅延を回避できます。
トレーニングAPI
クラウドトレーニングジョブを開始、監視、およびキャンセルします。
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]
学習を開始
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
利用可能なGPU 以下が含まれます rtx-4090, a100-80gb-pcie, a100-80gb-sxm, h100-sxm, rtx-pro-6000、その他。参照 クラウドトレーニング 価格付きの完全なリストについては。
トレーニングステータスの取得
GET /api/models/{modelId}/training
モデルの現在のトレーニングジョブのステータス、メトリクス、および進行状況を返します。
トレーニングのキャンセル
DELETE /api/models/{modelId}/training
実行中のコンピューティングインスタンスを終了し、ジョブをキャンセル済みとしてマークします。
デプロイメントAP
専用の推論エンドポイントを作成および管理する。
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]
デプロイメントを一覧表示
GET /api/deployments
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
modelId | string | モデルでフィルタ |
status | string | ステータスでフィルタリング |
limit | int | 最大結果数(デフォルト: 20、最大: 100) |
owner | string | ワークスペース所有者のユーザー名 |
デプロイメントを作成
POST /api/deployments
ボディ:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
modelId | string | はい | デプロイするモデルID |
name | string | はい | デプロイメント名 |
region | string | はい | デプロイリージョン |
resources | オブジェクト | いいえ | リソース構成(cpu、メモリGi、最小インスタンス数、最大インスタンス数) |
指定されたリージョンに専用の推論エンドポイントを作成します。このエンドポイントは一意のURLを介してグローバルにアクセス可能です。
領域選択
ユーザーに近いリージョンを選択して、レイテンシーを最小限に抑えてください。プラットフォームのUIでは、利用可能な全43リージョンのレイテンシー推定値が表示されます。
デプロイメントを取得
GET /api/deployments/{deploymentId}
デプロイメントを削除
DELETE /api/deployments/{deploymentId}
デプロイメントを開始
POST /api/deployments/{deploymentId}/start
停止したデプロイを再開する。
デプロイメントを停止
POST /api/deployments/{deploymentId}/stop
実行中のデプロイを一時停止する(課金停止)。
ヘルスチェック
GET /api/deployments/{deploymentId}/health
デプロイメントエンドポイントの健全性状態を返します。
デプロイメント上で推論を実行する
POST /api/deployments/{deploymentId}/predict
推論のために画像をデプロイメントエンドポイントに直接送信します。機能的にはモデル予測と同等ですが、専用エンドポイントを経由するためレイテンシが低減されます。
マルチパートフォーム:
| フィールド | 種類 | 説明 |
|---|---|---|
file | ファイル | 画像ファイル(JPEG、PNG、WebP) |
conf | float | 信頼度しきい値(デフォルト: 0.25) |
iou | float | IoU (デフォルト: 0.7) |
imgsz | int | 画像サイズ(ピクセル単位)(デフォルト: 640) |
メトリクスを取得
GET /api/deployments/{deploymentId}/metrics
リクエスト数、レイテンシ、エラー率のメトリクスをスパークラインデータと共に返します。
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
range | string | 時間範囲: 1h, 6h, 24h (デフォルト), 7d, 30d |
sparkline | string | 設定する true ダッシュボード表示用に最適化されたスパークラインデータ |
ログを取得
GET /api/deployments/{deploymentId}/logs
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
severity | string | カンマ区切りフィルター: DEBUG, INFO, WARNING, ERROR, CRITICAL |
limit | int | エントリ数(デフォルト: 50、最大: 200) |
pageToken | string | 前のレスポンスからのページネーショントークン |
監視API
集計メトリクス
GET /api/monitoring
すべてのユーザーデプロイメントにわたる集計メトリクスを返します:総リクエスト数、アクティブなデプロイメント数、エラー率、平均レイテンシ。
エクスポートAP
モデルをエッジデプロイメント向けに最適化された形式に変換する。
エクスポートを一覧表示
GET /api/exports
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
modelId | string | モデルID(必須) |
status | string | ステータスでフィルタリング |
limit | int | 最大結果数(デフォルト: 20、最大: 100) |
エクスポートを作成
POST /api/exports
ボディ:
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
modelId | string | はい | ソースモデルID |
format | string | はい | エクスポート形式(下記表参照) |
gpuType | string | 条件付き | 必要な場合 format は engine (TensorRT) |
args | オブジェクト | いいえ | 引数をエクスポートする (imgsz, half, dynamicなど |
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"]
サポートされている形式:
| 形式 | 値 | ユースケース |
|---|---|---|
| ONNX | onnx | クロスプラットフォーム推論 |
| TorchScript | torchscript | PyTorchデプロイメント |
| OpenVINO | openvino | Intel |
| TensorRT | engine | NVIDIA GPU |
| CoreML | coreml | Appleデバイス |
| TFLite | tflite | モバイルおよび組み込み |
| TF SavedModel | saved_model | TensorFlow |
| TF GraphDef | pb | TensorFlow |
| PaddlePaddle | paddle | 百度PaddlePaddlePaddle |
| NCNN | ncnn | 移動型ニューラルネットワーク |
| Edge TPU | edgetpu | Google デバイス |
| TF.js | tfjs | ブラウザの推測 |
| MNN | mnn | アリババモバイル推論 |
| RKNN | rknn | Rockchip NPU |
| IMX | imx | ソニー IMX500 センサー |
| Axelera | axelera | アクセレラAIアクセラレータ |
| ExecuTorch | executorch | Meta ExecuTorch ランタイム |
エクスポートステータスを取得
GET /api/exports/{exportId}
エクスポートをキャンセル
DELETE /api/exports/{exportId}
トラックエクスポートダウンロード
POST /api/exports/{exportId}/track-download
アクティビティAP
アカウントのアクティビティイベントをtrackし、管理します。
アクティビティを一覧表示
GET /api/activity
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
limit | int | ページサイズ(デフォルト:20、最大:100) |
page | int | ページ番号 (デフォルト: 1) |
archived | ブーリアン | true アーカイブタブ用 false 受信トレイ用 |
search | string | イベントフィールドでの大文字小文字を区別しない検索 |
イベントを既読にする
POST /api/activity/mark-seen
ボディ:
{
"all": true
}
または特定のIDを渡す:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"]
}
イベントをアーカイブ
POST /api/activity/archive
ボディ:
{
"all": true,
"archive": true
}
または特定のIDを渡す:
{
"eventIds": ["EVENT_ID_1", "EVENT_ID_2"],
"archive": false
}
ゴミ箱AP
論理削除されたリソースを管理します (30日間保持)。
ゴミ箱を一覧表示
GET /api/trash
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
type | string | フィルター: all, project, dataset, model |
page | int | ページ番号 (デフォルト: 1) |
limit | int | 1ページあたりの項目数(デフォルト: 50、最大: 200) |
owner | string | ワークスペース所有者のユーザー名 |
アイテムを復元
POST /api/trash
ボディ:
{
"id": "item_abc123",
"type": "dataset"
}
アイテムを完全に削除する
DELETE /api/trash
ボディ:
{
"id": "item_abc123",
"type": "dataset"
}
不可逆的
完全削除は元に戻せません。リソースと関連するすべてのデータが削除されます。
ゴミ箱を空にする
DELETE /api/trash/empty
ゴミ箱内のすべてのアイテムを完全に削除します。
請求API
クレジット、サブスクリプション、および支払い方法を管理する。
通貨単位
請求金額はセント単位で表示されます(creditsCents) どこで 100 = $1.00.
残高を取得
GET /api/billing/balance
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
owner | string | ワークスペース所有者のユーザー名 |
レスポンス:
{
"creditsCents": 2500,
"plan": "free",
"cashBalance": 25,
"creditBalance": 0,
"reservedAmount": 0,
"totalBalance": 25
}
使用状況の概要を取得
GET /api/billing/usage-summary
プランの詳細、制限、および使用状況メトリクスを返します。
取引を取得する
GET /api/billing/transactions
取引履歴を返します(最新のものが最初に表示されます)。
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
owner | string | ワークスペース所有者のユーザー名 |
チェックアウトセッションを作成
POST /api/billing/checkout-session
ボディ:
{
"amount": 25,
"owner": "team-username"
}
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
amount | 番号 | はい | 金額(ドル)(5ドル~1000ドル) |
owner | string | いいえ | ワークスペースの追加購入用チームユーザー名(管理者ロールが必要) |
クレジット購入用のチェックアウトセッションを作成します。
サブスクリプションチェックアウトを作成
POST /api/billing/subscription-checkout
Proサブスクリプションのアップグレード用チェックアウトセッションを作成します。
ボディ:
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}
| フィールド | 種類 | 必要 | 説明 |
|---|---|---|---|
planId | string | はい | (に)登録する計画pro) |
billingCycle | string | いいえ | 請求サイクル: monthly (デフォルト) または yearly |
owner | string | いいえ | ワークスペースのアップグレード用チームユーザー名(管理者ロールが必要) |
ポータルセッションを作成
POST /api/billing/portal-session
サブスクリプション管理のための課金ポータルへのURLを返します。
自動チャージ
残高が閾値を下回った場合に自動的にクレジットを追加する。
自動トップアップ設定を取得
GET /api/billing/auto-topup
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
owner | string | ワークスペース所有者のユーザー名 |
自動トップアップ設定の更新
PATCH /api/billing/auto-topup
ボディ:
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}
支払い方法
支払い方法の一覧
GET /api/billing/payment-methods
セットアップインテントを作成する
POST /api/billing/payment-methods/setup
新しい支払い方法を追加するためのクライアントシークレットを返します。
デフォルトの支払い方法を設定する
POST /api/billing/payment-methods/default
ボディ:
{
"paymentMethodId": "pm_123"
}
請求情報の更新
PATCH /api/billing/payment-methods
ボディ:
{
"name": "Jane Doe",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US"
}
}
支払い方法を削除
DELETE /api/billing/payment-methods/{id}
ストレージAPI
ストレージ情報を取得
GET /api/storage
レスポンス:
{
"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"
}
]
}
}
ストレージの再計算
POST /api/storage
ストレージ使用量の再計算をトリガーします。
アップロードAPI
直接ファイルアップロードでは、2段階の署名付きURLフローを使用します。
署名付きアップロードURLを取得
POST /api/upload/signed-url
クラウドストレージにファイルを直接アップロードするための署名付きURLをリクエストします。署名付きURLは、大容量ファイル転送においてAPIサーバーを経由せずに直接アクセスします。
ボディ:
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}
| フィールド | 種類 | 説明 |
|---|---|---|
assetType | string | 資産タイプ: models, datasets, images, videos |
assetId | string | 対象資産のID |
filename | string | 元のファイル名 |
contentType | string | MIMEタイプ |
totalBytes | int | ファイルサイズ(バイト単位) |
レスポンス:
{
"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"
}
アップロード完了
POST /api/upload/complete
ファイルのアップロードが完了したことをプラットフォームに通知し、処理を開始できるようにする。
ボディ:
{
"datasetId": "abc123",
"objectPath": "datasets/abc123/images/my-image.jpg",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"size": 5242880
}
APIキーAPI
APIキーを一覧表示
GET /api/api-keys
APIキーを作成
POST /api/api-keys
ボディ:
{
"name": "training-server"
}
APIキーを削除
DELETE /api/api-keys
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
keyId | string | 失効させるAPIキーID |
例:
curl -X DELETE \
-H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"
チームとメンバー API
チーム、メンバー、招待者とのワークスペースの共同作業を管理する。
チーム一覧
GET /api/teams
チームを作成します
POST /api/teams/create
ボディ:
{
"username": "my-team",
"fullName": "My Team"
}
メンバー一覧
GET /api/members
現在のワークスペースのメンバーを返します。
メンバーを招待
POST /api/members
ボディ:
{
"email": "user@example.com",
"role": "editor"
}
メンバーの役割
| 役割 | 権限 |
|---|---|
viewer | ワークスペースリソースへの読み取り専用アクセス |
editor | リソースの作成、編集、削除 |
admin | フルアクセス(会員管理を含む) |
UIでの役割の詳細については、Teamsを参照してください。
メンバーの役割を更新する
PATCH /api/members/{userId}
メンバーの削除
DELETE /api/members/{userId}
所有権の移転
POST /api/members/transfer-ownership
招待状
招待を受け入れる
POST /api/invites/accept
招待情報を入手する
GET /api/invites/info
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
token | string | 招待トークン |
招待を取り消す
DELETE /api/invites/{inviteId}
招待を再送信
POST /api/invites/{inviteId}/resend
APIを探索する
公開コンテンツを検索
GET /api/explore/search
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
q | string | 検索クエリ |
type | string | リソースタイプ: all (デフォルト), projects, datasets |
sort | string | 並べ替え順序: stars (デフォルト), newest, oldest, name-asc, name-desc, count-desc, count-asc |
offset | int | ページネーションオフセット(デフォルト: 0)。結果は1ページあたり20件返します。 |
サイドバーデータ
GET /api/explore/sidebar
「探索」サイドバー向けに厳選されたコンテンツを返します。
ユーザーと設定のAPI
ユーザー名でユーザーを取得する
GET /api/users
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
username | string | 検索するユーザー名 |
ユーザーをフォローする/フォローを解除する
PATCH /api/users
ボディ:
{
"username": "target-user",
"followed": true
}
ユーザー名の利用可能性を確認する
GET /api/username/check
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
username | string | 確認するユーザー名 |
suggest | bool | オプション: true もし取られたら提案を含める |
設定
GET /api/settings
POST /api/settings
ユーザープロファイル設定(表示名、自己紹介、ソーシャルリンクなど)を取得または更新する。
プロフィールアイコン
POST /api/settings/icon
DELETE /api/settings/icon
プロフィールアバターをアップロードまたは削除する。
オンボーディング
POST /api/onboarding
オンボーディングフローを完了する(データリージョン、ユーザー名を設定する)。
GDPR API
データのエクスポートと削除のためのGDPR準拠エンドポイント。
GDPRジョブステータスを取得する
GET /api/gdpr
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
jobId | string | GDPRジョブIDの確認 |
ジョブステータスを返します。完了したエクスポートジョブの場合、応答には downloadUrl.
エクスポートを開始するかフローを削除する
POST /api/gdpr
ボディ:
{
"action": "export"
}
{
"action": "delete",
"confirmationWord": "DELETE"
}
チームワークスペース向けオプション:
{
"action": "delete",
"confirmationWord": "DELETE",
"teamUsername": "my-team"
}
元に戻せない操作
アカウントの削除は永続的であり、元に戻すことはできません。すべてのデータ、モデル、およびデプロイメントが削除されます。
エラーコード
| コード | HTTPステータス | 説明 |
|---|---|---|
UNAUTHORIZED | 401 | 無効または不足しているAPIキー |
FORBIDDEN | 403 | 権限不足 |
NOT_FOUND | 404 | リソースが見つかりません |
VALIDATION_ERROR | 400 | 無効なリクエストデータ |
RATE_LIMITED | 429 | リクエストが多すぎます |
INTERNAL_ERROR | 500 | サーバーエラー |
Python
より簡単な統合のためには、認証、アップロード、リアルタイムメトリックストリーミングを自動的に処理Ultralytics Python をご利用ください。
インストールとセットアップ
pip install ultralytics
インストールを確認してください:
yolo check
パッケージバージョンの要件
Platformのultralytics>=8.4.14が必要です。それより低いバージョンはPlatformでは動作しません。
認証
yolo settings api_key=YOUR_API_KEY
export ULTRALYTICS_API_KEY=YOUR_API_KEY
from ultralytics import settings
settings.api_key = "YOUR_API_KEY"
プラットフォームデータセットの使用
参照データセット ul:// URI:
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形式:
| パターン | 説明 |
|---|---|
ul://username/datasets/slug | データセット |
ul://username/project-name | プロジェクト |
ul://username/project/model-name | 特定モデル |
ul://ultralytics/yolo26/yolo26n | 公式モデル |
プラットフォームへのプッシュ
結果をプラットフォームプロジェクトに送信する:
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",
)
同期されるもの:
- トレーニング指標(リアルタイム)
- 最終モデル重み
- 検証プロット
- コンソール出力
- システムメトリクス
APIの例
Platformからモデルを読み込みます:
# Your own model
model = YOLO("ul://username/project/model-name")
# Official model
model = YOLO("ul://ultralytics/yolo26/yolo26n")
推論を実行する:
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
エクスポートモデル:
# 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)
検証:
metrics = model.val(data="ul://username/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")
Webhook
WebhooksはHTTP POSTコールバックを介して、プラットフォームのイベントをサーバーに通知します:
| イベント | 説明 |
|---|---|
training.started | トレーニングジョブが開始されました |
training.epoch | エポックが完了しました |
training.completed | トレーニングが終了しました |
training.failed | トレーニングが失敗しました |
export.completed | エクスポート準備完了 |
エンタープライズ機能
カスタムWebhookエンドポイントはエンタープライズプランで利用可能です。Python トレーニングWebhookは全プランで自動的に動作します。
よくある質問
大量の結果をページ分割するにはどうすればよいですか?
ほとんどのエンドポイントは limit リクエストごとに返される結果の数を制御するパラメータ:
curl -H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"
アクティビティとゴミ箱のエンドポイントもサポートしています。 page ページベースのページネーションのパラメータ:
curl -H "Authorization: Bearer $API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"
Explore Searchエンドポイントは offset の代わりに page固定ページサイズ20で:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"
SDKなしでAPIを使用できますか?
はい、すべての機能はREST経由で利用可能です。Python 、リアルタイムメトリックストリーミングやモデルの自動アップロードといった機能を追加する便利なラッパーです。
APIクライアントライブラリはありますか?
現在、Ultralytics pythonパッケージを使用するか、直接HTTPリクエストを行ってください。他の言語向けの公式クライアントライブラリは計画中です。
レート制限はどのように処理すればよいですか?
以下を使用します Retry-After 429レスポンスのヘッダーから適切な待機時間を待つ:
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")
モデルまたはデータセットIDをどのように見つければよいですか?
リソースIDは、API経由でリソースを作成した際に返されます。また、プラットフォームのURLからも確認できます:
https://platform.ultralytics.com/username/project/model-name
^^^^^^^^ ^^^^^^^ ^^^^^^^^^^
username project model
リストのエンドポイントを使用して、名前で検索したりプロジェクトでフィルタリングしたりできます。