案件(Deals)
案件の作成・更新・ステージ管理・活動履歴の取得を行います。
|
エンドポイント
| GET | /api/v1/crm/deals | 案件一覧を取得 |
| POST | /api/v1/crm/deals | 案件を作成 |
| GET | /api/v1/crm/deals/{id} | 案件詳細を取得 |
| PATCH | /api/v1/crm/deals/{id} | 案件を更新 |
| DELETE | /api/v1/crm/deals/{id} | 案件を削除 |
| POST | /api/v1/crm/deals/{id}/stage | 案件のステージを更新 |
| GET | /api/v1/crm/deals/{id}/activities | 案件の活動履歴を取得 |
GET
/api/v1/crm/deals案件一覧を取得
組織内の案件をページネーション付きで取得します。検索・ソート・ステージ絞り込みに対応しています。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
クエリパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | 任意 | 1ページあたりの件数(デフォルト: 50、最大: 200) |
offset | integer | 任意 | スキップする件数 |
search | string | 任意 | 案件名での部分一致検索 |
sort | string | 任意 | ソートキー(created_at, updated_at, name, amount) |
order | string | 任意 | ソート順(asc / desc、デフォルト: desc) |
stage | string | 任意 | ステージで絞り込み |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| Deal[] | 任意 | 案件の配列 | |
total | number | 任意 | 総件数 |
limit | number | 任意 | 1ページあたりの件数 |
offset | number | 任意 | スキップした件数 |
コード例
curl "https://api.blueai.jp/api/v1/crm/deals" \
-H "Cookie: better-auth.session_token=<token>"レスポンス例
{
"items": [
{
"id": "deal_11111111111111111111111111111111",
"name": "株式会社A 年間契約",
"amount": 1200000,
"stage": "proposal",
"company_id": "comp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"contact_id": "cont_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"assigned_member_id": "usr_99999999999999999999999999999999",
"expected_close_date": "2026-03-31",
"probability": 60,
"lost_reason": null,
"won_date": null,
"currency": "JPY",
"created_at": "2026-01-15T09:00:00Z",
"updated_at": "2026-02-10T14:30:00Z"
}
],
"total": 42,
"limit": 50,
"offset": 0
}POST
/api/v1/crm/deals案件を作成
新しい案件を作成します。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | 必須 | 案件名 |
amount | number | 任意 | 金額(円) |
stage | string | 任意 | 初期ステージ(デフォルト: lead) |
company_id | string | 任意 | 関連する会社の ID |
contact_id | string | 任意 | 関連する連絡先の ID |
assigned_member_id | string | 任意 | 担当メンバー ID |
expected_close_date | string | 任意 | 成約予定日(YYYY-MM-DD) |
probability | number | 任意 | 成約確度(0-100) |
currency | string | 任意 | 通貨コード(デフォルト: JPY) |
note | string | 任意 | 備考 |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| Deal | 任意 | 作成された案件 |
コード例
curl -X POST "https://api.blueai.jp/api/v1/crm/deals" \
-H "Cookie: better-auth.session_token=<token>" \
-H "Content-Type: application/json" \
-d '{
"name": "株式会社A 年間契約",
"amount": 1200000,
"stage": "lead",
"company_id": "comp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"contact_id": "cont_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"expected_close_date": "2026-03-31"
}'レスポンス例
{
"deal": {
"id": "deal_11111111111111111111111111111111",
"name": "株式会社A 年間契約",
"amount": 1200000,
"stage": "proposal",
"company_id": "comp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"contact_id": "cont_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"assigned_member_id": "usr_99999999999999999999999999999999",
"expected_close_date": "2026-03-31",
"probability": 60,
"lost_reason": null,
"won_date": null,
"currency": "JPY",
"created_at": "2026-01-15T09:00:00Z",
"updated_at": "2026-02-10T14:30:00Z"
}
}GET
/api/v1/crm/deals/{id}案件詳細を取得
指定した案件の詳細情報を取得します。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
パスパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | 必須 | 案件 ID |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| Deal | 任意 | 案件の詳細情報 |
コード例
curl "https://api.blueai.jp/api/v1/crm/deals/deal_123e4567e89b12d3a456426614174000" \
-H "Cookie: better-auth.session_token=<token>"レスポンス例
{
"deal": {
"id": "deal_11111111111111111111111111111111",
"name": "株式会社A 年間契約",
"amount": 1200000,
"stage": "proposal",
"company_id": "comp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"contact_id": "cont_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"assigned_member_id": "usr_99999999999999999999999999999999",
"expected_close_date": "2026-03-31",
"probability": 60,
"lost_reason": null,
"won_date": null,
"currency": "JPY",
"created_at": "2026-01-15T09:00:00Z",
"updated_at": "2026-02-10T14:30:00Z"
}
}PATCH
/api/v1/crm/deals/{id}案件を更新
指定した案件の情報を更新します。送信したフィールドのみ更新されます。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
パスパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | 必須 | 案件 ID |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | 任意 | 案件名 |
amount | number | 任意 | 金額(円) |
stage | string | 任意 | ステージ |
company_id | string | 任意 | 関連する会社の ID |
contact_id | string | 任意 | 関連する連絡先の ID |
assigned_member_id | string | 任意 | 担当メンバー ID |
expected_close_date | string | 任意 | 成約予定日(YYYY-MM-DD) |
probability | number | 任意 | 成約確度(0-100) |
lost_reason | string | 任意 | 失注理由 |
won_date | string | 任意 | 受注日(ISO 8601) |
currency | string | 任意 | 通貨コード(デフォルト: JPY) |
note | string | 任意 | 備考 |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| Deal | 任意 | 更新後の案件 |
コード例
curl -X PATCH "https://api.blueai.jp/api/v1/crm/deals/deal_123e4567e89b12d3a456426614174000" \
-H "Cookie: better-auth.session_token=<token>" \
-H "Content-Type: application/json" \
-d '{
"name": "株式会社A 年間契約(更新)",
"amount": 1500000
}'レスポンス例
{
"deal": {
"id": "deal_11111111111111111111111111111111",
"name": "株式会社A 年間契約(更新)",
"amount": 1500000,
"stage": "proposal",
"company_id": "comp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"contact_id": "cont_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"assigned_member_id": "usr_99999999999999999999999999999999",
"expected_close_date": "2026-03-31",
"probability": 60,
"lost_reason": null,
"won_date": null,
"currency": "JPY",
"created_at": "2026-01-15T09:00:00Z",
"updated_at": "2026-02-10T14:30:00Z"
}
}DELETE
/api/v1/crm/deals/{id}案件を削除
指定した案件を削除します。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
パスパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | 必須 | 案件 ID |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
success | boolean | 任意 | 削除成功フラグ |
コード例
curl -X DELETE "https://api.blueai.jp/api/v1/crm/deals/deal_123e4567e89b12d3a456426614174000" \
-H "Cookie: better-auth.session_token=<token>"レスポンス例
{
"success": true
}POST
/api/v1/crm/deals/{id}/stage案件のステージを更新
案件のステージのみを変更します。カンバンボードでのドラッグ操作などに使用します。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
パスパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | 必須 | 案件 ID |
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
stage | string | 必須 | 移動先ステージ(lead, qualification, proposal, negotiation, closed_won, closed_lost) |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| Deal | 任意 | 更新後の案件 |
コード例
curl -X POST "https://api.blueai.jp/api/v1/crm/deals/deal_123e4567e89b12d3a456426614174000/stage" \
-H "Cookie: better-auth.session_token=<token>" \
-H "Content-Type: application/json" \
-d '{
"stage": "proposal"
}'レスポンス例
{
"deal": {
"id": "deal_11111111111111111111111111111111",
"name": "株式会社A 年間契約",
"amount": 1200000,
"stage": "proposal",
"company_id": "comp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"contact_id": "cont_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"assigned_member_id": "usr_99999999999999999999999999999999",
"expected_close_date": "2026-03-31",
"probability": 60,
"lost_reason": null,
"won_date": null,
"currency": "JPY",
"created_at": "2026-01-15T09:00:00Z",
"updated_at": "2026-02-10T14:30:00Z"
}
}GET
/api/v1/crm/deals/{id}/activities案件の活動履歴を取得
指定した案件に紐づく活動履歴を取得します。
認証が必要です— セッション Cookie または Bearer トークンを含めてください
パスパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | 必須 | 案件 ID |
クエリパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
page | number | 任意 | ページ番号(デフォルト: 1) |
limit | number | 任意 | 1ページあたりの件数(デフォルト: 20) |
レスポンスフィールド
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| Activity[] | 任意 | 活動履歴の配列 | |
total | number | 任意 | 総件数 |
コード例
curl "https://api.blueai.jp/api/v1/crm/deals/deal_123e4567e89b12d3a456426614174000/activities" \
-H "Cookie: better-auth.session_token=<token>"レスポンス例
{
"activities": [
{
"id": "act_cccccccccccccccccccccccccccccccc",
"type": "note",
"content": "初回ヒアリング実施。予算感は1000万円前後。",
"deal_id": "deal_11111111111111111111111111111111",
"contact_id": null,
"created_by": "usr_99999999999999999999999999999999",
"created_at": "2026-02-10T14:30:00Z"
}
],
"total": 5
}