REST API
Ultralytics 、データセット、モデル、トレーニング、デプロイメントへのプログラムによるアクセREST API 包括REST API を提供します。
クイックスタート
# List your datasets
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/datasets
# Run inference on a model
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
https://platform.ultralytics.com/api/models/MODEL_ID/predict
認証
すべてのAPIリクエストには、APIキーによる認証が必要です。
APIキーを取得する
- 設定 > APIキーに移動してください
- キーを作成をクリック
- 生成されたキーをコピーしてください
詳細な手順については、APIキーを参照してください。
認証ヘッダー
すべてのリクエストにAPIキーを含めてください:
Authorization: Bearer ul_your_api_key_here
例
curl -H "Authorization: Bearer ul_abc123..." \
https://platform.ultralytics.com/api/datasets
ベースURL
すべてのAPIエンドポイントは以下を使用します:
https://platform.ultralytics.com/api
レート制限
| 計画 | リクエスト/分 | リクエスト/日 |
|---|---|---|
| 無料 | 60 | 1,000 |
| Pro | 300 | 50,000 |
| エンタープライズ | カスタム | カスタム |
レスポンスにはレート制限ヘッダーが含まれます:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 55
X-RateLimit-Reset: 1640000000
応答フォーマット
すべての応答はJSON形式です:
{
"success": true,
"data": { ... },
"meta": {
"page": 1,
"limit": 20,
"total": 100
}
}
エラー応答
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid dataset ID",
"details": { ... }
}
}
データセット API
データセットのリスト表示
GET /api/datasets
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
page | int | ページ番号(デフォルト: 1) |
limit | int | 1ページあたりの表示件数 (デフォルト: 20) |
task | 文字列 | タスクの種類でフィルタリング |
回答:
{
"success": true,
"data": [
{
"id": "dataset_abc123",
"name": "my-dataset",
"slug": "my-dataset",
"task": "detect",
"imageCount": 1000,
"classCount": 10,
"visibility": "private",
"createdAt": "2024-01-15T10:00:00Z"
}
]
}
データセットを取得する
GET /api/datasets/{datasetId}
データセットを作成する
POST /api/datasets
本文:
{
"name": "my-dataset",
"task": "detect",
"description": "A custom detection dataset"
}
データセットの削除
DELETE /api/datasets/{datasetId}
データセットのエクスポート
POST /api/datasets/{datasetId}/export
NDJSON形式のダウンロードURLを返します。
プロジェクト API
プロジェクト一覧
GET /api/projects
プロジェクトを取得
GET /api/projects/{projectId}
プロジェクトを作成します
POST /api/projects
本文:
{
"name": "my-project",
"description": "Detection experiments"
}
プロジェクトの削除
DELETE /api/projects/{projectId}
モデル API
リストモデル
GET /api/models
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
projectId | 文字列 | プロジェクトでフィルタリング |
task | 文字列 | タスクの種類でフィルタリング |
モデルを取得
GET /api/models/{modelId}
モデルをアップロード
POST /api/models
マルチパートフォーム:
| フィールド | 種類 | 説明 |
|---|---|---|
file | ファイル | モデル .pt ファイル |
projectId | 文字列 | ターゲットプロジェクト |
name | 文字列 | モデル名 |
モデルの削除
DELETE /api/models/{modelId}
モデルをダウンロード
GET /api/models/{modelId}/files
モデルファイルの署名付きダウンロードURLを返します。
推論の実行
POST /api/models/{modelId}/predict
マルチパートフォーム:
| フィールド | 種類 | 説明 |
|---|---|---|
file | ファイル | 画像ファイル |
conf | 浮動小数点数 | 信頼閾値 |
iou | 浮動小数点数 | IoU |
回答:
{
"success": true,
"predictions": [
{
"class": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
}
]
}
トレーニングAPI
学習を開始
POST /api/training/start
本文:
{
"modelId": "model_abc123",
"datasetId": "dataset_xyz789",
"epochs": 100,
"imageSize": 640,
"gpuType": "rtx-4090"
}
トレーニングステータスを取得する
GET /api/models/{modelId}/training
トレーニングをキャンセルする
DELETE /api/models/{modelId}/training
デプロイメント API
リストのデプロイ
GET /api/deployments
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
modelId | 文字列 | モデルで絞り込む |
デプロイメントを作成
POST /api/deployments
本文:
{
"modelId": "model_abc123",
"region": "us-central1",
"minInstances": 0,
"maxInstances": 10
}
デプロイメントを取得
GET /api/deployments/{deploymentId}
デプロイを開始
POST /api/deployments/{deploymentId}/start
デプロイを停止
POST /api/deployments/{deploymentId}/stop
デプロイメントを削除
DELETE /api/deployments/{deploymentId}
メトリクスを取得する
GET /api/deployments/{deploymentId}/metrics
ログを取得する
GET /api/deployments/{deploymentId}/logs
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
severity | 文字列 | 情報、警告、エラー |
limit | int | エントリー数 |
エクスポートAPI
リストのエクスポート
GET /api/exports
エクスポートを作成
POST /api/exports
本文:
{
"modelId": "model_abc123",
"format": "onnx"
}
サポートされている形式:
onnx, torchscript, openvino, tensorrt, coreml, tflite, saved_model, graphdef, paddle, ncnn, edgetpu, tfjs, mnn, rknn, imx, axelera, executorch
エクスポートステータスを取得する
GET /api/exports/{exportId}
アクティビティAPI
アカウントのアクティビティイベントを追跡および管理します。
リストアクティビティ
GET /api/activity
クエリパラメータ:
| パラメータ | 種類 | 説明 |
|---|---|---|
startDate | 文字列 | 日付によるフィルタリング(ISO) |
endDate | 文字列 | 日付フィルター (ISO) |
search | 文字列 | イベントメッセージを検索する |
マークされたイベントを表示
POST /api/activity/mark-seen
過去のイベント
POST /api/activity/archive
ごみAPI
ソフト削除されたリソースを管理する(30日間の保持期間)。
リストを削除
GET /api/trash
アイテムを復元する
POST /api/trash
本文:
{
"itemId": "item_abc123",
"type": "dataset"
}
ごみ箱を空にする
POST /api/trash/empty
ごみ箱内のすべての項目を完全に削除します。
課金API
クレジットとサブスクリプションを管理する。
バランスを取る
GET /api/billing/balance
回答:
{
"success": true,
"data": {
"cashBalance": 5000000,
"creditBalance": 20000000,
"reservedAmount": 0,
"totalBalance": 25000000
}
}
マイクロ米ドル
すべての金額は、正確な会計処理のためマイクロ米ドル(1,000,000 = $1.00)で表示されています。
使用状況の概要を取得する
GET /api/billing/usage-summary
プランの詳細、制限、および使用状況の指標を返します。
チェックアウトセッションを作成する
POST /api/billing/checkout-session
本文:
{
"amount": 25
}
クレジットカード購入(5ドル~1000ドル)用のStripeチェックアウトセッションを作成します。
サブスクリプションのチェックアウトを作成する
POST /api/billing/subscription-checkout
Proサブスクリプション用のStripeチェックアウトセッションを作成します。
ポータルセッションを作成する
POST /api/billing/portal-session
サブスクリプション管理のためのStripe請求ポータルへのURLを返します。
支払い履歴を取得する
GET /api/billing/payments
Stripeからの支払い取引のリストを返します。
ストレージAPI
ストレージ情報を取得する
GET /api/storage
回答:
{
"success": true,
"data": {
"used": 1073741824,
"limit": 107374182400,
"percentage": 1.0
}
}
GDPR API
データエクスポートおよび削除のためのGDPR準拠エンドポイント。
アカウントデータのエクスポート/削除
POST /api/gdpr
本文:
{
"action": "export"
}
| アクション | 説明 |
|---|---|
export | すべてのアカウントデータをダウンロードする |
delete | アカウントとすべてのデータを削除する |
不可逆的な行動
アカウントの削除は永久的な操作であり、元に戻すことはできません。すべてのデータ、モデル、デプロイメントが削除されます。
APIキー API
APIキーの一覧
GET /api/api-keys
APIキーを作成する
POST /api/api-keys
本文:
{
"name": "training-server",
"scopes": ["training", "models"]
}
APIキーを削除する
DELETE /api/api-keys/{keyId}
エラーコード
| コード | 説明 |
|---|---|
UNAUTHORIZED | 無効または欠落しているAPIキー |
FORBIDDEN | 権限が不足しています |
NOT_FOUND | リソースが見つかりません |
VALIDATION_ERROR | 無効なリクエストデータ |
RATE_LIMITED | リクエストが多すぎます |
INTERNAL_ERROR | サーバーエラー |
SDKサポート
より簡単な統合のためには、Ultralytics Python をご利用ください。
パッケージのバージョン要件
Platformの統合ultralytics8.4.0以上が必要です。それより低いバージョンではPlatformと連携しません。
pip install "ultralytics>=8.4.0"
import os
from ultralytics import YOLO
# Set API key
os.environ["ULTRALYTICS_API_KEY"] = "ul_your_key"
# Train with Platform integration
model = YOLO("yolo11n.pt")
model.train(data="ul://username/datasets/my-dataset", project="username/my-project", name="experiment-1", epochs=100)
Webhooks
Webhooksはプラットフォームのイベントをサーバーに通知します:
| イベント | 説明 |
|---|---|
training.started | 訓練業務開始 |
training.epoch | エポック完了 |
training.completed | トレーニング終了 |
training.failed | トレーニングに失敗しました |
export.completed | 輸出準備完了 |
Webhookの設定はエンタープライズプランで利用可能です。
よくある質問
大量の結果をどのようにページ分割すればよいですか?
使用 page および limit パラメータ:
GET /api/datasets?page=2 &
limit=50
SDKなしでAPIを利用できますか?
はい、すべての機能はREST経由で利用可能です。SDKは利便性を高めるためのラッパーです。
APIクライアントライブラリはありますか?
現在、Ultralytics Python を使用するか、直接HTTPリクエストを送信してください。他の言語向けの公式クライアントライブラリは計画中です。
レート制限はどう扱えばよいですか?
指数バックオフを実装する:
import time
def api_request_with_retry(url, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url)
if response.status_code != 429:
return response
wait = 2**attempt
time.sleep(wait)
raise Exception("Rate limit exceeded")