メインコンテンツへ移動
LocoPal AiLocoPal Ai
API 連携

ガイド

認証と基本仕様

ベースアドレス、API Key 認証、リクエストとレスポンスの仕様、ページネーション、レート制限、冪等性、エラーの取り決め

Markdown を表示

認証と基本仕様

このページはすべてのエンドポイントに共通する取り決めをまとめたものです。ベースアドレス、認証、リクエストとレスポンスの形式、ページネーション、レート制限、冪等性、エラー処理を含みます。個別エンドポイントのパラメータと例はエンドポイント概要および各エンドポイントのページを参照してください。

ベースアドレス

項目値
デフォルトのベースアドレスhttps://locopalai.com
海外モデルの接続アドレスhttps://us-api.locopalai.com(コンソールが別のアドレスを表示している場合は、コンソールの表示を優先)
モデルと生成エンドポイント<基础地址>/v1/...
素材ライブラリのエンドポイント<基础地址>/api/v1/materials/...
リクエスト形式application/json。音声 speech の成功レスポンスはバイナリ音声
文字エンコーディングUTF-8

認証

すべてのエンドポイントが同じプラットフォーム API Key を使用します:

Authorization: Bearer sk-你的APIKey
Content-Type: application/json
項目説明
取得方法コンソールの「API キー」ページで作成し、いつでも有効化・無効化・削除できる
適用範囲モデル、テキスト、画像、動画、音声、素材の各エンドポイントで同じ Key を共用し、GET リクエストにも同様に付与が必要
保存要件サーバー側の環境変数またはシークレット管理サービスのみに置き、ブラウザ、クライアントのインストールパッケージ、公開リポジトリには書き込まないでください

Bearer プレフィックスは省略できる(ただし推奨しない)

実測した 4 通りの書き方:

リクエストヘッダー結果
Authorization: Bearer <key>200 —— 推奨の書き方
Authorization: <key>(生の token)200 —— プラットフォームも同様に受け付ける
authorization: bearer <key>(すべて小文字)200 —— ヘッダー名とスキーム名は大文字小文字を区別しない
(Authorization をまったく送信しない)401

プラットフォームは生の token も受け付けるため、200 が返ることはクライアントの設定が正しいことを意味しません。逆に、あるクライアントが 401 を返す場合は、Key 自体を疑う前に、まず Authorization ヘッダー全体を送信し忘れていないかを確認してください。常に Bearer 形式を使用してください。

API Key が欠落している、誤っている、無効化されている、または現在のアカウントに属していない場合は HTTP 401 を返します:

{
  "error": {
    "code": "",
    "message": "Invalid token (request id: 202609221135501066578648268d9d6uXuM5QgH)",
    "type": "new_api_error"
  }
}

code が空文字列であることに注意してください。 認証失敗時にプラットフォームは code を埋めないため、code が空かどうかで リクエストがエラーかどうかを判断しないでください。HTTP ステータスコードを基準にしてください。message 内の request id はそのまま取り出してチケット起票に利用できます。

この種の認証失敗はすべてのエンドポイントで構造が同一で、message にリクエスト識別子が付くため、調査が容易です。

レスポンス構造

プラットフォームには 3 種類のレスポンス構造があり、クライアントは HTTP ステータスコードとレスポンスボディの両方を確認する必要があります。

モデル、テキスト、画像、動画、音声のエンドポイント

成功時は結果オブジェクトを直接返し、失敗時は HTTP が 2xx 以外で error オブジェクトを伴って返します:

{
  "error": {
    "code": "invalid_parameter",
    "message": "请求参数不符合所选模型要求",
    "type": "invalid_request_error",
    "param": "size"
  }
}

動画タスクの照会は例外です。タスクが見つからない場合は 400 を返し、レスポンスボディはトップレベルの { code, message, data } 構造(code は文字列 task_not_exist)であり、前述の error オブジェクトではありません。 詳細はエラーコードとトラブルシューティングを参照してください。 code、type、param の値はエラーの種類によって変わるため、調査時は message を主とし、固定の code テキストだけに照合しないでください。

素材ライブラリのエンドポイント

成功時も失敗時も統一構造を使用します:

{ "code": 0, "data": {}, "msg": "OK" }
{ "code": 401, "data": null, "msg": "API Key 无效或已失效" }

失敗時の HTTP ステータスコードは code と一致します(400 / 401 / 404 / 429 / 502 / 503)。素材の審査が未完了であることはエラーではなく、200 レスポンスの status フィールド(Processing / Active / Failed)です。

ページネーション

素材グループ、素材一覧などのリスト系エンドポイントは統一のページネーションパラメータを使用します:

パラメータ位置デフォルト上限説明
pagequery1—ページ番号。1 から始まる
page_sizequery201001 ページあたりの件数。範囲外の場合はデフォルト値として扱う

レスポンスの data.total は総件数、data.page、data.page_size は今回有効なページネーションパラメータです。次のページがあるかどうかは必ず total を読んで判断し、「今回返された件数」で判断しないでください。

レート制限とリトライ

シナリオプラットフォームの動作推奨
リクエストが過多HTTP 429バックオフしてリトライし、並行リトライはしない
素材ステータスの照会軽量エンドポイント5~10 秒ごとにポーリングし、同じ素材 ID のみをポーリングする
動画タスクの照会軽量エンドポイント5~15 秒ごとにポーリングし、元のタスク ID のみを照会する
ネットワーク中断リクエスト結果が不明まずタスク ID / 素材 ID で照会し、未作成であることを確認してからリトライする
一時的な 5xxサービスまたは機能が一時的に利用不可有限回のバックオフリトライを行い、失敗が続く場合はプラットフォームサポートに連絡する

429 と一時的な 5xx のみリトライしてください。400、401、403、404、409 はリクエストまたは権限の問題であり、リトライしても成功しません。

冪等性と重複送信

プラットフォームはエンドポイントをまたぐ自動の冪等キーを提供しません。業務側で 1 回だけ送信されるようにしてください:

  • ユーザー操作ごとに、まず自社データベースへ業務レコードを 1 件記録してからプラットフォームのエンドポイントを呼び出してください。
  • 動画タスクと素材の送信では、いずれもプラットフォームが返す ID を保存し、リトライ前に作成済みかどうかを照会してください。
  • 素材が Processing の間は重複して送信しないでください。そうしないと複数の素材が作成されます。
  • 課金は実際に送信が成功したタスクに基づきます。重複送信は二重課金の原因になります。

推奨される呼び出し順序

GET  /v1/models                     选择模型,确认能力与可用性
POST /api/v1/materials/groups       需要素材时创建分组
POST /api/v1/materials/assets       提交图片,保存 asset_id
GET  /api/v1/materials/assets/{id}  轮询到 status 为 Active
POST /v1/video/generations          提交视频任务,用 asset://<id> 引用素材
GET  /v1/video/generations/{id}     轮询任务,读取结果或错误

サーバー側での実装の推奨事項

  1. リクエストごとに適切なタイムアウトを設定し、「タイムアウト」と「ユーザーによるキャンセル」を区別する。
  2. 429 と一時的な 5xx には有限回のバックオフリトライを行い、その他のエラーはそのまま呼び出し元に返す。
  3. 業務リクエスト番号、モデル ID、素材 ID、タスク ID、プラットフォームが返すリクエスト識別子を保存し、調査に備える。
  4. API Key をログ、エラー通知、フロントエンドの計測、スクリーンショットに書き込まない。
  5. 大きなファイルはオブジェクトストレージの公開 HTTPS アドレスまたは素材ライブラリの asset:// 参照を優先し、リクエストボディに詰め込まない。

次のステップ

知りたいこと参照先
どのようなエンドポイントがあるかエンドポイント概要
モデルカタログとテキスト対話モデルとテキストのエンドポイント
画像生成画像生成エンドポイント
動画生成、複数画像と参照動画動画生成エンドポイント
素材グループ、素材ステータス、肖像権の許諾素材ライブラリ API
エラーの調査方法エラーコードとトラブルシューティング
このページは役に立ちましたか?

このページの目次