コンテンツにスキップ

REST APIリファレンス

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

Ultralytics 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キーの取得

  1. 行く Settings > Profile (APIキーセクション)
  2. クリック Create Key
  3. 生成されたキーをコピーします。

詳細な手順については、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

クエリパラメータ:

パラメータ種類説明
usernamestringユーザー名でフィルタリング
slugstringスラッグで単一データセットを取得する
limitint1ページあたりの表示件数(デフォルト: 20件、最大: 500件)
ownerstringワークスペース所有者のユーザー名
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 を実行し、アノテーションを自動生成します。選択したモデルを使用して、未アノテーション画像のラベルを予測します。

ボディ:

フィールド種類必要説明
imageHashstringはい注釈を付ける画像のハッシュ値
modelIdstringいいえ推論に使用するモデルID
confidencefloatいいえ信頼度しきい値(デフォルト: 0.25)
ioufloatいいえ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

クエリパラメータ:

パラメータ種類説明
splitstring分割によるフィルタリング: train, val, test
offsetintページネーションオフセット(デフォルト: 0)
limitint1ページあたりの表示件数(デフォルト: 50件、最大: 5000件)
sortstring並べ替え順序: newest, oldest, name-asc, name-desc, size-asc, size-desc, labels-asc, labels-desc
hasLabelstringラベルステータスでフィルタリング (true または false)
hasErrorstringエラー状態によるフィルタリング (true または false)
searchstringファイル名または画像ハッシュで検索
includeThumbnailsstring署名付きサムネイルURLを含める(デフォルト: true)
includeImageUrlsstring署名付き完全画像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

クエリパラメータ:

パラメータ種類説明
usernamestringユーザー名でフィルタリング
limitint1ページあたりの項目数
ownerstringワークスペース所有者のユーザー名

プロジェクトの取得

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

クエリパラメータ:

パラメータ種類必要説明
projectIdstringはいプロジェクトID(必須)
fieldsstringいいえフィールドセット: summary, charts
idsstringいいえカンマ区切りのモデルID
limitintいいえ最大結果数(デフォルト20、最大100)

完成モデル一覧

GET /api/models/completed

トレーニングが完了したモデルを返します(モデルセレクターやデプロイメントで使用するため)。

モデルの取得

GET /api/models/{modelId}

モデルを作成する

POST /api/models

JSON本文:

フィールド種類必要説明
projectIdstringはい対象プロジェクトID
slugstringいいえURLスラッグ(小文字の英数字/ハイフン)
namestringいいえ表示名(最大100文字)
descriptionstringいいえモデル説明(最大1000文字)
taskstringいいえタスクタイプ(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"
}
フィールド種類必要説明
targetProjectSlugstringはい目的プロジェクトスラグ
modelNamestringいいえクローンモデルの名称
descriptionstringいいえモデル説明
ownerstringいいえチームユーザー名(ワークスペースのクローン作成用)

トラックダウンロード

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

トラックモデルのダウンロード分析。

推論の実行

POST /api/models/{modelId}/predict

マルチパートフォーム:

フィールド種類説明
fileファイル画像ファイル(JPEG、PNG、WebP)
conffloat信頼度しきい値(デフォルト: 0.25)
ioufloatIoU (デフォルト: 0.7)
imgszint画像サイズ(ピクセル単位)(デフォルト: 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

クエリパラメータ:

パラメータ種類説明
modelIdstringモデルでフィルタ
statusstringステータスでフィルタリング
limitint最大結果数(デフォルト: 20、最大: 100)
ownerstringワークスペース所有者のユーザー名

デプロイメントを作成

POST /api/deployments

ボディ:

{
    "modelId": "model_abc123",
    "name": "my-deployment",
    "region": "us-central1",
    "resources": {
        "cpu": 1,
        "memoryGi": 2,
        "minInstances": 0,
        "maxInstances": 1
    }
}
フィールド種類必要説明
modelIdstringはいデプロイするモデルID
namestringはいデプロイメント名
regionstringはいデプロイリージョン
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)
conffloat信頼度しきい値(デフォルト: 0.25)
ioufloatIoU (デフォルト: 0.7)
imgszint画像サイズ(ピクセル単位)(デフォルト: 640)

メトリクスを取得

GET /api/deployments/{deploymentId}/metrics

リクエスト数、レイテンシ、エラー率のメトリクスをスパークラインデータと共に返します。

クエリパラメータ:

パラメータ種類説明
rangestring時間範囲: 1h, 6h, 24h (デフォルト), 7d, 30d
sparklinestring設定する true ダッシュボード表示用に最適化されたスパークラインデータ

ログを取得

GET /api/deployments/{deploymentId}/logs

クエリパラメータ:

パラメータ種類説明
severitystringカンマ区切りフィルター: DEBUG, INFO, WARNING, ERROR, CRITICAL
limitintエントリ数(デフォルト: 50、最大: 200)
pageTokenstring前のレスポンスからのページネーショントークン

監視API

集計メトリクス

GET /api/monitoring

すべてのユーザーデプロイメントにわたる集計メトリクスを返します:総リクエスト数、アクティブなデプロイメント数、エラー率、平均レイテンシ。


エクスポートAP

モデルをエッジデプロイメント向けに最適化された形式に変換する。

エクスポートを一覧表示

GET /api/exports

クエリパラメータ:

パラメータ種類説明
modelIdstringモデルID(必須)
statusstringステータスでフィルタリング
limitint最大結果数(デフォルト: 20、最大: 100)

エクスポートを作成

POST /api/exports

ボディ:

フィールド種類必要説明
modelIdstringはいソースモデルID
formatstringはいエクスポート形式(下記表参照)
gpuTypestring条件付き必要な場合 formatengine (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"]

サポートされている形式:

形式ユースケース
ONNXonnxクロスプラットフォーム推論
TorchScripttorchscriptPyTorchデプロイメント
OpenVINOopenvinoIntel
TensorRTengineNVIDIA GPU
CoreMLcoremlAppleデバイス
TFLitetfliteモバイルおよび組み込み
TF SavedModelsaved_modelTensorFlow
TF GraphDefpbTensorFlow
PaddlePaddlepaddle百度PaddlePaddlePaddle
NCNNncnn移動型ニューラルネットワーク
Edge TPUedgetpuGoogle デバイス
TF.jstfjsブラウザの推測
MNNmnnアリババモバイル推論
RKNNrknnRockchip NPU
IMXimxソニー IMX500 センサー
AxeleraaxeleraアクセレラAIアクセラレータ
ExecuTorchexecutorchMeta ExecuTorch ランタイム

エクスポートステータスを取得

GET /api/exports/{exportId}

エクスポートをキャンセル

DELETE /api/exports/{exportId}

トラックエクスポートダウンロード

POST /api/exports/{exportId}/track-download

アクティビティAP

アカウントのアクティビティイベントをtrackし、管理します。

アクティビティを一覧表示

GET /api/activity

クエリパラメータ:

パラメータ種類説明
limitintページサイズ(デフォルト:20、最大:100)
pageintページ番号 (デフォルト: 1)
archivedブーリアンtrue アーカイブタブ用 false 受信トレイ用
searchstringイベントフィールドでの大文字小文字を区別しない検索

イベントを既読にする

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

クエリパラメータ:

パラメータ種類説明
typestringフィルター: all, project, dataset, model
pageintページ番号 (デフォルト: 1)
limitint1ページあたりの項目数(デフォルト: 50、最大: 200)
ownerstringワークスペース所有者のユーザー名

アイテムを復元

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

クエリパラメータ:

パラメータ種類説明
ownerstringワークスペース所有者のユーザー名

レスポンス:

{
    "creditsCents": 2500,
    "plan": "free",
    "cashBalance": 25,
    "creditBalance": 0,
    "reservedAmount": 0,
    "totalBalance": 25
}

使用状況の概要を取得

GET /api/billing/usage-summary

プランの詳細、制限、および使用状況メトリクスを返します。

取引を取得する

GET /api/billing/transactions

取引履歴を返します(最新のものが最初に表示されます)。

クエリパラメータ:

パラメータ種類説明
ownerstringワークスペース所有者のユーザー名

チェックアウトセッションを作成

POST /api/billing/checkout-session

ボディ:

{
    "amount": 25,
    "owner": "team-username"
}
フィールド種類必要説明
amount番号はい金額(ドル)(5ドル~1000ドル)
ownerstringいいえワークスペースの追加購入用チームユーザー名(管理者ロールが必要)

クレジット購入用のチェックアウトセッションを作成します。

サブスクリプションチェックアウトを作成

POST /api/billing/subscription-checkout

Proサブスクリプションのアップグレード用チェックアウトセッションを作成します。

ボディ:

{
    "planId": "pro",
    "billingCycle": "monthly",
    "owner": "team-username"
}
フィールド種類必要説明
planIdstringはい(に)登録する計画pro)
billingCyclestringいいえ請求サイクル: monthly (デフォルト) または yearly
ownerstringいいえワークスペースのアップグレード用チームユーザー名(管理者ロールが必要)

ポータルセッションを作成

POST /api/billing/portal-session

サブスクリプション管理のための課金ポータルへのURLを返します。

自動チャージ

残高が閾値を下回った場合に自動的にクレジットを追加する。

自動トップアップ設定を取得

GET /api/billing/auto-topup

クエリパラメータ:

パラメータ種類説明
ownerstringワークスペース所有者のユーザー名

自動トップアップ設定の更新

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
}
フィールド種類説明
assetTypestring資産タイプ: models, datasets, images, videos
assetIdstring対象資産のID
filenamestring元のファイル名
contentTypestringMIMEタイプ
totalBytesintファイルサイズ(バイト単位)

レスポンス:

{
    "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

クエリパラメータ:

パラメータ種類説明
keyIdstring失効させる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

クエリパラメータ:

パラメータ種類説明
tokenstring招待トークン

招待を取り消す

DELETE /api/invites/{inviteId}

招待を再送信

POST /api/invites/{inviteId}/resend

APIを探索する

公開コンテンツを検索

GET /api/explore/search

クエリパラメータ:

パラメータ種類説明
qstring検索クエリ
typestringリソースタイプ: all (デフォルト), projects, datasets
sortstring並べ替え順序: stars (デフォルト), newest, oldest, name-asc, name-desc, count-desc, count-asc
offsetintページネーションオフセット(デフォルト: 0)。結果は1ページあたり20件返します。
GET /api/explore/sidebar

「探索」サイドバー向けに厳選されたコンテンツを返します。


ユーザーと設定のAPI

ユーザー名でユーザーを取得する

GET /api/users

クエリパラメータ:

パラメータ種類説明
usernamestring検索するユーザー名

ユーザーをフォローする/フォローを解除する

PATCH /api/users

ボディ:

{
    "username": "target-user",
    "followed": true
}

ユーザー名の利用可能性を確認する

GET /api/username/check

クエリパラメータ:

パラメータ種類説明
usernamestring確認するユーザー名
suggestboolオプション: 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

クエリパラメータ:

パラメータ種類説明
jobIdstringGDPRジョブIDの確認

ジョブステータスを返します。完了したエクスポートジョブの場合、応答には downloadUrl.

エクスポートを開始するかフローを削除する

POST /api/gdpr

ボディ:

{
    "action": "export"
}
{
    "action": "delete",
    "confirmationWord": "DELETE"
}

チームワークスペース向けオプション:

{
    "action": "delete",
    "confirmationWord": "DELETE",
    "teamUsername": "my-team"
}

元に戻せない操作

アカウントの削除は永続的であり、元に戻すことはできません。すべてのデータ、モデル、およびデプロイメントが削除されます。


エラーコード

コードHTTPステータス説明
UNAUTHORIZED401無効または不足しているAPIキー
FORBIDDEN403権限不足
NOT_FOUND404リソースが見つかりません
VALIDATION_ERROR400無効なリクエストデータ
RATE_LIMITED429リクエストが多すぎます
INTERNAL_ERROR500サーバーエラー

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

リストのエンドポイントを使用して、名前で検索したりプロジェクトでフィルタリングしたりできます。



📅 1ヶ月前に作成 ✏️ 5日前に更新
glenn-jochersergiuwaxmannLaughing-q

コメント