SciFig
無料で始める

API リファレンス

認証と冪等性

SciFig API の各呼び出しで使う認証情報、スコープ、Idempotency-Key、リクエスト ID。

Markdown で表示

Bearer 認証#

GET /pricing、GET /openapi.json、GET /openapi.yaml 以外の各リクエストに Authorization: Bearer <credential> を送信します。クエリパラメーターやその他のヘッダーに入れた認証情報は無視されます。

認証情報は Bearer 認証を使用します。DPoP に紐付けた認証情報はサポートしていません。

  • API キーは sk_live_ で始まります。設定 → 開発者で作成すると、キーは一度だけ表示されます。サーバーに保管し、ブラウザーやモバイルアプリに組み込まないでください。有効期限の 7 日前にメールでお知らせします。
  • OAuth アクセストークンは sf_at_ で始まります。クライアントを承認すると MCP クライアントに発行されます。設定 → 開発者 → 接続済みアプリからクライアントの接続を解除できます。
  • 認証情報が未指定、無効、期限切れ、または失効済みの場合は 401 UNAUTHORIZED を返します。API を利用できないアカウント(削除処理中など)は 401 ACCOUNT_UNAVAILABLE を返します。
  • キーを失効させると、そのキーによる新しいリクエストは停止します。作成済みのジョブは引き続き実行され、同じアカウントの別の認証情報で読み取れます。

スコープ#

スコープ付与される権限API キーの種類
figures:readGET /jobs, GET /jobs/{id}, GET /files/{file_id}, GET /credits読み取り専用キー。有効期限なしも設定可能
figures:generatefigures:read のすべての権限と、すべての POST エンドポイント生成用キー。有効期間は 30 日、90 日、1 年。有効なサブスクリプション、または残高が 0 を超えるクレジットパックが必要

認証情報のスコープ外のリクエストは 403 SCOPE_DENIED を返します。アプリケーションや環境ごとにキーを分けると、他に影響を与えずに個別のキーを失効できます。

冪等性#

  • すべての作成リクエスト(POST /images/*、/charts/*、/flowcharts/*)には、表示可能な ASCII 文字 1~255 文字の Idempotency-Key ヘッダーが必要です。リクエストごとにランダムな UUID を使うのが簡単です。POST /files へのアップロードにも指定できます(ファイルを参照)。
  • 同じキーと同じ本文で送信すると、同じジョブを返し、クレジットを再度確保することはありません。グラフのアップロードでは、データファイルのバイト列も本文に含まれます。
  • 同じキーで本文が異なると 409 IDEMPOTENCY_CONFLICT を返します。同じキーの同時リクエストが 2 件のジョブを作成することはありません。それぞれが同じジョブを返すか、最初のリクエストの受け付け処理中は Retry-After: 1 付きの 409 IDEMPOTENCY_IN_PROGRESS を返します。
  • タイムアウト、ネットワークエラー、429、503 の後は同じキーで再試行してください。ジョブの重複作成を確実に防ぐには、この方法が必要です。
  • ジョブの作成後は、再試行可能なエラー(429、503、409 IDEMPOTENCY_IN_PROGRESS)や 500 INTERNAL_ERROR に details.job_id が含まれます。同じキーで再試行するか、GET /jobs/{job_id} でポーリングしてください。新しいキーに切り替えると、別のジョブが作成され、再び課金されます。受け付け済みのジョブを読み戻せなかった場合は、ステータス queued の 202 を返します。
  • 拒否されたリクエスト(402 INSUFFICIENT_CREDITS など)は、そのキーに同じ応答を保持します。チャージやアップグレードの後は、新しいキーで再送してください。

OAuth クライアント#

  • MCP クライアントは PKCE を伴う OAuth 2.1 を使用します。アクセストークン(sf_at_…)は 1 時間有効です。offline_access スコープを要求するクライアントには、30 日間有効なリフレッシュトークン(sf_rt_…)も発行され、接続を解除するまで接続を維持できます。offline_access がなければ、アクセストークンの有効期限が切れたときに再ログインが必要です。
  • リフレッシュトークンは更新のたびに新しく発行されます。使用済みのリフレッシュトークンを提示すると再使用と見なされ、そのトークンから発行されたトークンは失効し、クライアントは再ログインが必要になります。
  • 動的クライアント登録の本文は最大 16 KB です。各フィールドの長さとリダイレクト URI の数にも制限があります。トークンエンドポイントの認証方式は、PKCE を使う公開クライアント向けの none、または client_secret_basic です。
  • 登録後、一度も承認されていないクライアントは 24 時間後に削除されます。
  • prompt=login または max_age を伴う認可リクエストは、新たなログインを要求します。すでにログインしている場合は、SciFig が確認を求めてから、一度ログアウトして再ログインする流れに進みます。
  • OAuth 認証情報のレート制限はクライアントとアカウントごとに集計されるため、同じアシスタントを使う他のユーザーがあなたの制限枠を消費することはありません。

リクエスト ID#

すべてのレスポンスに X-Request-Id が付き、エラー本文には error.request_id として再掲されます。ほかの情報を開示せずにログ内のリクエストを特定できるため、ログへの記録やサポートへの連絡に安全に利用できます。