これらは今日時点での実際のエンドポイントです
このリファレンスは、現在実装されているとおりのAPIを文書化しています。これは手書きであり、API自身の実際のOpenAPI仕様から生成されたものではありません(その仕様が実際にどこにあるかはVersioningを参照)——両者の間に乖離がないかChangelogを注視してください。
すべてのエンドポイントは、APIのベースURLからの相対パスで、/v1プレフィックスの下にあります(Versioningを参照)。認証が必要なすべてのエンドポイントは、POST /v1/auth/verify-login-codeによって設定されるhttpOnlyセッションクッキーを使用します——現在、別個のAPIキー認証はありません(Authenticationを参照)。
auth
| Method | Path | Auth | 備考 |
|---|
| POST | /v1/auth/request-login-code | — | { email }. 6桁のコードをメールで送信し、初回利用時にアカウントを作成します。常に同じメッセージを返します。IPとメールアドレスそれぞれ独立してレート制限されます。 |
| POST | /v1/auth/verify-login-code | — | { email, code }. セッションクッキーを設定します。IPとメールアドレスそれぞれ独立してレート制限されます。 |
| POST | /v1/auth/logout | session | セッションクッキーをクリアします。 |
| GET | /v1/auth/me | session | 現在のユーザーを返します。 |
| GET | /v1/auth/google | — | Google OAuthにリダイレクトします。 |
| GET | /v1/auth/google/callback | — | OAuthコールバック。成功するとアプリ内にリダイレクトします。 |
| GET | /v1/auth/facebook | — | Facebook OAuthにリダイレクトします。 |
| GET | /v1/auth/facebook/callback | — | OAuthコールバック。成功するとアプリ内にリダイレクトします。 |
| POST | /v1/auth/forgot-password | — | { email }。そのメールアドレスが登録済みかどうかにかかわらず、常に同じメッセージを返します。 |
| POST | /v1/auth/reset-password | — | { token, password }。トークンは1回限り使用可能で、期限があります。 |
chat
| Method | Path | Auth | 備考 |
|---|
| POST | /v1/chat | session | { model, messages, conversationId?, idempotencyKey }。プレーンテキストのレスポンスボディをストリーミングします。レスポンスのx-conversation-idヘッダーが会話IDを運びます。idempotencyKeyは必須です——同じキーで再試行されたリクエストが、二重に課金されたりプロバイダーを再度呼び出したりすることは決してありません。 |
skills
| Method | Path | Auth | 備考 |
|---|
| POST | /v1/skills | session | { name, instruction, input_schema?, output_schema? }。あなたのアカウントに非公開のSkillを作成します。 |
| GET | /v1/skills | session | 自分自身のSkillを一覧表示します。 |
| GET | /v1/skills/templates | session | 自分のSkillに複製できる初期テンプレートを一覧表示します。 |
| POST | /v1/skills/templates/:id/duplicate | session | テンプレートを自分の新しいSkillにコピーします。 |
| POST | /v1/skills/import | session | { name, instruction, input_schema?, output_schema?, version? } — GET /v1/skills/:id/exportが生成するのと全く同じ形式で、export → importが往復可能です。それ以外のフィールド(id、owner_id、organization_id、allowed_tools)は即座に拒否されます。インポートされたSkillがファイルからツールバインディングを引き継ぐことは決してありません。 |
| GET | /v1/skills/:id | session | 自分が所有するSkillと、そのすべてのバージョン。 |
| GET | /v1/skills/:id/export | session | インポートエンドポイントの入力と一致する、ポータブルな{ name, instruction, input_schema, output_schema, version }形式。 |
| POST | /v1/skills/:id/versions | session | { instruction, input_schema?, output_schema? }。新しい不変バージョンを公開します。 |
| POST | /v1/skills/:id/run | session | { model, input, conversationId?, idempotencyKey }。POST /v1/chatと同じチャットパイプラインに再度入ります。inputは単一のユーザーメッセージの代わりとなります——同じidempotency/quota/ledgerの動作です。 |
conversations
| Method | Path | Auth | 備考 |
|---|
| GET | /v1/conversations | session | 自分自身の会話を一覧表示します。 |
| GET | /v1/conversations/:id | session | メッセージを含む単一の会話。所有していない会話に対しては404を返します。 |
files
| Method | Path | Auth | 備考 |
|---|
| GET | /v1/files | session | 自分がアップロードしたファイルを一覧表示します。 |
| POST | /v1/files | session | マルチパートアップロード、フィールド名file。プレーンテキスト、Markdown、PDF、.docxを最大20MBまで受け付けます。 |
| DELETE | /v1/files/:id | session | 所有しているファイル(ストレージオブジェクト+レコード)を削除します。 |
plans
| Method | Path | Auth | 備考 |
|---|
| GET | /v1/plans | —(公開) | 価格と許可されたモデルを含むプランを一覧表示します——サインイン前でも価格が見えるよう意図的に公開されています。 |
billing
| Method | Path | Auth | 備考 |
|---|
| POST | /v1/billing/checkout | session | { planId, provider: "sepay" | "paddle" }。課金される金額は常にサーバー側のプラン検索から取得され、クライアントから取得されることはありません。FreeおよびEnterpriseプランはこの方法でチェックアウトできません。 |
| GET | /v1/billing/quota | session | 現在の1日のquota上限と残高。 |
稼働中のAPIには、ここでは顧客向けの機能として文書化されていない2つのリソースがさらに存在します: /v1/webhooks/*(受信専用で、SePay/Paddleによって呼び出されます——あなたが呼び出すものではありません)と/v1/admin/*(内部用、管理者専用)。