はじめに
Set Plan APIは、プロジェクト管理データにプログラムからアクセスするためのRESTful APIです。見積書・請求書・発注書・納品書・注文確認書・課題管理・予定実績・分析データなどを取得・作成・更新できます。
ベースURL
https://setplan.app/api/v1レスポンスフォーマット
全てのAPIレスポンスはJSON形式で、以下の統一フォーマットで返されます。
{
"success": true,
"data": {
"id": "xxx",
"name": "サンプル"
},
"meta": {
"total": 100,
"page": 1,
"limit": 20,
"totalPages": 5
}
}meta フィールドはページネーション対応のエンドポイントでのみ含まれます。
認証
全てのAPIリクエストには、Authorization ヘッダーにBearerトークンとしてAPIキーを含める必要があります。
APIキーの取得
APIキーは、Set Planの設定画面 > APIキー管理から発行できます。 APIキーは作成時に一度だけ表示されるため、安全に保管してください。
APIキーは sk_live_ プレフィックスで始まります。
リクエスト例
curl -X GET "https://setplan.app/api/v1/me" \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxx"認証エラー
APIキーが無効、期限切れ、または未指定の場合、以下のエラーが返されます。
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "APIキーが無効です"
}
}| エラーコード | HTTP | 説明 |
|---|---|---|
| UNAUTHORIZED | 401 | APIキーが指定されていない |
| INVALID_API_KEY | 401 | APIキーが無効または無効化されている |
| EXPIRED_API_KEY | 401 | APIキーの有効期限が切れている |
| FORBIDDEN | 403 | 権限が不足している |
レート制限
APIリクエストは、APIキーごとに 1分間に60リクエストに制限されています。スライディングウィンドウ方式で計算されます。
レスポンスヘッダー
全てのAPIレスポンスに以下のヘッダーが含まれます。
| ヘッダー | 説明 |
|---|---|
| X-RateLimit-Limit | ウィンドウあたりの最大リクエスト数(60) |
| X-RateLimit-Remaining | 残りリクエスト数 |
| X-RateLimit-Reset | 制限がリセットされるUNIXタイムスタンプ(秒) |
制限超過時のレスポンス
レート制限を超過した場合、HTTPステータス429が返されます。Retry-After ヘッダーに再試行までの秒数が含まれます。
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "リクエスト制限を超過しました。しばらく待ってからお試しください。"
}
}エラーハンドリング
エラーが発生した場合、レスポンスの success フィールドが false となり、error オブジェクトにエラーの詳細が含まれます。
エラーレスポンス形式
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "入力値が不正です",
"details": {
"email": "有効なメールアドレスを入力してください"
}
}
}エラーコード一覧
| HTTPステータス | エラーコード | 説明 |
|---|---|---|
| 400 | VALIDATION_ERROR | リクエストパラメータが不正 |
| 401 | UNAUTHORIZED | 認証が必要、またはAPIキーが無効 |
| 403 | FORBIDDEN | 権限が不足している |
| 404 | NOT_FOUND | リソースが見つからない |
| 429 | RATE_LIMITED | レート制限を超過 |
| 500 | INTERNAL_ERROR | サーバー内部エラー |
ロールベースのアクセス制御
一部のエンドポイントは特定のロールのユーザーのみ利用可能です。 各エンドポイントの説明に必要なロールが記載されています。
| ロール | 説明 |
|---|---|
| Admin | 全ての操作が可能な管理者 |
| PM | プロジェクトマネージャー。案件・顧客・ユーザーの管理が可能 |
| General | 一般ユーザー。書類の作成・自分のデータの管理が可能 |
| Office | 事務ユーザー。閲覧中心で、書類の作成・ステータス変更は不可 |
ページネーション
一覧取得エンドポイントはページネーションに対応しています。 クエリパラメータでページ番号と取得件数を指定します。
パラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
| page | number | 1 | ページ番号 |
| limit | number | 20 | 1ページあたりの取得件数(最大100) |
レスポンス例
{
"success": true,
"data": [
"..."
],
"meta": {
"total": 150,
"page": 2,
"limit": 20,
"totalPages": 8
}
}meta.total は条件に一致する全件数、meta.totalPages は総ページ数です。
認証
認証済みユーザーの情報を取得するエンドポイントです。
/api/v1/me認証ユーザーのプロフィール取得
APIキーに紐づくユーザーのプロフィール情報を取得します。所属部署の情報も含まれます。
curl -X GET "https://setplan.app/api/v1/me" \
-H "Authorization: Bearer sk_live_xxxxx"会社情報
自社の会社情報および社印画像を管理するエンドポイントです。すべてのエンドポイントにAdmin権限が必要です。
/api/v1/company会社情報の取得
登録済みの自社情報を取得します。銀行口座情報や適格請求書番号なども含まれます。
curl -X GET "https://setplan.app/api/v1/company" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/company会社情報の更新
自社情報を更新します。会社情報が未登録の場合は新規作成されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | 必須 | 会社名 |
| postalCode | string | 任意 | 郵便番号 |
| address | string | 任意 | 住所 |
| building | string | 任意 | 建物名・階数 |
| representative | string | 任意 | 代表者名 |
| phone | string | 任意 | 電話番号 |
| fax | string | 任意 | FAX番号 |
| remarks | string | 任意 | 備考 |
| qualifiedInvoiceNumber | string | 任意 | 適格請求書発行事業者登録番号 |
| bankName | string | 任意 | 銀行名 |
| branchName | string | 任意 | 支店名 |
| accountType | string | 任意 | 口座種別(普通・当座など) |
| accountNumber | string | 任意 | 口座番号 |
| accountHolder | string | 任意 | 口座名義 |
| fiscalYearEndMonth | number | null | 任意 | 決算月(1〜12)。nullで未設定にできます。 |
curl -X PUT "https://setplan.app/api/v1/company" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "株式会社セットジャパン",
"postalCode": "150-0001",
"address": "東京都渋谷区神宮前1-2-3",
"representative": "山田太郎",
"phone": "03-1234-5678"
}'/api/v1/company/seal社印画像のアップロード
会社の社印画像をアップロードします。対応形式はPNG、JPG、JPEGで、最大5MBまでです。既存の社印画像がある場合は上書きされます。リクエストはmultipart/form-data形式で送信してください。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| file | File | 必須 | 社印画像ファイル(PNG/JPG/JPEG、最大5MB) |
curl -X POST "https://setplan.app/api/v1/company/seal" \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "file=@/path/to/seal.png"/api/v1/company/seal社印画像の削除
登録済みの社印画像を削除します。
curl -X DELETE "https://setplan.app/api/v1/company/seal" \
-H "Authorization: Bearer sk_live_xxxxx"ユーザー
ユーザーの一覧取得、作成、更新、削除、および印影画像の管理を行うエンドポイントです。
/api/v1/usersユーザー一覧の取得
ユーザーの一覧をページネーション付きで取得します。名前・メール・社員番号での検索や、ロール・部署・ステータスでの絞り込みが可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
| search | string | 任意 | 検索キーワード(姓、名、ユーザー名、メール、社員番号で部分一致検索) |
| role | string | 任意 | ロールで絞り込み(admin / pm / general / office) |
| departmentId | string | 任意 | 部署IDで絞り込み |
| status | string | 任意 | ステータスで絞り込み(active / inactive) |
curl -X GET "https://setplan.app/api/v1/users?page=1&limit=20&search=山田&role=admin" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/usersユーザーの作成
新規ユーザーを作成します。社員番号・ユーザー名・メールアドレスは一意である必要があります。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| employeeNumber | string | 必須 | 社員番号(一意) |
| username | string | 必須 | ユーザー名(一意) |
| string | 必須 | メールアドレス(一意) | |
| password | string | 必須 | パスワード(6文字以上) |
| lastName | string | 必須 | 姓 |
| firstName | string | 必須 | 名 |
| departmentId | string | null | 任意 | 所属部署ID |
| role | string | 任意 | ロール(admin / pm / general / office)。デフォルト: general |
curl -X POST "https://setplan.app/api/v1/users" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"employeeNumber": "EMP002",
"username": "suzuki_hanako",
"email": "suzuki@example.com",
"password": "securepassword",
"lastName": "鈴木",
"firstName": "花子",
"departmentId": "clx0987654321",
"role": "general"
}'/api/v1/users/{id}ユーザー詳細の取得
指定したIDのユーザー情報を取得します。Admin/PMは全ユーザーを閲覧可能、一般ユーザーは自分自身のみ閲覧可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | ユーザーID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/users/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/users/{id}ユーザー情報の更新
指定したIDのユーザー情報を更新します。Admin/PMは全ユーザーを更新可能で、ロールやステータスの変更も行えます。一般ユーザーは自分自身のみ更新可能ですが、ロール・ステータスの変更はできません。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | ユーザーID(パスパラメータ) |
| employeeNumber | string | 必須 | 社員番号(一意) |
| username | string | 必須 | ユーザー名(一意) |
| string | 必須 | メールアドレス(一意) | |
| password | string | 任意 | パスワード(6文字以上)。省略時は変更なし。 |
| lastName | string | 必須 | 姓 |
| firstName | string | 必須 | 名 |
| departmentId | string | null | 任意 | 所属部署ID。nullで部署なしに設定。 |
| role | string | 任意 | ロール(admin / pm / general / office)。Admin/PMのみ変更可能。 |
| status | string | 任意 | ステータス(active / inactive)。Admin/PMのみ変更可能。 |
curl -X PUT "https://setplan.app/api/v1/users/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"employeeNumber": "EMP001",
"username": "yamada_taro",
"email": "yamada@example.com",
"lastName": "山田",
"firstName": "太郎",
"departmentId": "clx0987654321",
"role": "admin",
"status": "active"
}'/api/v1/users/{id}ユーザーの無効化
指定したIDのユーザーを無効化(ステータスをinactiveに変更)します。物理削除は行われません。自分自身を無効化することはできません。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | ユーザーID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/users/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/users/{id}/sealユーザー印影画像のアップロード
指定したユーザーの印影画像をアップロードします。対応形式はPNG、JPEG、WebPで、最大5MBまでです。既存の印影画像がある場合は上書きされます。リクエストはmultipart/form-data形式で送信してください。本人またはAdmin/PMが実行可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | ユーザーID(パスパラメータ) |
| file | File | 必須 | 印影画像ファイル(PNG/JPEG/WebP、最大5MB) |
curl -X POST "https://setplan.app/api/v1/users/clx1234567890/seal" \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "file=@/path/to/seal.png"/api/v1/users/{id}/sealユーザー印影画像の削除
指定したユーザーの印影画像を削除します。本人またはAdmin/PMが実行可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | ユーザーID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/users/clx1234567890/seal" \
-H "Authorization: Bearer sk_live_xxxxx"部署
部署の一覧取得、作成、更新、削除を行うエンドポイントです。部署の取得は全ロールで可能ですが、作成・更新はAdmin/PM、削除はAdminのみが実行可能です。
/api/v1/departments部署一覧の取得
全部署の一覧を名前順で取得します。各部署に所属するユーザー数とプロジェクト数も含まれます。
curl -X GET "https://setplan.app/api/v1/departments" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/departments部署の作成
新規部署を作成します。部署名は一意である必要があります。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | 必須 | 部署名(一意) |
| sharedNotes | string | 任意 | 共有メモ。空文字列の場合はnullとして保存されます。 |
curl -X POST "https://setplan.app/api/v1/departments" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "デザイン部",
"sharedNotes": "UIデザインとUXリサーチを担当"
}'/api/v1/departments/{id}部署詳細の取得
指定したIDの部署情報を取得します。所属ユーザーの一覧やユーザー数・プロジェクト数も含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 部署ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/departments/clx0987654321" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/departments/{id}部署情報の更新
指定したIDの部署情報を更新します。部署名を変更する場合、既存の他部署と重複しないようにしてください。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 部署ID(パスパラメータ) |
| name | string | 任意 | 部署名(一意) |
| sharedNotes | string | 任意 | 共有メモ。空文字列の場合はnullとして保存されます。 |
curl -X PUT "https://setplan.app/api/v1/departments/clx0987654321" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "開発部",
"sharedNotes": "アジャイル開発を推進中"
}'/api/v1/departments/{id}部署の削除
指定したIDの部署を削除します。所属ユーザーまたは関連プロジェクトが存在する場合は削除できません。先にユーザーの所属変更やプロジェクトの移動を行ってください。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 部署ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/departments/clx0987654321" \
-H "Authorization: Bearer sk_live_xxxxx"顧客
顧客の一覧取得、作成、更新、削除を行うエンドポイントです。一覧取得と詳細取得は全ロールで可能ですが、作成・更新・削除はAdmin/PMのみが実行可能です。
/api/v1/customers顧客一覧の取得
顧客の一覧をページネーション付きで取得します。会社名・担当者名での検索やステータスでの絞り込みが可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
| search | string | 任意 | 検索キーワード(会社名、担当者名で部分一致検索) |
| status | string | 任意 | ステータスで絞り込み(active / inactive) |
curl -X GET "https://setplan.app/api/v1/customers?page=1&limit=20&search=田中" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/customers顧客の作成
新規顧客を作成します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | 必須 | 顧客名(会社名) |
| postalCode | string | 任意 | 郵便番号 |
| address | string | 任意 | 住所 |
| building | string | 任意 | 建物名・階数 |
| representative | string | 任意 | 担当者名 |
| phone | string | 任意 | 電話番号 |
| fax | string | 任意 | FAX番号 |
| remarks | string | 任意 | 備考 |
| status | string | 任意 | ステータス(active / inactive)。省略時はデフォルト値が適用されます。 |
curl -X POST "https://setplan.app/api/v1/customers" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "株式会社佐藤工業",
"postalCode": "530-0001",
"address": "大阪府大阪市北区梅田2-3-4",
"representative": "佐藤次郎",
"phone": "06-1234-5678"
}'/api/v1/customers/{id}顧客詳細の取得
指定したIDの顧客情報を取得します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 顧客ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/customers/clx3456789012" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/customers/{id}顧客情報の更新
指定したIDの顧客情報を更新します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 顧客ID(パスパラメータ) |
| name | string | 任意 | 顧客名(会社名) |
| postalCode | string | 任意 | 郵便番号 |
| address | string | 任意 | 住所 |
| building | string | 任意 | 建物名・階数 |
| representative | string | 任意 | 担当者名 |
| phone | string | 任意 | 電話番号 |
| fax | string | 任意 | FAX番号 |
| remarks | string | 任意 | 備考 |
| status | string | 任意 | ステータス(active / inactive) |
curl -X PUT "https://setplan.app/api/v1/customers/clx3456789012" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "株式会社田中商事",
"representative": "田中二郎",
"remarks": "主要取引先・契約更新済み"
}'/api/v1/customers/{id}顧客の削除
指定したIDの顧客を削除します。関連する書類(請求書・納品書など)が存在する場合は削除できません。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 顧客ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/customers/clx3456789012" \
-H "Authorization: Bearer sk_live_xxxxx"案件(Projects)
案件の作成・取得・更新・削除、および追加人件費の管理を行うエンドポイントです。
/api/v1/projects案件一覧の取得
ページネーション・検索・フィルタリング・ソートに対応した案件一覧を取得します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの取得件数(デフォルト: 20) |
| search | string | 任意 | 案件番号・案件名での検索キーワード |
| status | string | 任意 | ステータスでのフィルタリング(planning, developing, active, suspended, completed) |
| departmentId | string | 任意 | 部門IDでのフィルタリング |
| activeOnly | boolean | 任意 | trueの場合、planning・developing・activeのみ取得 |
| sortBy | string | 任意 | ソート対象カラム(projectNumber, projectName, status, budget, updatedAt) |
| sortOrder | string | 任意 | ソート順(asc, desc)デフォルト: desc |
curl -X GET "https://setplan.app/api/v1/projects?page=1&limit=20&status=active" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/projects案件の作成
新しい案件を作成します。Admin または PM ロールが必要です。案件番号は一意である必要があります。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| projectNumber | string | 必須 | 案件番号(1〜50文字) |
| projectName | string | 必須 | 案件名(1〜255文字) |
| description | string | 任意 | 案件の説明(最大10000文字) |
| status | string | 任意 | ステータス(planning, developing, active, suspended, completed)デフォルト: planning |
| projectType | string | 任意 | 案件種別(development, ses, maintenance, other, internal, product)デフォルト: development |
| departmentId | string | 任意 | 部門ID(null可) |
| estimateId | string | 任意 | 紐付ける見積書ID(null可) |
| purchaseOrderId | string | 任意 | 紐付ける発注書ID(null可) |
| plannedStartDate | string | 任意 | 予定開始日(ISO 8601形式) |
| plannedEndDate | string | 任意 | 予定終了日(ISO 8601形式) |
| actualStartDate | string | 任意 | 実績開始日(ISO 8601形式) |
| actualEndDate | string | 任意 | 実績終了日(ISO 8601形式) |
| budget | number | 任意 | 予算(円) |
| hourlyRate | number | 任意 | 時間単価(円) |
| deliveryDate | string | 任意 | 納品日(ISO 8601形式) |
| invoiceableDate | string | 任意 | 請求可能日(ISO 8601形式) |
| memo | string | 任意 | メモ(最大10000文字) |
| outsourcingCost | number | 任意 | 外注費(0以上、デフォルト: 0) |
| serverDomainCost | number | 任意 | サーバー・ドメイン費用(0以上、デフォルト: 0) |
curl -X POST "https://setplan.app/api/v1/projects" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"projectNumber": "PJ-2026-010",
"projectName": "株式会社XYZ ECサイト構築",
"status": "planning",
"projectType": "development",
"budget": 8000000,
"hourlyRate": 5000,
"plannedStartDate": "2026-05-01",
"plannedEndDate": "2026-09-30"
}'/api/v1/projects/{id}案件の詳細取得
指定されたIDの案件詳細を取得します。紐付けられた見積書・発注書の情報も含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/projects/clxxx1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/projects/{id}案件の更新
指定されたIDの案件を更新します。Admin または PM ロールが必要です。時間単価が変更された場合、人件費が自動で再計算されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
| projectNumber | string | 任意 | 案件番号(1〜50文字) |
| projectName | string | 任意 | 案件名(1〜255文字) |
| description | string | 任意 | 案件の説明(最大10000文字) |
| status | string | 任意 | ステータス(planning, developing, active, suspended, completed) |
| projectType | string | 任意 | 案件種別(development, ses, maintenance, other, internal, product) |
| departmentId | string | 任意 | 部門ID(nullで関連解除) |
| estimateId | string | 任意 | 見積書ID(nullで関連解除) |
| purchaseOrderId | string | 任意 | 発注書ID(nullで関連解除) |
| plannedStartDate | string | 任意 | 予定開始日(ISO 8601形式) |
| plannedEndDate | string | 任意 | 予定終了日(ISO 8601形式) |
| actualStartDate | string | 任意 | 実績開始日(ISO 8601形式) |
| actualEndDate | string | 任意 | 実績終了日(ISO 8601形式) |
| budget | number | 任意 | 予算(円) |
| hourlyRate | number | 任意 | 時間単価(円) |
| deliveryDate | string | 任意 | 納品日(ISO 8601形式) |
| invoiceableDate | string | 任意 | 請求可能日(ISO 8601形式) |
| memo | string | 任意 | メモ(最大10000文字) |
| outsourcingCost | number | 任意 | 外注費(0以上) |
| serverDomainCost | number | 任意 | サーバー・ドメイン費用(0以上) |
curl -X PUT "https://setplan.app/api/v1/projects/clxxx1" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "completed",
"actualEndDate": "2026-06-28"
}'/api/v1/projects/{id}案件の削除
指定されたIDの案件を削除します。Admin または PM ロールが必要です。関連するスケジュールや課題がある場合は削除できません。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/projects/clxxx1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/projects/{id}/additional-labor-costs追加人件費一覧の取得
指定された案件の追加人件費一覧を日付昇順で取得します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/projects/clxxx1/additional-labor-costs" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/projects/{id}/additional-labor-costs追加人件費の作成
指定された案件に追加人件費を1件作成します。Admin または PM ロールが必要です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
| date | string | 必須 | 対象日(ISO 8601形式) |
| hours | number | 任意 | 作業時間(null可) |
| laborCost | number | 任意 | 人件費(null可) |
curl -X POST "https://setplan.app/api/v1/projects/clxxx1/additional-labor-costs" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"date": "2026-04-10",
"hours": 6,
"laborCost": 30000
}'/api/v1/projects/{id}/additional-labor-costs追加人件費の一括更新
指定された案件の追加人件費を一括で作成・更新・削除します。Admin または PM ロールが必要です。トランザクション内で実行されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
| items | array | 必須 | 追加人件費の配列(id指定で更新、未指定で新規作成。各項目: id?, date, hours?, laborCost?) |
| deletedIds | string[] | 任意 | 削除する追加人件費IDの配列 |
curl -X PUT "https://setplan.app/api/v1/projects/clxxx1/additional-labor-costs" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "id": "alc1", "date": "2026-04-01", "hours": 10, "laborCost": 50000 },
{ "date": "2026-04-15", "hours": 8, "laborCost": 40000 }
],
"deletedIds": ["alc2"]
}'/api/v1/projects/{id}/additional-labor-costs追加人件費の削除
指定された案件の追加人件費を1件削除します。Admin または PM ロールが必要です。クエリパラメータで対象を指定します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 案件ID(パスパラメータ) |
| laborCostId | string | 必須 | 削除対象の追加人件費ID(クエリパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/projects/clxxx1/additional-labor-costs?laborCostId=alc3" \
-H "Authorization: Bearer sk_live_xxxxx"見積書(Estimates)
見積書の作成・取得・更新・削除、ステータス変更、複製を行うエンドポイントです。
/api/v1/estimates見積書一覧の取得
ページネーション・検索・フィルタリング・ソートに対応した見積書一覧を取得します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの取得件数(デフォルト: 20) |
| search | string | 任意 | 見積番号・件名・顧客名での検索キーワード |
| customerId | string | 任意 | 顧客IDでのフィルタリング |
| status | string | 任意 | ステータスでのフィルタリング(draft, sent, accepted, rejected, expired) |
| userId | string | 任意 | 担当者IDでのフィルタリング |
| issueDateStart | string | 任意 | 発行日の開始日(ISO 8601形式) |
| issueDateEnd | string | 任意 | 発行日の終了日(ISO 8601形式) |
| validUntilStart | string | 任意 | 有効期限の開始日(ISO 8601形式) |
| validUntilEnd | string | 任意 | 有効期限の終了日(ISO 8601形式) |
| sortBy | string | 任意 | ソート対象カラム(estimateNumber, issueDate, validUntil, subtotal, totalAmount, status, customerName, userName, createdAt, updatedAt) |
| sortOrder | string | 任意 | ソート順(asc, desc)デフォルト: desc |
curl -X GET "https://setplan.app/api/v1/estimates?page=1&limit=20&status=draft" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/estimates見積書の作成
新しい見積書を作成します。見積番号は「YYYY-MM-NNN」形式で自動採番されます。金額は明細から自動計算されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| customerId | string | 必須 | 顧客ID |
| subject | string | 必須 | 件名 |
| honorific | string | 任意 | 敬称(デフォルト: 御中) |
| issueDate | string | 任意 | 発行日(ISO 8601形式、デフォルト: 現在日時) |
| validUntil | string | 任意 | 有効期限(ISO 8601形式、デフォルト: 30日後) |
| taxType | string | 任意 | 税区分(inclusive: 内税, exclusive: 外税)デフォルト: exclusive |
| taxRate | number | 任意 | 税率(デフォルト: 10) |
| roundingType | string | 任意 | 端数処理(floor: 切り捨て, ceil: 切り上げ, round: 四捨五入)デフォルト: floor |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(各項目: name, quantity, unit?, unitPrice, taxType, taxRate?, amount?, remarks?, displayOrder?, itemType?) |
| projectIds | array | 任意 | 関連案件IDの配列(指定した案件のestimateIdが更新されます) |
curl -X POST "https://setplan.app/api/v1/estimates" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerId": "cust1",
"subject": "システム開発費用",
"taxType": "exclusive",
"taxRate": 10,
"items": [
{
"name": "要件定義",
"quantity": 1,
"unit": "式",
"unitPrice": 1500000,
"taxType": "taxable"
},
{
"name": "設計・開発",
"quantity": 1,
"unit": "式",
"unitPrice": 3000000,
"taxType": "taxable"
}
]
}'/api/v1/estimates/{id}見積書の詳細取得
指定されたIDの見積書詳細を取得します。顧客情報・担当者情報・明細・紐付き案件が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 見積書ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/estimates/est1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/estimates/{id}見積書の更新
指定されたIDの見積書を更新します。Admin/PM以外は自身の見積書のみ編集可能です。明細は全件入れ替えとなります。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 見積書ID(パスパラメータ) |
| customerId | string | 必須 | 顧客ID |
| subject | string | 必須 | 件名 |
| honorific | string | 任意 | 敬称(デフォルト: 御中) |
| issueDate | string | 任意 | 発行日(ISO 8601形式) |
| validUntil | string | 任意 | 有効期限(ISO 8601形式) |
| taxType | string | 任意 | 税区分(inclusive, exclusive)デフォルト: exclusive |
| taxRate | number | 任意 | 税率(デフォルト: 10) |
| roundingType | string | 任意 | 端数処理(floor, ceil, round)デフォルト: floor |
| status | string | 任意 | ステータス(draft, sent, accepted, rejected, expired)デフォルト: draft |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(各項目: id?, name, quantity, unit?, unitPrice, taxType, remarks?, displayOrder?, itemType?) |
| projectIds | array | 任意 | 関連案件IDの配列(指定時は全置換:既存の紐付けを解除し、指定した案件を紐付けます) |
curl -X PUT "https://setplan.app/api/v1/estimates/est1" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerId": "cust1",
"subject": "コーポレートサイト制作(改訂版)",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"name": "Webデザイン",
"quantity": 1,
"unit": "式",
"unitPrice": 2500000,
"taxType": "taxable"
}
]
}'/api/v1/estimates/{id}見積書の削除
指定されたIDの見積書を削除します。Admin/PM以外は自身の見積書のみ削除可能です。添付ファイルも同時に削除されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 見積書ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/estimates/est1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/estimates/{id}/status見積書ステータスの更新
指定されたIDの見積書のステータスを変更します。Officeロールは実行できません。Admin/PM以外は自身の見積書のみ変更可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 見積書ID(パスパラメータ) |
| status | string | 必須 | 新しいステータス(draft, sent, accepted, rejected, expired) |
curl -X PUT "https://setplan.app/api/v1/estimates/est1/status" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "sent"
}'/api/v1/estimates/{id}/duplicate見積書の複製
指定されたIDの見積書を複製して新しい見積書を作成します。新しい見積番号が自動採番され、ステータスはdraftになります。Admin/PM以外は自身の見積書のみ複製可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 複製元の見積書ID(パスパラメータ) |
curl -X POST "https://setplan.app/api/v1/estimates/est1/duplicate" \
-H "Authorization: Bearer sk_live_xxxxx"請求書(Invoices)
請求書の作成・取得・更新・削除、ステータス変更、複製、見積書からの変換を行うエンドポイントです。
/api/v1/invoices請求書一覧の取得
ページネーション・検索・フィルタリング・ソートに対応した請求書一覧を取得します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの取得件数(デフォルト: 20) |
| search | string | 任意 | 請求書番号・件名・顧客名での検索キーワード |
| customerId | string | 任意 | 顧客IDでのフィルタリング |
| status | string | 任意 | ステータスでのフィルタリング(draft, sent, paid, cancelled) |
| userId | string | 任意 | 担当者IDでのフィルタリング |
| issueDateStart | string | 任意 | 発行日の開始日(ISO 8601形式) |
| issueDateEnd | string | 任意 | 発行日の終了日(ISO 8601形式) |
| dueDateStart | string | 任意 | 支払期限の開始日(ISO 8601形式) |
| dueDateEnd | string | 任意 | 支払期限の終了日(ISO 8601形式) |
| sortBy | string | 任意 | ソート対象カラム(invoiceNumber, issueDate, dueDate, subtotal, totalAmount, status, customerName, userName, createdAt, updatedAt) |
| sortOrder | string | 任意 | ソート順(asc, desc)デフォルト: desc |
curl -X GET "https://setplan.app/api/v1/invoices?page=1&limit=20&status=draft" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/invoices請求書の作成
新しい請求書を作成します。請求書番号は「YYYY-MM-NNN」形式で自動採番されます。金額は明細から自動計算されます(8%・10%の軽減税率に対応)。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| customerId | string | 必須 | 顧客ID |
| subject | string | 必須 | 件名 |
| issueDate | string | 必須 | 発行日(ISO 8601形式) |
| dueDate | string | 必須 | 支払期限(ISO 8601形式) |
| honorific | string | 任意 | 敬称(デフォルト: 御中) |
| taxType | string | 任意 | 税区分(inclusive: 内税, exclusive: 外税)デフォルト: exclusive |
| taxRate | number | 任意 | 税率(デフォルト: 10) |
| roundingType | string | 任意 | 端数処理(floor: 切り捨て, ceil: 切り上げ, round: 四捨五入)デフォルト: floor |
| remarks | string | 任意 | 備考(デフォルト: お振り込み手数料はお客様ご負担にてお願いいたします。) |
| items | array | 必須 | 明細行の配列(各項目: name, quantity, unit?, unitPrice, taxType, taxRate?, amount?, remarks?, displayOrder?) |
curl -X POST "https://setplan.app/api/v1/invoices" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerId": "cust1",
"subject": "4月分 開発費用",
"issueDate": "2026-04-30",
"dueDate": "2026-05-31",
"taxType": "exclusive",
"taxRate": 10,
"items": [
{
"name": "システム開発費",
"quantity": 1,
"unit": "式",
"unitPrice": 3000000,
"taxType": "taxable"
}
]
}'/api/v1/invoices/{id}請求書の詳細取得
指定されたIDの請求書詳細を取得します。顧客情報・担当者情報・明細・紐付き見積書が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 請求書ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/invoices/inv1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/invoices/{id}請求書の更新
指定されたIDの請求書を更新します。Admin/PM以外は自身のdraft状態の請求書のみ編集可能です。明細は差分更新(upsert)で処理されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 請求書ID(パスパラメータ) |
| customerId | string | 必須 | 顧客ID |
| subject | string | 必須 | 件名 |
| issueDate | string | 必須 | 発行日(ISO 8601形式) |
| dueDate | string | 必須 | 支払期限(ISO 8601形式) |
| honorific | string | 任意 | 敬称 |
| taxType | string | 必須 | 税区分(inclusive, exclusive) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor, ceil, round) |
| status | string | 任意 | ステータス(draft, sent, paid, cancelled) |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(各項目: id?, name, quantity, unit?, unitPrice, taxType, taxRate, amount, remarks?, displayOrder) |
curl -X PUT "https://setplan.app/api/v1/invoices/inv1" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerId": "cust1",
"subject": "コーポレートサイト制作(修正版)",
"issueDate": "2026-04-01",
"dueDate": "2026-04-30",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"name": "Webデザイン・開発",
"quantity": "1",
"unit": "式",
"unitPrice": "5500000",
"taxType": "taxable",
"taxRate": 10,
"amount": "5500000",
"displayOrder": 0
}
]
}'/api/v1/invoices/{id}請求書の削除
指定されたIDの請求書を削除します。Admin/PM以外は自身の請求書のみ削除可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 請求書ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/invoices/inv1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/invoices/{id}/status請求書ステータスの更新
指定されたIDの請求書のステータスを変更します。Officeロールは実行できません。Admin/PM以外は自身の請求書のみ変更可能です。paidステータスに変更する場合、入金額と入金日を指定できます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 請求書ID(パスパラメータ) |
| status | string | 必須 | 新しいステータス(draft, sent, paid, cancelled) |
| paidAmount | string | 任意 | 入金額(paidステータス時。未指定の場合は請求金額が設定されます) |
| paidDate | string | 任意 | 入金日(ISO 8601形式。paidステータス時。未指定の場合は現在日時) |
curl -X PUT "https://setplan.app/api/v1/invoices/inv1/status" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "paid",
"paidAmount": "5500000",
"paidDate": "2026-04-25"
}'/api/v1/invoices/{id}/duplicate請求書の複製
指定されたIDの請求書を複製して新しい請求書を作成します。新しい請求書番号が自動採番され、ステータスはdraftになります。件名には「(複製)」が付与されます。Admin/PM以外は自身の請求書のみ複製可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 複製元の請求書ID(パスパラメータ) |
curl -X POST "https://setplan.app/api/v1/invoices/inv1/duplicate" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/invoices/from-estimate見積書から請求書を作成
指定された見積書の内容を元に請求書を作成します。Officeロールは実行できません。見積書1件につき請求書は1件のみ作成可能です。支払期限は翌月末に自動設定されます。breakdown項目は除外されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| estimateId | string | 必須 | 変換元の見積書ID |
curl -X POST "https://setplan.app/api/v1/invoices/from-estimate" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"estimateId": "est1"
}'発注書(Purchase Orders)
発注書の作成・取得・更新・削除、ステータス変更、複製、見積書からの変換を行うエンドポイントです。
/api/v1/purchase-orders発注書一覧の取得
ページネーション・検索・フィルタリング・ソートに対応した発注書一覧を取得します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの取得件数(デフォルト: 20) |
| search | string | 任意 | 発注書番号・件名・発注先名での検索キーワード |
| supplierId | string | 任意 | 発注先IDでのフィルタリング |
| status | string | 任意 | ステータスでのフィルタリング(draft, sent, approved, rejected, closed) |
| userId | string | 任意 | 担当者IDでのフィルタリング |
| issueDateStart | string | 任意 | 発行日の開始日(ISO 8601形式) |
| issueDateEnd | string | 任意 | 発行日の終了日(ISO 8601形式) |
| deliveryDateStart | string | 任意 | 納品日の開始日(ISO 8601形式) |
| deliveryDateEnd | string | 任意 | 納品日の終了日(ISO 8601形式) |
| sortBy | string | 任意 | ソート対象カラム(orderNumber, issueDate, deliveryDate, subtotal, totalAmount, status, supplierName, userName, createdAt, updatedAt) |
| sortOrder | string | 任意 | ソート順(asc, desc)デフォルト: desc |
curl -X GET "https://setplan.app/api/v1/purchase-orders?page=1&limit=20&status=draft" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/purchase-orders発注書の作成
新しい発注書を作成します。発注書番号は「YYYY-MM-NNN」形式で自動採番されます。金額は明細から自動計算されます(8%・10%の軽減税率に対応)。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| supplierId | string | 必須 | 発注先ID |
| subject | string | 必須 | 件名 |
| issueDate | string | 必須 | 発行日(ISO 8601形式) |
| honorific | string | 任意 | 敬称(デフォルト: 御中) |
| deliveryDate | string | 任意 | 納品日(ISO 8601形式) |
| completionPeriod | string | 任意 | 完了期間 |
| deliveryLocation | string | 任意 | 納品場所 |
| paymentTerms | string | 任意 | 支払条件 |
| taxType | string | 必須 | 税区分(inclusive: 内税, exclusive: 外税) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor: 切り捨て, ceil: 切り上げ, round: 四捨五入) |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(各項目: name, quantity, unit?, unitPrice, taxType, taxRate?, amount?, remarks?, displayOrder?) |
curl -X POST "https://setplan.app/api/v1/purchase-orders" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"supplierId": "sup1",
"subject": "インフラ構築業務委託",
"issueDate": "2026-04-07",
"deliveryDate": "2026-06-30",
"paymentTerms": "月末締め翌月末支払い",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"name": "サーバー構築",
"quantity": 1,
"unit": "式",
"unitPrice": 800000,
"taxType": "taxable"
}
]
}'/api/v1/purchase-orders/{id}発注書の詳細取得
指定されたIDの発注書詳細を取得します。発注先情報・担当者情報・明細が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 発注書ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/purchase-orders/po1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/purchase-orders/{id}発注書の更新
指定されたIDの発注書を更新します。Admin/PM以外は自身のdraft状態の発注書のみ編集可能です。明細は全件削除後に再作成されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 発注書ID(パスパラメータ) |
| supplierId | string | 必須 | 発注先ID |
| subject | string | 必須 | 件名 |
| issueDate | string | 必須 | 発行日(ISO 8601形式) |
| honorific | string | 任意 | 敬称 |
| deliveryDate | string | 任意 | 納品日(ISO 8601形式) |
| completionPeriod | string | 任意 | 完了期間 |
| deliveryLocation | string | 任意 | 納品場所 |
| paymentTerms | string | 任意 | 支払条件 |
| taxType | string | 必須 | 税区分(inclusive, exclusive) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor, ceil, round) |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(各項目: name, quantity, unit?, unitPrice, taxType, taxRate?, amount?, remarks?, displayOrder?) |
curl -X PUT "https://setplan.app/api/v1/purchase-orders/po1" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"supplierId": "sup1",
"subject": "デザイン制作業務委託(改訂版)",
"issueDate": "2026-04-07",
"deliveryDate": "2026-06-30",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"name": "UIデザイン制作",
"quantity": 1,
"unit": "式",
"unitPrice": 1800000,
"taxType": "taxable"
}
]
}'/api/v1/purchase-orders/{id}発注書の削除
指定されたIDの発注書を削除します。Admin/PM以外は自身の発注書のみ削除可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 発注書ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/purchase-orders/po1" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/purchase-orders/{id}/status発注書ステータスの更新
指定されたIDの発注書のステータスを変更します。Officeロールは実行できません。Admin/PM以外は自身の発注書のみ変更可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 発注書ID(パスパラメータ) |
| status | string | 必須 | 新しいステータス(draft, sent, approved, rejected, closed) |
curl -X PUT "https://setplan.app/api/v1/purchase-orders/po1/status" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "sent"
}'/api/v1/purchase-orders/{id}/duplicate発注書の複製
指定されたIDの発注書を複製して新しい発注書を作成します。新しい発注書番号が自動採番され、ステータスはdraftになります。件名には「(複製)」が付与されます。Admin/PM以外は自身の発注書のみ複製可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 複製元の発注書ID(パスパラメータ) |
curl -X POST "https://setplan.app/api/v1/purchase-orders/po1/duplicate" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/purchase-orders/from-estimate見積書から発注書を作成
指定された見積書の内容を元に発注書を作成します。Officeロールは実行できません。見積書の顧客が発注先として設定されます。納品日は30日後に自動設定されます。breakdown項目は除外されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| estimateId | string | 必須 | 変換元の見積書ID |
curl -X POST "https://setplan.app/api/v1/purchase-orders/from-estimate" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"estimateId": "est1"
}'納品書
納品書の作成・取得・更新・削除、ステータス変更、複製、見積書からの変換を行うエンドポイントです。
/api/v1/delivery-notes納品書一覧の取得
納品書の一覧をページネーション付きで取得します。ステータス、顧客、担当者、納品日範囲、キーワードによるフィルタリングが可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
| status | string | 任意 | ステータスでフィルタ(draft, sent) |
| customerId | string | 任意 | 顧客IDでフィルタ |
| userId | string | 任意 | 担当者IDでフィルタ |
| search | string | 任意 | キーワード検索(納品書番号・件名・顧客名で部分一致検索) |
| deliveryDateStart | string | 任意 | 納品日の開始日(YYYY-MM-DD形式) |
| deliveryDateEnd | string | 任意 | 納品日の終了日(YYYY-MM-DD形式) |
| sortBy | string | 任意 | ソート対象カラム(deliveryNoteNumber, deliveryDate, subtotal, totalAmount, status, createdAt, updatedAt, customerName, userName) |
| sortOrder | string | 任意 | ソート順(asc, desc。デフォルト: desc) |
curl -X GET "https://setplan.app/api/v1/delivery-notes?page=1&limit=20&status=draft" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/delivery-notes納品書の作成
新しい納品書を作成します。納品書番号はYYYY-MM-NNN形式で自動採番されます。ステータスはdraftで作成されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| customerId | string | 必須 | 顧客ID |
| subject | string | 必須 | 件名 |
| deliveryDate | string | 必須 | 納品日(YYYY-MM-DD形式) |
| taxType | string | 必須 | 税区分(inclusive: 税込, exclusive: 税抜) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor: 切捨, ceil: 切上, round: 四捨五入) |
| honorific | string | 任意 | 敬称(デフォルト: 御中) |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(name, quantity, unitPrice, taxType, taxRate, unit, amount, remarks, displayOrder) |
curl -X POST "https://setplan.app/api/v1/delivery-notes" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerId": "clx0987654321",
"subject": "Webサイトリニューアル",
"deliveryDate": "2026-04-15",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"name": "デザイン制作",
"quantity": 1,
"unitPrice": 300000,
"taxType": "taxable",
"taxRate": 10,
"unit": "式",
"displayOrder": 0
}
]
}'/api/v1/delivery-notes/{id}納品書の詳細取得
指定されたIDの納品書の詳細情報を取得します。顧客、担当者、見積書、明細行の情報が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 納品書ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/delivery-notes/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/delivery-notes/{id}納品書の更新
指定されたIDの納品書を更新します。Admin/PM以外は自分の下書き納品書のみ編集可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 納品書ID(パスパラメータ) |
| customerId | string | 必須 | 顧客ID |
| subject | string | 必須 | 件名 |
| deliveryDate | string | 必須 | 納品日(YYYY-MM-DD形式) |
| taxType | string | 必須 | 税区分(inclusive, exclusive) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor, ceil, round) |
| status | string | 任意 | ステータス(draft, sent) |
| items | array | 必須 | 明細行の配列 |
curl -X PUT "https://setplan.app/api/v1/delivery-notes/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"customerId": "clx0987654321",
"subject": "Webサイトリニューアル(更新)",
"deliveryDate": "2026-04-20",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"id": "clx2222222222",
"name": "デザイン制作",
"quantity": "1",
"unitPrice": "350000",
"taxType": "taxable",
"taxRate": 10,
"amount": "350000",
"unit": "式",
"displayOrder": 0
}
]
}'/api/v1/delivery-notes/{id}納品書の削除
指定されたIDの納品書を削除します。Admin/PM以外は自分の納品書のみ削除可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 納品書ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/delivery-notes/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/delivery-notes/{id}/status納品書のステータス変更
指定されたIDの納品書のステータスを変更します。Officeロールはステータス変更不可です。Admin/PM以外は自分の納品書のみ変更可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 納品書ID(パスパラメータ) |
| status | string | 必須 | 変更先ステータス(draft, sent) |
curl -X PUT "https://setplan.app/api/v1/delivery-notes/clx1234567890/status" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"status": "sent"}'/api/v1/delivery-notes/{id}/duplicate納品書の複製
指定されたIDの納品書を複製します。件名には「(複製)」が付与され、ステータスはdraftで作成されます。Admin/PM以外は自分の納品書のみ複製可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 複製元の納品書ID(パスパラメータ) |
curl -X POST "https://setplan.app/api/v1/delivery-notes/clx1234567890/duplicate" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/delivery-notes/from-estimate見積書から納品書を作成
指定された見積書のデータを元に納品書を作成します。明細の内訳行(breakdown)は除外されます。Officeロールは使用不可です。Admin/PM以外は自分の見積書からのみ作成可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| estimateId | string | 必須 | 元となる見積書のID |
curl -X POST "https://setplan.app/api/v1/delivery-notes/from-estimate" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"estimateId": "clx5555555555"}'注文請書
注文請書の作成・取得・更新・削除、ステータス変更、複製、見積書からの変換を行うエンドポイントです。
/api/v1/order-confirmations注文請書一覧の取得
注文請書の一覧をページネーション付きで取得します。ステータス、仕入先、担当者、発行日・納品日範囲、キーワードによるフィルタリングが可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
| status | string | 任意 | ステータスでフィルタ(draft, sent, approved, rejected, closed) |
| supplierId | string | 任意 | 仕入先IDでフィルタ |
| userId | string | 任意 | 担当者IDでフィルタ |
| search | string | 任意 | キーワード検索(注文請書番号・件名・仕入先名で部分一致検索) |
| issueDateStart | string | 任意 | 発行日の開始日(YYYY-MM-DD形式) |
| issueDateEnd | string | 任意 | 発行日の終了日(YYYY-MM-DD形式) |
| deliveryDateStart | string | 任意 | 納品日の開始日(YYYY-MM-DD形式) |
| deliveryDateEnd | string | 任意 | 納品日の終了日(YYYY-MM-DD形式) |
| sortBy | string | 任意 | ソート対象カラム(confirmationNumber, issueDate, deliveryDate, subtotal, totalAmount, status, createdAt, updatedAt, supplierName, userName) |
| sortOrder | string | 任意 | ソート順(asc, desc。デフォルト: desc) |
curl -X GET "https://setplan.app/api/v1/order-confirmations?page=1&limit=20&status=draft" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/order-confirmations注文請書の作成
新しい注文請書を作成します。注文請書番号はYYYY-MM-NNN形式で自動採番されます。ステータスはdraftで作成されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| supplierId | string | 必須 | 仕入先ID |
| subject | string | 必須 | 件名 |
| issueDate | string | 必須 | 発行日(YYYY-MM-DD形式) |
| taxType | string | 必須 | 税区分(inclusive: 税込, exclusive: 税抜) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor: 切捨, ceil: 切上, round: 四捨五入) |
| deliveryDate | string | 任意 | 納品日(YYYY-MM-DD形式) |
| completionPeriod | string | 任意 | 完了予定期間 |
| paymentTerms | string | 任意 | 支払条件 |
| purchaseOrderId | string | 任意 | 関連する発注書ID |
| honorific | string | 任意 | 敬称(デフォルト: 御中) |
| remarks | string | 任意 | 備考 |
| items | array | 必須 | 明細行の配列(name, quantity, unitPrice, taxType, taxRate, unit, amount, remarks, displayOrder) |
curl -X POST "https://setplan.app/api/v1/order-confirmations" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"supplierId": "clx0987654321",
"subject": "システム開発業務委託",
"issueDate": "2026-04-01",
"deliveryDate": "2026-06-30",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"completionPeriod": "2026年6月末",
"paymentTerms": "月末締め翌月末払い",
"items": [
{
"name": "バックエンド開発",
"quantity": 1,
"unitPrice": 2000000,
"taxType": "taxable",
"taxRate": 10,
"unit": "式",
"displayOrder": 0
}
]
}'/api/v1/order-confirmations/{id}注文請書の詳細取得
指定されたIDの注文請書の詳細情報を取得します。仕入先、担当者、発注書、明細行の情報が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 注文請書ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/order-confirmations/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/order-confirmations/{id}注文請書の更新
指定されたIDの注文請書を更新します。Admin/PM以外は自分の下書き注文請書のみ編集可能です。既存の明細行は全て置き換えられます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 注文請書ID(パスパラメータ) |
| supplierId | string | 必須 | 仕入先ID |
| subject | string | 必須 | 件名 |
| issueDate | string | 必須 | 発行日(YYYY-MM-DD形式) |
| taxType | string | 必須 | 税区分(inclusive, exclusive) |
| taxRate | number | 必須 | 税率 |
| roundingType | string | 必須 | 端数処理(floor, ceil, round) |
| items | array | 必須 | 明細行の配列 |
curl -X PUT "https://setplan.app/api/v1/order-confirmations/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"supplierId": "clx0987654321",
"subject": "システム開発業務委託(更新)",
"issueDate": "2026-04-01",
"taxType": "exclusive",
"taxRate": 10,
"roundingType": "floor",
"items": [
{
"name": "バックエンド開発",
"quantity": 1,
"unitPrice": 2500000,
"taxType": "taxable",
"taxRate": 10,
"unit": "式",
"displayOrder": 0
}
]
}'/api/v1/order-confirmations/{id}注文請書の削除
指定されたIDの注文請書を削除します。Admin/PM以外は自分の注文請書のみ削除可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 注文請書ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/order-confirmations/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/order-confirmations/{id}/status注文請書のステータス変更
指定されたIDの注文請書のステータスを変更します。Officeロールはステータス変更不可です。Admin/PM以外は自分の注文請書のみ変更可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 注文請書ID(パスパラメータ) |
| status | string | 必須 | 変更先ステータス(draft, sent, approved, rejected, closed) |
curl -X PUT "https://setplan.app/api/v1/order-confirmations/clx1234567890/status" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"status": "sent"}'/api/v1/order-confirmations/{id}/duplicate注文請書の複製
指定されたIDの注文請書を複製します。件名には「(複製)」が付与され、ステータスはdraftで作成されます。Admin/PM以外は自分の注文請書のみ複製可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 複製元の注文請書ID(パスパラメータ) |
curl -X POST "https://setplan.app/api/v1/order-confirmations/clx1234567890/duplicate" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/order-confirmations/from-estimate見積書から注文請書を作成
指定された見積書のデータを元に注文請書を作成します。明細の内訳行(breakdown)は除外されます。Officeロールは使用不可です。Admin/PM以外は自分の見積書からのみ作成可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| estimateId | string | 必須 | 元となる見積書のID |
curl -X POST "https://setplan.app/api/v1/order-confirmations/from-estimate" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"estimateId": "clx5555555555"}'課題管理
課題(イシュー)の作成・取得・更新・削除、およびコメントの取得・作成を行うエンドポイントです。
/api/v1/issues課題一覧の取得
課題の一覧をページネーション付きで取得します。ステータス、優先度、案件、担当者、キーワードによるフィルタリングが可能です。アーカイブ済みの課題はデフォルトで除外されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
| status | string | 任意 | ステータスでフィルタ(open, in_progress, resolved, closed, archived, all) |
| priority | string | 任意 | 優先度でフィルタ(low, medium, high, critical, all) |
| projectId | string | 任意 | 案件IDでフィルタ(allで全案件) |
| assigneeId | string | 任意 | 担当者IDでフィルタ |
| search | string | 任意 | キーワード検索(タイトル・説明で部分一致検索) |
curl -X GET "https://setplan.app/api/v1/issues?page=1&limit=20&status=open&priority=high" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/issues課題の作成
新しい課題を作成します。報告者は認証ユーザーが自動設定されます。Officeロールは作成不可です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| title | string | 必須 | 課題タイトル(最大255文字) |
| projectId | string | 必須 | 関連する案件ID |
| description | string | 任意 | 課題の説明(最大10000文字) |
| priority | string | 任意 | 優先度(low, medium, high, critical。デフォルト: medium) |
| status | string | 任意 | ステータス(open, in_progress, resolved, closed, archived。デフォルト: open) |
| category | string | 任意 | カテゴリ(最大100文字) |
| assigneeId | string | 任意 | 担当者ID |
| dueDate | string | 任意 | 期限日(YYYY-MM-DD形式) |
| startDate | string | 任意 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 任意 | 終了日(YYYY-MM-DD形式) |
| progress | number | 任意 | 進捗率(0-100。デフォルト: 0) |
| parentIssueId | string | 任意 | 親課題ID |
| dependencies | string | 任意 | 依存関係(最大1000文字) |
curl -X POST "https://setplan.app/api/v1/issues" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"title": "ログイン画面のレイアウト崩れ",
"projectId": "clx5555555555",
"description": "スマートフォンでログイン画面を表示した際にボタンが画面外に出る",
"priority": "high",
"assigneeId": "clx2222222222",
"dueDate": "2026-04-15",
"startDate": "2026-04-01",
"endDate": "2026-04-15",
"category": "バグ"
}'/api/v1/issues/{id}課題の詳細取得
指定されたIDの課題の詳細情報を取得します。案件、報告者、担当者、親課題、子課題、コメントの情報が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 課題ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/issues/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/issues/{id}課題の更新
指定されたIDの課題を更新します。部分更新が可能で、指定したフィールドのみ更新されます。Officeロールは更新不可です。ステータスをresolvedに変更すると解決日時が自動設定されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 課題ID(パスパラメータ) |
| title | string | 任意 | 課題タイトル |
| description | string | 任意 | 課題の説明 |
| projectId | string | 任意 | 案件ID |
| priority | string | 任意 | 優先度(low, medium, high, critical) |
| status | string | 任意 | ステータス(open, in_progress, resolved, closed, archived) |
| category | string | 任意 | カテゴリ |
| assigneeId | string | 任意 | 担当者ID(空文字で担当者解除) |
| progress | number | 任意 | 進捗率(0-100) |
curl -X PUT "https://setplan.app/api/v1/issues/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "in_progress",
"progress": 50,
"assigneeId": "clx2222222222"
}'/api/v1/issues/{id}課題の削除
指定されたIDの課題を削除します。Adminまたは報告者本人のみ削除可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 課題ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/issues/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/issues/{id}/comments課題コメント一覧の取得
指定された課題のコメント一覧をページネーション付きで取得します。作成日時の昇順でソートされます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 課題ID(パスパラメータ) |
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 50) |
curl -X GET "https://setplan.app/api/v1/issues/clx1234567890/comments?page=1&limit=50" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/issues/{id}/comments課題コメントの作成
指定された課題にコメントを追加します。投稿者は認証ユーザーが自動設定されます。Officeロールはコメント作成不可です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 課題ID(パスパラメータ) |
| content | string | 必須 | コメント内容(最大5000文字) |
curl -X POST "https://setplan.app/api/v1/issues/clx1234567890/comments" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{"content": "修正が完了しました。レビューをお願いします。"}'予定実績
日次の予定・実績の作成・取得・更新・削除、カレンダー表示、分析データの取得を行うエンドポイントです。
/api/v1/schedules予定実績一覧の取得
予定実績の一覧をページネーション付きで取得します。日付範囲、ユーザー、部署、案件、キーワードによるフィルタリングが可能です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
| startDate | string | 任意 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 任意 | 終了日(YYYY-MM-DD形式) |
| userId | string[] | 任意 | ユーザーIDでフィルタ(複数指定可) |
| departmentId | string[] | 任意 | 部署IDでフィルタ(複数指定可) |
| projectId | string[] | 任意 | 案件IDでフィルタ(複数指定可、予定または実績に含まれる案件) |
| search | string | 任意 | キーワード検索(予定・実績の内容で部分一致検索) |
| sortBy | string | 任意 | ソート対象(scheduleDate, userName。デフォルト: scheduleDate) |
| sortOrder | string | 任意 | ソート順(asc, desc。デフォルト: desc) |
curl -X GET "https://setplan.app/api/v1/schedules?page=1&limit=20&startDate=2026-04-01&endDate=2026-04-30&userId=clx1111111111" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/schedules予定実績の作成
新しい日次の予定実績を作成します。同一ユーザー・同一日付の重複登録はできません。Admin/PMは他ユーザーの予定実績も作成可能です。実績に案件が紐づいている場合、案件の投下工数が自動再計算されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| scheduleDate | string | 必須 | 対象日付(YYYY-MM-DD形式) |
| workLocation | string | 必須 | 勤務場所(office: 出社, remote: リモート, client_site: 客先, business_trip: 出張, paid_leave: 有給休暇) |
| checkInTime | string | 任意 | 出勤時刻(HH:mm形式) |
| checkOutTime | string | 任意 | 退勤時刻(HH:mm形式) |
| breakTime | number | 任意 | 休憩時間(時間単位、0-24。デフォルト: 0) |
| reflection | string | 任意 | 振り返り・メモ(最大2000文字) |
| userId | string | 任意 | 対象ユーザーID(Admin/PMのみ他ユーザーを指定可) |
| plans | array | 任意 | 予定の配列(projectId, content, details) |
| actuals | array | 任意 | 実績の配列(projectId, content, hours, details) |
curl -X POST "https://setplan.app/api/v1/schedules" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"scheduleDate": "2026-04-07",
"workLocation": "office",
"checkInTime": "09:00",
"checkOutTime": "18:00",
"breakTime": 1,
"plans": [
{
"projectId": "clx5555555555",
"content": "設計書の作成"
}
],
"actuals": [
{
"projectId": "clx5555555555",
"content": "設計書の作成",
"hours": 4
},
{
"projectId": "clx5555555556",
"content": "コードレビュー",
"hours": 3
}
]
}'/api/v1/schedules/{id}予定実績の詳細取得
指定されたIDの予定実績の詳細情報を取得します。ユーザー、予定、実績、関連案件の情報が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 予定実績ID(パスパラメータ) |
curl -X GET "https://setplan.app/api/v1/schedules/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/schedules/{id}予定実績の更新
指定されたIDの予定実績を更新します。予定・実績は全て置き換えられます。Admin/PM以外は自分の予定実績のみ編集可能です。影響を受ける案件の投下工数が自動再計算されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 予定実績ID(パスパラメータ) |
| workLocation | string | 必須 | 勤務場所(office, remote, client_site, business_trip, paid_leave) |
| checkInTime | string | 任意 | 出勤時刻 |
| checkOutTime | string | 任意 | 退勤時刻 |
| breakTime | number | 任意 | 休憩時間(時間単位) |
| reflection | string | 任意 | 振り返り・メモ |
| scheduleDate | string | 任意 | 対象日付の変更(YYYY-MM-DD形式) |
| userId | string | 任意 | 所有者変更(Admin/PMのみ) |
| plans | array | 任意 | 予定の配列(既存データは全置換) |
| actuals | array | 任意 | 実績の配列(既存データは全置換) |
curl -X PUT "https://setplan.app/api/v1/schedules/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"workLocation": "office",
"checkInTime": "09:00",
"checkOutTime": "19:00",
"breakTime": 1,
"reflection": "残業1時間で設計書を完成させた",
"plans": [
{"projectId": "clx5555555555", "content": "設計書の作成"}
],
"actuals": [
{"projectId": "clx5555555555", "content": "設計書の作成・完成", "hours": 6},
{"projectId": "clx5555555556", "content": "コードレビュー", "hours": 3}
]
}'/api/v1/schedules/{id}予定実績の削除
指定されたIDの予定実績を削除します。Admin/PM以外は自分の予定実績のみ削除可能です。関連する案件の投下工数が自動再計算されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | 必須 | 予定実績ID(パスパラメータ) |
curl -X DELETE "https://setplan.app/api/v1/schedules/clx1234567890" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/schedules/calendarカレンダー形式で予定実績を取得
指定された日付範囲のスケジュールをカレンダー表示用に取得します。startDateとendDateは必須です。各スケジュールの合計実績時間が計算されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| startDate | string | 必須 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 必須 | 終了日(YYYY-MM-DD形式) |
| userId | string | 任意 | ユーザーIDでフィルタ |
| departmentIds | string | 任意 | 部署IDでフィルタ(カンマ区切りで複数指定可) |
curl -X GET "https://setplan.app/api/v1/schedules/calendar?startDate=2026-04-01&endDate=2026-04-30&userId=clx1111111111" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/schedules/analytics予定実績の分析データ取得
指定された日付範囲の実績データを集計・分析します。ユーザー別案件別の工数、案件別分布、部署別分布、統計情報(合計時間、平均時間、目標時間、達成率)を返します。startDateとendDateは必須です。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| startDate | string | 必須 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 必須 | 終了日(YYYY-MM-DD形式) |
| userIds | string | 任意 | ユーザーIDでフィルタ(カンマ区切りで複数指定可) |
| projectId | string | 任意 | 案件IDでフィルタ(allで全案件) |
| departmentIds | string | 任意 | 部署IDでフィルタ(カンマ区切りで複数指定可) |
curl -X GET "https://setplan.app/api/v1/schedules/analytics?startDate=2026-04-01&endDate=2026-04-30" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/schedules/date/{date}日付指定で予定実績を取得
指定された日付の予定実績を取得します。userIdパラメータを省略した場合は認証ユーザーのデータを返します。該当データがない場合はnullを返します。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| date | string | 必須 | 対象日付(YYYY-MM-DD形式、パスパラメータ) |
| userId | string | 任意 | ユーザーID(省略時は認証ユーザー) |
curl -X GET "https://setplan.app/api/v1/schedules/date/2026-04-07?userId=clx1111111111" \
-H "Authorization: Bearer sk_live_xxxxx"分析・レポート
売上分析、月間分析、実績台帳、EVM分析、ガントチャートなど各種分析・レポートデータを取得するエンドポイントです。
/api/v1/sales-analysis売上分析データの取得
月別の入金済売上、請求済売上、予定売上、投下工数を集計します。案件種別、部署、期間でのフィルタリングが可能です。詳細データには各売上の明細が含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| startDate | string | 任意 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 任意 | 終了日(YYYY-MM-DD形式) |
| projectType | string[] | 任意 | 案件種別でフィルタ(複数指定可。例: development, ses) |
| departmentId | string[] | 任意 | 部署IDでフィルタ(複数指定可) |
curl -X GET "https://setplan.app/api/v1/sales-analysis?startDate=2026-04-01&endDate=2027-03-31&projectType=development" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/monthly-analysis月間分析(投下工数分析)データの取得
案件別・月別の投下工数を集計します。投下工数(円)または時間での表示モード切替、案件種別・ステータス・部署でのフィルタリング、投下工数ゼロの案件除外が可能です。会社の決算月に基づく会計年度が自動適用されます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 50) |
| startDate | string | 任意 | 開始日(YYYY-MM-DD形式、省略時は会計年度の開始月) |
| endDate | string | 任意 | 終了日(YYYY-MM-DD形式、省略時は会計年度の終了月) |
| projectType | string[] | 任意 | 案件種別でフィルタ(複数指定可) |
| status | string[] | 任意 | 案件ステータスでフィルタ(複数指定可) |
| departmentId | string[] | 任意 | 部署IDでフィルタ(複数指定可) |
| excludeZeroLaborCost | string | 任意 | 投下工数が0の案件を除外(true/false) |
| displayMode | string | 任意 | 表示モード(laborCost: 投下工数(円), hours: 時間。デフォルト: laborCost) |
curl -X GET "https://setplan.app/api/v1/monthly-analysis?startDate=2026-04-01&endDate=2027-03-31&displayMode=laborCost&excludeZeroLaborCost=true" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/performance-ledger実績台帳データの取得
案件ごとの発注金額、外注費、サーバー費用、投下工数、粗利を一覧で取得します。案件種別、ステータス、部署、期間でのフィルタリングが可能です。ソートや投下工数ゼロ除外にも対応しています。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | 任意 | ページ番号(デフォルト: 1) |
| limit | number | 任意 | 1ページあたりの件数(デフォルト: 50) |
| projectType | string[] | 任意 | 案件種別でフィルタ(複数指定可) |
| status | string[] | 任意 | 案件ステータスでフィルタ(複数指定可) |
| departmentId | string[] | 任意 | 部署IDでフィルタ(複数指定可) |
| startDate | string | 任意 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 任意 | 終了日(YYYY-MM-DD形式) |
| excludeZeroLaborCost | string | 任意 | 投下工数が0の案件を除外(true/false) |
| sortBy | string | 任意 | ソート対象(issueDate, orderAmount, laborCost, grossProfit, grossProfitRate, projectNumber, projectName, teamName, status) |
| sortOrder | string | 任意 | ソート順(asc, desc。デフォルト: desc) |
curl -X GET "https://setplan.app/api/v1/performance-ledger?page=1&limit=50&sortBy=grossProfit&sortOrder=desc&excludeZeroLaborCost=true" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/performance-ledger/summary実績台帳サマリの取得
全体および部署(チーム)別の発注金額、外注費、サーバー費用、投下工数、粗利、粗利率の集計サマリを取得します。フィルター条件は実績台帳と同じです。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| projectType | string[] | 任意 | 案件種別でフィルタ(複数指定可) |
| status | string[] | 任意 | 案件ステータスでフィルタ(複数指定可) |
| departmentId | string[] | 任意 | 部署IDでフィルタ(複数指定可) |
| startDate | string | 任意 | 開始日(YYYY-MM-DD形式) |
| endDate | string | 任意 | 終了日(YYYY-MM-DD形式) |
| excludeZeroLaborCost | string | 任意 | 投下工数が0の案件を除外(true/false) |
curl -X GET "https://setplan.app/api/v1/performance-ledger/summary?startDate=2026-04-01&endDate=2027-03-31" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/evm-analysis/{projectId}EVM分析データの取得
指定された案件のEVM(アーンドバリューマネジメント)分析データを取得します。PV(計画値)、EV(出来高)、AC(実績コスト)、SV(スケジュール差異)、CV(コスト差異)、SPI、CPI、ETC、EACなどの指標と時系列データを返します。案件に予算、時間単価、計画開始日・終了日が設定されている必要があります。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| projectId | string | 必須 | 案件ID(パスパラメータ) |
| eacMethod | string | 任意 | EAC算出方法(cpi_based: CPI基準, remaining_budget: 残予算基準。デフォルト: cpi_based) |
curl -X GET "https://setplan.app/api/v1/evm-analysis/clx5555555555?eacMethod=cpi_based" \
-H "Authorization: Bearer sk_live_xxxxx"/api/v1/ganttガントチャートデータの取得
ガントチャート表示用のタスク(課題)データを取得します。開始日・終了日が設定済みで、クローズ・アーカイブ済みでない課題が対象です。案件、担当者、部署、期間、優先度、キーワードでのフィルタリングが可能です。関連する案件・担当者・部署のマスタデータも含まれます。
パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| projectId | string | 任意 | 案件IDでフィルタ |
| assigneeIds | string | 任意 | 担当者IDでフィルタ(カンマ区切りで複数指定可) |
| departmentIds | string | 任意 | 部署IDでフィルタ(カンマ区切りで複数指定可) |
| startDate | string | 任意 | 表示期間の開始日(YYYY-MM-DD形式) |
| endDate | string | 任意 | 表示期間の終了日(YYYY-MM-DD形式) |
| searchQuery | string | 任意 | キーワード検索(タイトル・説明で部分一致検索) |
| priority | string | 任意 | 優先度でフィルタ(low, medium, high, critical, all) |
curl -X GET "https://setplan.app/api/v1/gantt?projectId=clx5555555555&startDate=2026-04-01&endDate=2026-06-30" \
-H "Authorization: Bearer sk_live_xxxxx"