ログイン無料で始める

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

GET/api/projectsBearer Token

ログインユーザーが参加しているプロジェクトの一覧を返します。

レスポンス:

{
  "projects": [
    {
      "id": "uuid",
      "name": "プロジェクト名",
      "description": "説明",
      "repository_url": "https://...",
      "updated_at": "2026-05-20T...",
      "role": "owner",
      "plans": [...]
    }
  ]
}

POST/api/projectsBearer Token

新しいプロジェクトを作成します。作成者が owner になります。

リクエスト:

{
  "name": "my-app",
  "description": "メインのWebアプリ",
  "repositoryUrl": "https://github.com/..."
}
フィールド必須説明
namestringYesプロジェクト名(1文字以上)
descriptionstringNo説明
repositoryUrlstringNoリポジトリ URL

PATCH/api/projects/{projectId}Owner

プロジェクト設定を更新します。

リクエスト:

{
  "accentColor": "#e4002b"
}
フィールド必須説明
accentColorstring | nullNoブランドカラー(#RRGGBB)。null でクリア

Members

POST/api/projects/{projectId}/membersOwner

プロジェクトにメンバーを招待します。

リクエスト:

{
  "email": "user@example.com",
  "role": "member"
}
フィールド必須説明
emailstringYes招待するメールアドレス
rolestringNo"owner" / "member" / "viewer"(デフォルト: "viewer"

ユーザーが既に Nolto アカウントを持っている場合は即座にメンバーに追加されます。持っていない場合は招待メールが送信されます。


PATCH/api/projects/{projectId}/members/{memberId}Owner

メンバーのロールを変更します。

リクエスト:

{
  "role": "member"
}

DELETE/api/projects/{projectId}/members/{memberId}Owner

メンバーをプロジェクトから削除します。最後の owner は削除できません。


Invitations

DELETE/api/projects/{projectId}/invitations/{invitationId}Owner

招待を取り消します(ソフトデリート)。


POST/api/projects/{projectId}/invitations/{invitationId}/resendOwner

招待メールを再送します。有効期限は再送時点から 14 日に延長されます。


Plans

GET/api/projects/{projectId}/plansRead Access

プロジェクトのプラン一覧を返します。

クエリパラメータ:

パラメータ説明
statusstringステータスでフィルタ(not_started / in_progress / done / discarded

POST/api/projects/{projectId}/plansWrite Access

新しいプランを登録します。LLM 変換ジョブが自動的にキューに入ります。

リクエストの詳細は プランの登録・管理 を参照してください。

レスポンス:

{
  "planId": "uuid",
  "transformStatus": "queued",
  "detailUrl": "https://nolto.app/projects/.../plans/..."
}

GET/api/projects/{projectId}/plans/{planId}Read Access

プランの詳細を返します。フェーズ、イベント、コントリビューター情報を含みます。


POST/api/projects/{projectId}/plans/{planId}/statusWrite Access

プランのステータスを更新します。

リクエスト:

{
  "status": "done",
  "message": "全タスク完了"
}
フィールド必須説明
statusstringYes新しいステータス
messagestringNo変更理由(最大1,000文字)

許可されていない遷移をリクエストすると 400 が返ります。遷移ルールは データモデル を参照してください。


POST/api/projects/{projectId}/plans/{planId}/retransformWrite Access

LLM 変換を再実行します。月間変換クォータを 1 回分消費します。

レスポンス:

{
  "jobId": "uuid",
  "transformStatus": "queued"
}

POST/api/projects/{projectId}/plans/{planId}/assigneeWrite Access

プランの担当者を設定またはクリアします。

リクエスト:

{
  "userId": "uuid"
}
フィールド必須説明
userIdstring | nullYesユーザー UUID(null でクリア)。プロジェクトメンバーである必要があります。

Phases

POST/api/projects/{projectId}/plans/{planId}/phases/{phaseId}/statusWrite Access

フェーズのステータスを更新します。親プランのステータスが自動的に再計算されます。

リクエスト:

{
  "status": "done",
  "message": "完了"
}

レスポンス:

{
  "ok": true,
  "planStatus": "in_progress"
}

planStatus は再計算後の親プランのステータスです。


Tokens

GET/api/tokensCookie Session

ログインユーザーの Personal API Token 一覧を返します。

ℹ️

トークン管理 API は Cookie セッション認証が必要です(Web UI からの利用を想定)。Bearer Token では認証できません。


POST/api/tokensCookie Session

新しい Personal API Token を作成します。

リクエスト:

{
  "name": "CI用トークン",
  "expiresAt": "2026-12-31T23:59:59Z"
}
フィールド必須説明
namestringYesトークン名(1〜120文字)
expiresAtstringNo有効期限(ISO 8601)。省略すると無期限

レスポンスの token フィールドにトークン文字列が含まれます。この値は作成時に一度だけ返されます。


POST/api/tokens/{tokenId}/revokeBearer Token / Cookie

トークンを失効させます。


Usage

GET/api/usageBearer Token

現在の利用状況(変換クォータ)を返します。


Billing

POST/api/billing/checkoutBearer Token

Stripe Checkout セッションを作成し、決済 URL を返します。

レスポンス:

{
  "url": "https://checkout.stripe.com/..."
}

POST/api/billing/portalBearer Token

Stripe カスタマーポータルの URL を返します(有料プラン加入者のみ)。