コンテンツにスキップ

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キーを取得する

  1. 設定 > APIキーに移動してください
  2. キーを作成をクリック
  3. 生成されたキーをコピーしてください

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

レート制限

計画リクエスト/分リクエスト/日
無料601,000
Pro30050,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

クエリパラメータ:

パラメータ種類説明
pageintページ番号(デフォルト: 1)
limitint1ページあたりの表示件数 (デフォルト: 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文字列情報、警告、エラー
limitintエントリー数

エクスポート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")


📅 0日前に作成 ✏️ 0日前に更新
glenn-jocher

コメント