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

# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsUltralytics Platform API docs で、完全なインタラクティブ API リファレンスをご覧ください。
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| リソース | 説明 | 主な操作 |
|---|---|---|
| Datasets | ラベル付き画像コレクション | CRUD、画像、ラベル、エクスポート、バージョン、クローン |
| Projects | トレーニングワークスペース | CRUD、クローン、アイコン |
| Models | 学習済みチェックポイント | CRUD、予測、ダウンロード、クローン、エクスポート |
| Deployments | 専用推論エンドポイント | CRUD、開始/停止、メトリクス、ログ、ヘルスチェック |
| Exports | フォーマット変換ジョブ | 作成、ステータス、ダウンロード |
| Training | クラウド GPU トレーニングジョブ | 開始、ステータス、キャンセル |
| Billing | クレジットとサブスクリプション | 残高、チャージ、支払い方法 |
| Teams | ワークスペースコラボレーション | メンバー、招待、ロール |
認証
データセット、プロジェクト、モデル、トレーニング、エクスポート、予測などのリソース API は、API キーによる認証を使用します。公開エンドポイント(公開データセット、プロジェクト、モデルのリスト取得)は、キーなしでの匿名読み取りアクセスをサポートしています。アクティビティ、設定、チーム、請求、GDPR フローを含むアカウント関連のルートは、現在認証されたブラウザセッションを必要とし、API キー経由では利用できません。
API キーの取得
Settings>API Keysに移動しますCreate Keyをクリックします- 生成されたキーをコピーします
詳細な手順については API Keys を参照してください。
認証ヘッダー
すべてのリクエストに API キーを含めてください:
Authorization: Bearer YOUR_API_KEYAPI キーは ul_ で始まり、その後に 40 文字の 16 進数が続く形式です。キーは秘密にし、バージョン管理にコミットしたり公開したりしないでください。
例
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasetsベース URL
すべての API エンドポイントは以下を使用します:
https://platform.ultralytics.com/api
レート制限
API は、悪用を防ぎつつ正当な利用を制限しないよう、API キーごとのレート制限(スライディングウィンドウ方式、Upstash Redis ベース)を設けています。匿名トラフィックは、Vercel のプラットフォームレベルの悪用防止制御によって保護されています。
制限を超えた場合、API はリトライメタデータとともに 429 を返します:
Retry-After: 12
X-RateLimit-Reset: 2026-02-21T12:34:56.000ZAPI キーごとの制限
レート制限は、呼び出されるエンドポイントに基づいて自動的に適用されます。負荷の高い操作には悪用を防ぐため厳しい制限が適用され、標準的な CRUD 操作には余裕のあるデフォルト設定が共有されます:
| エンドポイント | 制限 | 適用対象 |
|---|---|---|
| デフォルト | 100 リクエスト/分 | 以下に記載されていないすべてのエンドポイント(リスト、取得、作成、更新、削除) |
| トレーニング | 10 リクエスト/分 | クラウドトレーニングジョブの開始 (POST /api/training/start) |
| アップロード | 10 リクエスト/分 | ファイルアップロード、署名付き URL、データセットの取り込み |
| 推論 (Predict) | 20 リクエスト/分 | 共有モデル推論 (POST /api/models/{id}/predict) |
| エクスポート | 20 リクエスト/分 | モデルフォーマットのエクスポート (POST /api/exports)、データセットの NDJSON エクスポート、バージョン作成 |
| ダウンロード | 30 リクエスト/分 | モデル重みファイルのダウンロード (GET /api/models/{id}/download) |
| 専用 | 無制限 | Dedicated endpoints — 独自のサービスであり、API 制限はありません |
各カテゴリには、API キーごとに独立したカウンタがあります。例えば、20 回の予測リクエストを行っても、100 リクエスト/分のデフォルト枠には影響しません。
専用エンドポイント(無制限)
Dedicated endpoints は API キーのレート制限の対象外です。モデルを専用エンドポイントにデプロイすると、そのエンドポイント URL(例: https://predict-abc123.run.app/predict)へのリクエストは、プラットフォーム側のレート制限を受けることなく、直接あなたの専用サービスへ送信されます。コンピューティングリソースに対して料金を支払っているため、共有 API 制限ではなく、専用サービスの構成に応じたスループットが得られます。
429 ステータスコードを受け取った場合は、Retry-After(または X-RateLimit-Reset まで)待機してからリトライしてください。エクスポネンシャルバックオフの実装については、rate limit FAQ を参照してください。
レスポンスフォーマット
成功レスポンス
レスポンスは、リソース固有のフィールドを含む JSON を返します:
{
"datasets": [...],
"total": 100
}エラーレスポンス
{
"error": "Dataset not found"
}| HTTP ステータス | 意味 |
|---|---|
200 | 成功 |
201 | 作成完了 |
400 | 無効なリクエスト |
401 | 認証が必要 |
403 | 権限不足 |
404 | リソースが見つかりません |
409 | 競合(重複) |
429 | レート制限超過 |
500 | サーバーエラー |
データセット API
YOLO モデルのトレーニング用に、ラベル付き画像データセットを作成、閲覧、管理します。Datasets documentation を参照してください。
データセットのリスト取得
GET /api/datasetsクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
username | 文字列 | ユーザー名によるフィルタリング |
slug | 文字列 | スラッグを指定して単一のデータセットを取得 |
limit | int | 1ページあたりのアイテム数 (デフォルト: 20、最大: 500) |
owner | 文字列 | ワークスペース所有者のユーザー名 |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=10"レスポンス:
{
"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すべての画像とラベルを含むデータセットのコピーを作成します。公開データセットのみクローン可能です。アクティブなプラットフォームブラウザセッションが必要です(APIキー経由では利用できません)。
ボディ (全フィールド省略可能):
{
"name": "cloned-dataset",
"description": "My cloned dataset",
"visibility": "private",
"owner": "team-username"
}データセットのエクスポート
GET /api/datasets/{datasetId}/export最新のデータセットエクスポート用の署名付きダウンロードURLを含むJSONレスポンスを返します。
クエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
v | 整数 | バージョン番号 (1から始まる)。省略した場合は、最新の(キャッシュされていない)エクスポートが返されます。 |
レスポンス:
{
"downloadUrl": "https://storage.example.com/export.ndjson?signed=...",
"cached": true
}データセットバージョンの作成
POST /api/datasets/{datasetId}/exportデータセットの新しい番号付きバージョンスナップショットを作成します。所有者のみ可能です。このバージョンには、作成時点の画像数、クラス数、アノテーション数、分割分布が記録され、不変のNDJSONエクスポートが生成および保存されます。
リクエストボディ:
{
"description": "Added 500 training images"
}すべてのフィールドは省略可能です。description フィールドはユーザーが指定するバージョンのラベルです。
レスポンス:
{
"version": 3,
"downloadUrl": "https://storage.example.com/v3.ndjson?signed=..."
}バージョン説明の更新
PATCH /api/datasets/{datasetId}/export既存のバージョンの説明を更新します。所有者のみ可能です。
リクエストボディ:
{
"version": 2,
"description": "Fixed mislabeled classes"
}レスポンス:
{
"ok": 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 | 文字列 | はい | アノテーション対象画像のハッシュ |
modelId | 文字列 | いいえ | 推論に使用するモデルID |
confidence | float | いいえ | 信頼度のしきい値 (デフォルト: 0.25) |
iou | float | いいえ | IoUのしきい値 (デフォルト: 0.45) |
データセットの取り込み
POST /api/datasets/ingest画像とラベルを含むZIPまたはTARファイル(.tar.gzや .tgz を含む)を処理するためのデータセット取り込みジョブを作成します。
graph LR
A[Upload Archive] --> B[POST /api/datasets/ingest]
B --> C[Process Archive]
C --> D[Extract images]
C --> E[Parse labels]
C --> F[Generate thumbnails]
D & E & F --> G[Dataset ready]データセットの画像
画像の一覧表示
GET /api/datasets/{datasetId}/imagesクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
split | 文字列 | 分割によるフィルタリング: train, val, test |
offset | int | ページネーションのオフセット (デフォルト: 0) |
limit | int | 1ページあたりのアイテム数 (デフォルト: 50、最大: 5000) |
sort | 文字列 | 並び順: newest, oldest, name-asc, name-desc, height-asc, height-desc, width-asc, width-desc, size-asc, size-desc, labels-asc, labels-desc (10万枚を超える画像データセットでは一部無効) |
hasLabel | 文字列 | ラベルの状態によるフィルタリング (true または false) |
hasError | 文字列 | エラーの状態によるフィルタリング (true または false) |
search | 文字列 | ファイル名または画像ハッシュによる検索 |
includeThumbnails | 文字列 | 署名付きサムネイルURLを含める (デフォルト: true) |
includeImageUrls | 文字列 | 署名付きフル画像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] },
{ "classId": 1, "segments": [0.1, 0.2, 0.3, 0.2, 0.2, 0.4] }
]
}ラベル座標は、0から1の間のYOLO正規化値を使用します。バウンディングボックスは [x_center, y_center, width, height] を使用します。セグメンテーションラベルは、ポリゴン頂点のフラットなリストである segments の [x1, y1, x2, y2, ...] を使用します。
画像の一括操作
データセット内の分割(train/val/test)間で画像を移動します:
PATCH /api/datasets/{datasetId}/images/bulk画像の一括削除:
DELETE /api/datasets/{datasetId}/images/bulkプロジェクトAPI
モデルをプロジェクトに整理します。各モデルは1つのプロジェクトに属します。プロジェクトのドキュメントを参照してください。
プロジェクトの一覧表示
GET /api/projectsクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
username | 文字列 | ユーザー名によるフィルタリング |
limit | int | 1ページあたりのアイテム数 |
owner | 文字列 | ワークスペース所有者のユーザー名 |
プロジェクトの取得
GET /api/projects/{projectId}プロジェクトの作成
POST /api/projectscurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "my-project", "slug": "my-project", "description": "Detection experiments"}' \
https://platform.ultralytics.com/api/projectsプロジェクトの更新
PATCH /api/projects/{projectId}プロジェクトの削除
DELETE /api/projects/{projectId}プロジェクトを論理削除します (ゴミ箱に移動されます)。
プロジェクトのクローン
POST /api/projects/{projectId}/clone公開プロジェクト(すべてのモデルを含む)をワークスペースにクローンします。アクティブなプラットフォームブラウザセッションが必要です(APIキー経由では利用できません)。
プロジェクトアイコン
プロジェクトアイコンをアップロードします(画像ファイルを含むマルチパートフォーム):
POST /api/projects/{projectId}/iconプロジェクトアイコンを削除します:
DELETE /api/projects/{projectId}/iconどちらもアクティブなプラットフォームブラウザセッションが必要です(APIキー経由では利用できません)。
モデルAPI
トレーニング済みのYOLOモデルを管理します。メトリクスの表示、ウェイトのダウンロード、推論の実行、他のフォーマットへのエクスポートが可能です。Modelsドキュメントを参照してください。
モデルの一覧表示
GET /api/modelsクエリパラメータ:
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
projectId | 文字列 | はい | プロジェクトID(必須) |
fields | 文字列 | いいえ | フィールドセット: summary、charts |
ids | 文字列 | いいえ | カンマ区切りのモデルID |
limit | int | いいえ | 最大結果数(デフォルト20、最大100) |
完了済みモデルの一覧表示
GET /api/models/completedトレーニングが完了したモデルを返します(モデルセレクターおよびデプロイメントで使用)。
モデルの取得
GET /api/models/{modelId}モデルの作成
POST /api/modelsJSONボディ:
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
projectId | 文字列 | はい | ターゲットプロジェクトID |
slug | 文字列 | いいえ | URLスラッグ(小文字の英数字/ハイフン) |
name | 文字列 | いいえ | 表示名(最大100文字) |
description | 文字列 | いいえ | モデルの説明(最大1000文字) |
task | 文字列 | いいえ | タスクタイプ(detect、segment、pose、obb、classify) |
モデルの.ptファイルのアップロードは別途処理されます。プラットフォームのUIを使用して、モデルファイルをプロジェクトにドラッグ&ドロップしてください。
モデルの更新
PATCH /api/models/{modelId}モデルを削除
DELETE /api/models/{modelId}モデルファイルのダウンロード
GET /api/models/{modelId}/filesモデルファイル用の署名付きダウンロードURLを返します。
モデルのクローン
POST /api/models/{modelId}/clone公開モデルを自分のプロジェクトのいずれかに複製します。有効なプラットフォームのブラウザセッションが必要です(APIキー経由では利用できません)。
ボディ:
{
"targetProjectSlug": "my-project",
"modelName": "cloned-model",
"description": "Cloned from public model",
"owner": "team-username"
}| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
targetProjectSlug | 文字列 | はい | 宛先プロジェクトスラッグ |
modelName | 文字列 | いいえ | 複製されたモデルの名前 |
description | 文字列 | いいえ | モデルの説明 |
owner | 文字列 | いいえ | チームユーザー名(ワークスペース複製用) |
ダウンロードの追跡
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 YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.5" \
https://platform.ultralytics.com/api/models/MODEL_ID/predictレスポンス:
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
],
"metadata": {
"imageCount": 1
}
}予測トークンの取得
POST /api/models/{modelId}/predict/tokenこのルートは、アプリ内の「予測」タブで使用され、ブラウザからpredict-serviceへの直接呼び出し(低レイテンシ、APIプロキシなし)を行うための短期間有効な推論トークンを発行します。有効なプラットフォームのブラウザセッションが必要であり、APIキー経由では利用できません。プログラムによる推論を行う場合は、APIキーを使用してPOST /api/models/{modelId}/predictを呼び出してください。
モデルのウォームアップ
POST /api/models/{modelId}/predict/warmupウォームアップルートは、ユーザーの最初の推論の前に予測サービス上でモデルのウェイトをプリロードするために「予測」タブで使用されます。有効なプラットフォームのブラウザセッションが必要であり、APIキー経由では利用できません。
トレーニングAPI
クラウドGPU(RTX 2000 AdaからB300まで24種類のGPUタイプ)でYOLOトレーニングを開始し、リアルタイムで進行状況を監視します。クラウドトレーニングドキュメントを参照してください。
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/startcurl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"modelId": "MODEL_ID",
"projectId": "PROJECT_ID",
"gpuType": "rtx-4090",
"trainArgs": {
"model": "yolo26n.pt",
"data": "ul://username/datasets/my-dataset",
"epochs": 100,
"imgsz": 640,
"batch": 16
}
}' \
https://platform.ultralytics.com/api/training/start利用可能なGPUタイプには、rtx-4090、a100-80gb-pcie、a100-80gb-sxm、h100-sxm、rtx-pro-6000、b300などが含まれます。価格を含む全リストはクラウドトレーニングを参照してください。
トレーニングステータスの取得
GET /api/models/{modelId}/trainingモデルの現在のトレーニングジョブステータス、メトリクス、進捗状況を返します。公開プロジェクトは匿名でアクセス可能ですが、プライベートプロジェクトには有効なプラットフォームのブラウザセッションが必要です(このルートはAPIキー認証を受け付けません)。
トレーニングをキャンセルする
DELETE /api/models/{modelId}/training実行中のコンピューティングインスタンスを終了し、ジョブをキャンセル済みとしてマークします。有効なプラットフォームのブラウザセッションが必要であり、APIキー経由では利用できません。
デプロイメントAPI
ヘルスチェックと監視を備えた専用の推論エンドポイントにモデルをデプロイします。新しいデプロイメントではデフォルトでスケール・トゥ・ゼロが使用され、APIはオプションのresourcesオブジェクトを受け付けます。エンドポイントドキュメントを参照してください。
GET /api/deployments、POST /api/deployments、GET /api/deployments/{deploymentId}、およびDELETE /api/deployments/{deploymentId}のみがAPIキー認証をサポートしています。predict、health、logs、metrics、start、およびstopサブルートには有効なプラットフォームのブラウザセッションが必要です。これらはアプリ内UIのための便利なプロキシです。プログラムによる推論を行う場合は、デプロイメント独自のエンドポイントURL(例: https://predict-abc123.run.app/predict)をAPIキーを使用して直接呼び出してください。専用エンドポイントはレート制限を受けません。
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 | 文字列 | モデルによるフィルタリング |
status | 文字列 | ステータスによるフィルタリング |
limit | int | 最大結果数(デフォルト: 20、最大: 100) |
owner | 文字列 | ワークスペース所有者のユーザー名 |
デプロイメントの作成
POST /api/deploymentsボディ:
{
"modelId": "model_abc123",
"name": "my-deployment",
"region": "us-central1",
"resources": {
"cpu": 1,
"memoryGi": 2,
"minInstances": 0,
"maxInstances": 1
}
}| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
modelId | 文字列 | はい | デプロイするモデルID |
name | 文字列 | はい | デプロイメント名 |
region | 文字列 | はい | デプロイメントリージョン |
resources | オブジェクト | いいえ | リソース構成(cpu、memoryGi、minInstances、maxInstances) |
指定されたリージョンに専用の推論エンドポイントを作成します。エンドポイントはユニークなURLを介してグローバルにアクセス可能です。
デプロイメントダイアログは現在、cpu=1、memoryGi=2、minInstances=0、maxInstances=1という固定されたデフォルト値を送信します。APIルートはresourcesオブジェクトを受け付けますが、プランの制限によりminInstancesは0、maxInstancesは1に上限設定されます。
低レイテンシを実現するため、ユーザーに近いリージョンを選択してください。プラットフォーム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 | 文字列 | 期間: 1h、6h、24h(デフォルト)、7d、30d |
sparkline | 文字列 | ダッシュボード表示用に最適化されたスパークラインデータを得るにはtrueに設定します |
ログの取得
GET /api/deployments/{deploymentId}/logsクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
severity | 文字列 | カンマ区切りのフィルタ: DEBUG、INFO、WARNING、ERROR、CRITICAL |
limit | int | エントリ数(デフォルト: 50、最大: 200) |
pageToken | 文字列 | 前回のレスポンスからのページネーショントークン |
監視API
GET /api/monitoringはUI専用のルートであり、アクティブなプラットフォームブラウザセッションが必要です。APIキー認証には対応していません。デプロイメントごとのルート(これもブラウザセッション専用)を介して個別のデプロイメントメトリクスをクエリするか、プログラムによるアクセスのためにデプロイ済みのCloud RunサービスでCloud Monitoring exportsを使用してください。
集計メトリクス
GET /api/monitoringすべてのユーザーデプロイメントにわたる集計メトリクス(総リクエスト数、アクティブなデプロイメント数、エラー率、平均レイテンシ)を返します。
エクスポートAPI
エッジデプロイメント用に、モデルをONNX、TensorRT、CoreML、TFLiteなどの最適化フォーマットに変換します。デプロイのドキュメントを参照してください。
エクスポートの一覧
GET /api/exportsクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
modelId | 文字列 | モデルID(必須) |
status | 文字列 | ステータスによるフィルタリング |
limit | int | 最大結果数(デフォルト: 20、最大: 100) |
エクスポートの作成
POST /api/exportsボディ:
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
modelId | 文字列 | はい | ソースモデルID |
format | 文字列 | はい | エクスポートフォーマット(下表を参照) |
gpuType | 文字列 | 条件付き | formatがengine(TensorRT)の場合に必須 |
args | オブジェクト | いいえ | エクスポート引数(imgsz、half、dynamicなど) |
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId": "MODEL_ID", "format": "onnx"}' \
https://platform.ultralytics.com/api/exportsサポートされているフォーマット:
| 形式 | 値 | ユースケース |
|---|---|---|
| ONNX | onnx | クロスプラットフォーム推論 |
| TorchScript | torchscript | PyTorchデプロイメント |
| OpenVINO | openvino | Intel ハードウェア |
| TensorRT | engine | NVIDIA GPU最適化 |
| CoreML | coreml | Apple デバイス |
| TFLite | tflite | モバイルおよび組み込み |
| TF SavedModel | saved_model | TensorFlow Serving |
| TF GraphDef | pb | TensorFlowフローズングラフ |
| PaddlePaddle | paddle | Baidu PaddlePaddle |
| NCNN | ncnn | モバイルニューラルネットワーク |
| Edge TPU | edgetpu | Google Coral デバイス |
| TF.js | tfjs | ブラウザ推論 |
| MNN | mnn | Alibabaモバイル推論 |
| RKNN | rknn | Rockchip NPU |
| IMX | imx | Sony IMX500 センサー |
| Axelera | axelera | Axelera AI アクセラレータ |
| ExecuTorch | executorch | Meta ExecuTorchランタイム |
エクスポートステータスの取得
GET /api/exports/{exportId}エクスポートのキャンセル
DELETE /api/exports/{exportId}エクスポートダウンロードの追跡
POST /api/exports/{exportId}/track-downloadアクティビティAPI
アカウントでの最近のアクション(トレーニング実行、アップロードなど)のフィードを表示します。アクティビティのドキュメントを参照してください。
アクティビティルートは、プラットフォームUIからのブラウザ認証リクエストによって動作します。これらは公開APIとして公開されておらず、APIキー認証も受け付けません。以下のルート形状は参照用としてのみドキュメント化されています。イベントの表示、マーク付け、アーカイブにはプラットフォームUIのアクティビティフィードを使用してください。
アクティビティの一覧
GET /api/activityクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
limit | int | ページサイズ(デフォルト: 20、最大: 100) |
page | int | ページ番号(デフォルト: 1) |
archived | boolean | trueはアーカイブタブ、falseは受信トレイ用 |
search | 文字列 | イベントフィールド内の大文字小文字を区別しない検索 |
イベントを既読にする
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
}ゴミ箱API
削除されたアイテムの表示と復元を行います。アイテムは30日後に完全に削除されます。ゴミ箱のドキュメントを参照してください。
ゴミ箱の一覧
GET /api/trashクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
type | 文字列 | フィルタ: all、project、dataset、model |
page | int | ページ番号(デフォルト: 1) |
limit | int | 1ページあたりのアイテム数(デフォルト: 50、最大: 200) |
owner | 文字列 | ワークスペース所有者のユーザー名 |
アイテムを復元する
POST /api/trashボディ:
{
"id": "item_abc123",
"type": "dataset"
}アイテムを完全に削除する
DELETE /api/trashボディ:
{
"id": "item_abc123",
"type": "dataset"
}完全に削除すると元に戻せません。リソースおよび関連するすべてのデータは削除されます。
ゴミ箱を空にする
DELETE /api/trash/emptyゴミ箱内のすべてのアイテムを完全に削除します。
DELETE /api/trash/emptyには認証されたブラウザセッションが必要であり、APIキーでは利用できません。代わりにUIのゴミ箱を空にするボタンを使用してください。
課金API
クレジット残高の確認、クレジットの購入、取引履歴の表示、自動チャージの設定を行います。課金のドキュメントを参照してください。
課金額にはセント(creditsCents)を使用します。ここで100 = $1.00です。
残高の取得
GET /api/billing/balanceクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
owner | 文字列 | ワークスペース所有者のユーザー名 |
レスポンス:
{
"creditsCents": 2500,
"plan": "free",
"cashBalance": 25,
"creditBalance": 0,
"reservedAmount": 0,
"totalBalance": 25
}使用状況サマリーの取得
GET /api/billing/usage-summaryプランの詳細、制限、使用量メトリクスを返します。
取引履歴の取得
GET /api/billing/transactions取引履歴(最新のものから順に)を返します。
クエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
owner | 文字列 | ワークスペース所有者のユーザー名 |
チェックアウトセッションの作成
POST /api/billing/checkout-sessionボディ:
{
"amount": 25,
"owner": "team-username"
}| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
amount | number | はい | ドル単位の金額($5-$1000) |
owner | 文字列 | いいえ | ワークスペースチャージ用のチームユーザー名(管理者ロールが必要) |
クレジット購入のためのチェックアウトセッションを作成します。
サブスクリプションチェックアウトの作成
POST /api/billing/subscription-checkoutProサブスクリプションアップグレードのためのチェックアウトセッションを作成します。
ボディ:
{
"planId": "pro",
"billingCycle": "monthly",
"owner": "team-username"
}| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
planId | 文字列 | はい | サブスクライブするプラン(pro) |
billingCycle | 文字列 | いいえ | 課金サイクル: monthly(デフォルト)またはyearly |
owner | 文字列 | いいえ | ワークスペースアップグレード用のチームユーザー名(管理者ロールが必要) |
サブスクリプションのキャンセルまたは再開
DELETE /api/billing/subscription-checkoutデフォルトでは、期間終了時にProサブスクリプションがキャンセルされます。請求期間終了前にキャンセルを再開するには、{"resume": true}を送信してください。
ボディ:
{
"resume": true
}自動チャージ (Auto Top-Up)
残高がしきい値を下回った際に自動的にクレジットを追加します。
自動チャージ設定の取得
GET /api/billing/auto-topupクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
owner | 文字列 | ワークスペース所有者のユーザー名 |
自動チャージ設定の更新
PATCH /api/billing/auto-topupボディ:
{
"enabled": true,
"thresholdCents": 500,
"amountCents": 2500
}支払い方法
支払い方法の一覧取得
GET /api/billing/payment-methodsSetup Intentの作成
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
カテゴリー別(データセット、モデル、エクスポート)のストレージ使用内訳を確認し、容量の大きい項目を表示します。
ストレージ関連のルートにはアクティブなプラットフォームのブラウザセッションが必要であり、APIキーではアクセスできません。対話的な内訳については、UIのSettings > Profileページを使用してください。
ストレージ情報の取得
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"
}
]
}
}アップロードAPI
署名付きURLを使用してファイルをクラウドストレージに直接アップロードし、高速かつ信頼性の高い転送を実現します。署名付きURLの取得とファイルアップロードの2ステップ構成です。Data documentationを参照してください。
署名付きアップロードURLの取得
POST /api/upload/signed-urlファイルをクラウドストレージへ直接アップロードするための署名付きURLを要求します。署名付きURLを使用することで、大容量ファイル転送時にAPIサーバーを経由しません。
ボディ:
{
"assetType": "images",
"assetId": "abc123",
"filename": "my-image.jpg",
"contentType": "image/jpeg",
"totalBytes": 5242880
}| フィールド | タイプ | 説明 |
|---|---|---|
assetType | 文字列 | アセットタイプ: models, datasets, images, videos |
assetId | 文字列 | ターゲットアセットのID |
filename | 文字列 | 元のファイル名 |
contentType | 文字列 | 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キーを管理します。API Keys documentationを参照してください。
APIキーの一覧取得
GET /api/api-keysAPIキーの作成
POST /api/api-keysボディ:
{
"name": "training-server"
}APIキーの削除
DELETE /api/api-keysクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
keyId | 文字列 | 取り消すAPIキーID |
例:
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/api-keys?keyId=KEY_ID"チームとメンバーAPI
チームワークスペースの作成、メンバーの招待、共同作業のためのロール管理を行います。Teams documentationを参照してください。
チームの一覧取得
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 | メンバー、請求、全リソースの管理(チームオーナーのみ割り当て可能) |
チームのownerは作成者であり、招待することはできません。オーナー権限の譲渡はPOST /api/members/transfer-ownershipを介して個別に行われます。ロールの詳細についてはTeamsを参照してください。
メンバーロールの更新
PATCH /api/members/{userId}メンバーの削除
DELETE /api/members/{userId}オーナー権限の譲渡
POST /api/members/transfer-ownership招待
招待の承認
POST /api/invites/accept招待情報の取得
GET /api/invites/infoクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
token | 文字列 | 招待トークン |
招待の取り消し
DELETE /api/invites/{inviteId}招待の再送
POST /api/invites/{inviteId}/resend探索API
コミュニティによって共有された公開データセットやプロジェクトを検索・閲覧します。Explore documentationを参照してください。
公開コンテンツの検索
GET /api/explore/searchクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
q | 文字列 | 検索クエリ |
type | 文字列 | リソースタイプ: all(デフォルト)、projects、datasets |
sort | 文字列 | 並び替え順: stars(デフォルト)、newest、oldest、name-asc、name-desc、count-desc、count-asc |
offset | int | ページネーションのオフセット(デフォルト: 0)。結果は1ページあたり20件返されます。 |
サイドバーデータ
GET /api/explore/sidebar探索サイドバー用の厳選されたコンテンツを返します。
ユーザーおよび設定API
プロファイル、APIキー、ストレージ使用量、データプライバシー設定を管理します。Settings documentationを参照してください。
ユーザー名によるユーザー取得
GET /api/usersクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
username | 文字列 | 検索するユーザー名 |
ユーザーのフォローまたはフォロー解除
PATCH /api/usersボディ:
{
"username": "target-user",
"followed": true
}ユーザー名の利用可否確認
GET /api/username/checkクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
username | 文字列 | 確認するユーザー名 |
suggest | bool | オプション: 使用中の場合に提案を含める場合はtrue |
設定
GET /api/settings
POST /api/settingsユーザープロファイル設定(表示名、自己紹介、SNSリンクなど)の取得または更新を行います。
プロファイルアイコン
POST /api/settings/icon
DELETE /api/settings/iconプロファイルアバターのアップロードまたは削除を行います。
オンボーディング
POST /api/onboardingオンボーディングフロー(データリージョン、ユーザー名の設定)を完了させます。
GDPR API
全データの書き出し要求、またはアカウントの永久削除を行います。Settings documentationを参照してください。
GDPRジョブステータスの取得
GET /api/gdprクエリパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
jobId | 文字列 | 確認する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プラットフォームの統合には ultralytics>=8.4.35 が必要です。それより古いバージョンではプラットフォームは動作しません。
認証
yolo settings api_key=YOUR_API_KEYプラットフォームデータセットの使用
ul:// URIを使用してデータセットを参照します:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Train on your Platform dataset
model.train(
data="ul://your-username/datasets/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("yolo26n.pt")
# Results automatically sync to Platform
model.train(
data="coco8.yaml",
epochs=100,
project="your-username/my-project",
name="experiment-1",
)同期対象:
- トレーニングメトリクス(リアルタイム)
- 最終的なモデルウェイト
- 検証プロット
- コンソール出力
- システムメトリクス
API例
プラットフォームからモデルをロード:
# 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/datasets/my-dataset")
print(f"mAP50: {metrics.box.map50}")
print(f"mAP50-95: {metrics.box.map}")Webhook
プラットフォームは内部Webhookを使用して、ultralytics Python SDK(クラウドGPUやリモート/ローカルマシン上で実行)からエポックごとの損失、mAP、システム統計、完了ステータスなどのリアルタイムトレーニングメトリクスをプラットフォームにストリーミングします。これらのWebhookは、トレーニングジョブごとにプロビジョニングされたHMAC webhookSecret を介して認証されるため、ユーザーアプリケーションによる使用は想定されていません。
すべてのプラン: ultralytics SDKを介したトレーニングの進捗(リアルタイムメトリクス、完了通知)は、すべてのプランで自動的に機能します。トレーニング時に project=username/my-project name=my-run を設定するだけで、SDKがイベントをプラットフォームにストリーミングします。ユーザー側でのWebhook登録は不要です。
ユーザー向けのWebhookサブスクリプション(ユーザー管理のURLへのPOSTコールバック)はEnterpriseロードマップにありますが、現在利用できません。それまでの間は、GET /api/models/{modelId}/training をポーリングしてステータスを確認するか、UIのアクティビティフィードを使用してください。
FAQ
大量の結果をページネーションするにはどうすればよいですか?
ほとんどのエンドポイントは limit パラメータを使用して、リクエストごとに返される結果の数を制御します:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/datasets?limit=50"ActivityおよびTrashエンドポイントも、ページベースのページネーション用に page パラメータをサポートしています:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://platform.ultralytics.com/api/activity?page=2&limit=20"The Explore Search endpoint uses offset instead of page, with a fixed page size of 20:
curl "https://platform.ultralytics.com/api/explore/search?type=datasets&offset=20&sort=stars"SDKなしでAPIを使用できますか?
はい、すべての機能がRESTを介して利用可能です。Python SDKは、リアルタイムメトリクスのストリーミングや自動モデルアップロードなどの機能を追加する便利なラッパーです。また、platform.ultralytics.com/api/docsで、すべてのエンドポイントを対話的に確認できます。
APIクライアントライブラリはありますか?
現在は、Ultralytics Pythonパッケージを使用するか、直接HTTPリクエストを行ってください。他の言語向けの公式クライアントライブラリを計画中です。
レート制限にはどう対処すればよいですか?
429レスポンスの Retry-After ヘッダーを使用して、適切な時間待機してください:
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リストエンドポイントを使用して、名前で検索するかプロジェクトでフィルタリングしてください。