REST API リファレンス
Base URL
https://nolto.app
認証
API リクエストには Authorization ヘッダーで Personal API Token を渡します:
Authorization: Bearer nolto_user_xxxxxx
詳しくは 認証 を参照してください。
エラーレスポンス
エラー時は以下の形式で JSON が返ります:
{
"error": "エラーメッセージ"
}
クォータ超過(402)の場合は追加フィールドが含まれます:
{
"error": "...",
"message": "...",
"upgradeUrl": "/settings/billing"
}
Projects
/api/projectsBearer Tokenログインユーザーが参加しているプロジェクトの一覧を返します。
レスポンス:
{
"projects": [
{
"id": "uuid",
"name": "プロジェクト名",
"description": "説明",
"repository_url": "https://...",
"updated_at": "2026-05-20T...",
"role": "owner",
"plans": [...]
}
]
}
/api/projectsBearer Token新しいプロジェクトを作成します。作成者が owner になります。
リクエスト:
{
"name": "my-app",
"description": "メインのWebアプリ",
"repositoryUrl": "https://github.com/..."
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | Yes | プロジェクト名(1文字以上) |
description | string | No | 説明 |
repositoryUrl | string | No | リポジトリ URL |
/api/projects/{projectId}Ownerプロジェクト設定を更新します。
リクエスト:
{
"accentColor": "#e4002b"
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
accentColor | string | null | No | ブランドカラー(#RRGGBB)。null でクリア |
Members
/api/projects/{projectId}/membersOwnerプロジェクトにメンバーを招待します。
リクエスト:
{
"email": "user@example.com",
"role": "member"
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | Yes | 招待するメールアドレス |
role | string | No | "owner" / "member" / "viewer"(デフォルト: "viewer") |
ユーザーが既に Nolto アカウントを持っている場合は即座にメンバーに追加されます。持っていない場合は招待メールが送信されます。
/api/projects/{projectId}/members/{memberId}Ownerメンバーのロールを変更します。
リクエスト:
{
"role": "member"
}
/api/projects/{projectId}/members/{memberId}Ownerメンバーをプロジェクトから削除します。最後の owner は削除できません。
Invitations
/api/projects/{projectId}/invitations/{invitationId}Owner招待を取り消します(ソフトデリート)。
/api/projects/{projectId}/invitations/{invitationId}/resendOwner招待メールを再送します。有効期限は再送時点から 14 日に延長されます。
Plans
/api/projects/{projectId}/plansRead Accessプロジェクトのプラン一覧を返します。
クエリパラメータ:
| パラメータ | 型 | 説明 |
|---|---|---|
status | string | ステータスでフィルタ(not_started / in_progress / done / discarded) |
/api/projects/{projectId}/plansWrite Access新しいプランを登録します。LLM 変換ジョブが自動的にキューに入ります。
リクエストの詳細は プランの登録・管理 を参照してください。
レスポンス:
{
"planId": "uuid",
"transformStatus": "queued",
"detailUrl": "https://nolto.app/projects/.../plans/..."
}
/api/projects/{projectId}/plans/{planId}Read Accessプランの詳細を返します。フェーズ、イベント、コントリビューター情報を含みます。
/api/projects/{projectId}/plans/{planId}/statusWrite Accessプランのステータスを更新します。
リクエスト:
{
"status": "done",
"message": "全タスク完了"
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
status | string | Yes | 新しいステータス |
message | string | No | 変更理由(最大1,000文字) |
許可されていない遷移をリクエストすると 400 が返ります。遷移ルールは データモデル を参照してください。
/api/projects/{projectId}/plans/{planId}/retransformWrite AccessLLM 変換を再実行します。月間変換クォータを 1 回分消費します。
レスポンス:
{
"jobId": "uuid",
"transformStatus": "queued"
}
/api/projects/{projectId}/plans/{planId}/assigneeWrite Accessプランの担当者を設定またはクリアします。
リクエスト:
{
"userId": "uuid"
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
userId | string | null | Yes | ユーザー UUID(null でクリア)。プロジェクトメンバーである必要があります。 |
Phases
/api/projects/{projectId}/plans/{planId}/phases/{phaseId}/statusWrite Accessフェーズのステータスを更新します。親プランのステータスが自動的に再計算されます。
リクエスト:
{
"status": "done",
"message": "完了"
}
レスポンス:
{
"ok": true,
"planStatus": "in_progress"
}
planStatus は再計算後の親プランのステータスです。
Tokens
/api/tokensCookie Sessionログインユーザーの Personal API Token 一覧を返します。
トークン管理 API は Cookie セッション認証が必要です(Web UI からの利用を想定)。Bearer Token では認証できません。
/api/tokensCookie Session新しい Personal API Token を作成します。
リクエスト:
{
"name": "CI用トークン",
"expiresAt": "2026-12-31T23:59:59Z"
}
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | Yes | トークン名(1〜120文字) |
expiresAt | string | No | 有効期限(ISO 8601)。省略すると無期限 |
レスポンスの token フィールドにトークン文字列が含まれます。この値は作成時に一度だけ返されます。
/api/tokens/{tokenId}/revokeBearer Token / Cookieトークンを失効させます。
Usage
/api/usageBearer Token現在の利用状況(変換クォータ)を返します。
Billing
/api/billing/checkoutBearer TokenStripe Checkout セッションを作成し、決済 URL を返します。
レスポンス:
{
"url": "https://checkout.stripe.com/..."
}
/api/billing/portalBearer TokenStripe カスタマーポータルの URL を返します(有料プラン加入者のみ)。