メインコンテンツまでスキップ

TAS-CHA Public API (2026-06-09)

Download OpenAPI specification:Download

External REST API for TAS-CHA developer integrations.

本仕様は外部開発者向け Public API (/v1/...) の安定境界を定義する。 TAS-CHA 内部用の /api/... は本仕様の対象外。

認証:

  • API key (Authorization: Bearer tcha_live_... または X-Api-Key)
  • OAuth 2.1 access token (Authorization: Bearer tcha_at_...)
    • PKCE 必須、 refresh token rotation あり

リクエスト ID:

  • クライアントが X-Request-Id を送ると採用、 無ければ server が発行
  • レスポンスとエラー envelope の requestId に必ず含まれる

Rate limit:

  • 短期 burst は IETF RateLimit-* で公開
  • 月次 API units は Tascha-Api-Units-* で公開

認証済み user の最小プロフィール

必要な scope: me:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "locale": "string",
  • "organizationId": "string",
  • "billingContext": "individual",
  • "createdAt": "2019-08-24T14:15:22Z"
}

token がアクセス可能な organization の一覧

必要な scope: organizations:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

token holder がアクセス可能な room の一覧 (DM 除く)

必要な scope: rooms:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Room メンバー一覧

必要な scope: rooms:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Room へメッセージを投稿

必要な scope: messages:write Units cost: 3 (REST write)。 user-actor token のみ (組織 API key 単独は 403)。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

header Parameters
Idempotency-Key
string [ 1 .. 255 ] characters

write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。 同一 key + 異なる payload は 409 idempotency_conflict

Request Body schema: application/json
required
body
required
string [ 1 .. 10000 ] characters
replyToMessageId
string

同一 room 内のメッセージ id

Responses

Request samples

Content type
application/json
{
  • "body": "string",
  • "replyToMessageId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "authorId": "string",
  • "body": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Room メッセージ一覧 (新しい順)

必要な scope: messages:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Room にタスクを作成

必要な scope: tasks:write Units cost: 3 (REST write)。 user-actor token のみ。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

header Parameters
Idempotency-Key
string [ 1 .. 255 ] characters

write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。 同一 key + 異なる payload は 409 idempotency_conflict

Request Body schema: application/json
required
title
required
string [ 1 .. 200 ] characters
description
string <= 10000 characters
boardId
string

省略時は room の最初の board。 board が無い room は 400。

dueDate
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "boardId": "string",
  • "dueDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "title": "string",
  • "description": "string",
  • "status": "string",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "createdById": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "version": 0
}

Room 内タスク一覧

必要な scope: tasks:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

タスクを更新

必要な scope: tasks:write Units cost: 3 (REST write)。 version 指定で楽観ロック。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

taskId
required
string
header Parameters
Idempotency-Key
string [ 1 .. 255 ] characters

write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。 同一 key + 異なる payload は 409 idempotency_conflict

Request Body schema: application/json
required
title
string [ 1 .. 200 ] characters
description
string <= 10000 characters
status
string
Enum: "NOT_STARTED" "IN_PROGRESS" "COMPLETED"
dueDate
string or null <date-time>
version
integer

楽観ロック。 現在 version と不一致なら 409 version_conflict

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "status": "NOT_STARTED",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "version": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "title": "string",
  • "description": "string",
  • "status": "string",
  • "dueDate": "2019-08-24T14:15:22Z",
  • "createdById": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "version": 0
}

Room に議事録を作成

必要な scope: records:write Units cost: 3 (REST write)。 user-actor token のみ。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

header Parameters
Idempotency-Key
string [ 1 .. 255 ] characters

write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。 同一 key + 異なる payload は 409 idempotency_conflict

Request Body schema: application/json
required
title
required
string [ 1 .. 200 ] characters
content
string <= 200000 characters

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "title": "string",
  • "status": "string",
  • "createdById": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Room 内議事録一覧

必要な scope: records:read Units cost: 1 (REST read)

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Room 内ファイル一覧 (メタデータのみ, 新しい順)

必要な scope: files:read Units cost: 1 (file list)

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

議事録を更新 (creator のみ)

必要な scope: records:write Units cost: 3 (REST write)。 creator のみ。 locked / archived は 403。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

recordId
required
string
header Parameters
Idempotency-Key
string [ 1 .. 255 ] characters

write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。 同一 key + 異なる payload は 409 idempotency_conflict

Request Body schema: application/json
required
title
string [ 1 .. 200 ] characters
content
string <= 200000 characters

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "roomId": "string",
  • "title": "string",
  • "status": "string",
  • "createdById": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Webhook 配信履歴一覧

必要な scope: webhooks:read Units cost: 1 (REST read)

eventId で同じ event の試行を相関できる (redelivery 含む)。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

webhookId
required
string
query Parameters
limit
integer [ 1 .. 200 ]

1 page の最大件数。 endpoint ごとに上限が異なる。

cursor
string

opaque base64url cursor。 前 page の nextCursor をそのまま渡す。

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

失敗 / 任意の配信を再送する

必要な scope: webhooks:write Units cost: 1 (webhook delivery)

元の eventId を維持したまま、 新しい deliveryId で 1 回再配信する。 受信側は Tascha-Webhook-Id (= eventId) を冪等キーに使うことで重複処理を防げる。

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
roomId
required
string

Room の cuid。

webhookId
required
string
deliveryId
required
string

Responses

Response samples

Content type
application/json
{
  • "delivery": {
    }
}

Webhook v2 イベントカタログ

必要な scope: events:read Units cost: 1 (REST read)

Webhook で subscribe 可能な event 一覧。 stable=false は preview event であり破壊的変更が入りうる。

Authorizations:
ApiKeyAuthBearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}