Download OpenAPI specification:Download
External REST API for TAS-CHA developer integrations.
本仕様は外部開発者向け Public API (/v1/...) の安定境界を定義する。
TAS-CHA 内部用の /api/... は本仕様の対象外。
認証:
Authorization: Bearer tcha_live_... または X-Api-Key)Authorization: Bearer tcha_at_...)リクエスト ID:
X-Request-Id を送ると採用、 無ければ server が発行requestId に必ず含まれるRate limit:
RateLimit-* で公開Tascha-Api-Units-* で公開必要な scope: me:read
Units cost: 1 (REST read)
{- "id": "string",
- "email": "user@example.com",
- "name": "string",
- "locale": "string",
- "organizationId": "string",
- "billingContext": "individual",
- "createdAt": "2019-08-24T14:15:22Z"
}必要な scope: organizations:read
Units cost: 1 (REST read)
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}必要な scope: rooms:read
Units cost: 1 (REST read)
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "id": "string",
- "name": "string",
- "roomType": 0,
- "organizationId": "string",
- "createdById": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}必要な scope: rooms:read
Units cost: 1 (REST read)
| roomId required | string Room の cuid。 |
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "userId": "string",
- "role": 0,
- "joinedAt": "2019-08-24T14:15:22Z",
- "displayName": "string"
}
], - "nextCursor": "string"
}必要な scope: messages:write
Units cost: 3 (REST write)。 user-actor token のみ (組織 API key 単独は 403)。
| roomId required | string Room の cuid。 |
| Idempotency-Key | string [ 1 .. 255 ] characters write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。
同一 key + 異なる payload は 409 |
| body required | string [ 1 .. 10000 ] characters |
| replyToMessageId | string 同一 room 内のメッセージ id |
{- "body": "string",
- "replyToMessageId": "string"
}{- "id": "string",
- "roomId": "string",
- "authorId": "string",
- "body": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}必要な scope: messages:read
Units cost: 1 (REST read)
| roomId required | string Room の cuid。 |
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "id": "string",
- "roomId": "string",
- "authorId": "string",
- "body": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}必要な scope: tasks:write
Units cost: 3 (REST write)。 user-actor token のみ。
| roomId required | string Room の cuid。 |
| Idempotency-Key | string [ 1 .. 255 ] characters write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。
同一 key + 異なる payload は 409 |
| title required | string [ 1 .. 200 ] characters |
| description | string <= 10000 characters |
| boardId | string 省略時は room の最初の board。 board が無い room は 400。 |
| dueDate | string <date-time> |
{- "title": "string",
- "description": "string",
- "boardId": "string",
- "dueDate": "2019-08-24T14:15:22Z"
}{- "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
}必要な scope: tasks:read
Units cost: 1 (REST read)
| roomId required | string Room の cuid。 |
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "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"
}
], - "nextCursor": "string"
}必要な scope: tasks:write
Units cost: 3 (REST write)。 version 指定で楽観ロック。
| roomId required | string Room の cuid。 |
| taskId required | string |
| Idempotency-Key | string [ 1 .. 255 ] characters write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。
同一 key + 異なる payload は 409 |
| 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 |
{- "title": "string",
- "description": "string",
- "status": "NOT_STARTED",
- "dueDate": "2019-08-24T14:15:22Z",
- "version": 0
}{- "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
}必要な scope: records:write
Units cost: 3 (REST write)。 user-actor token のみ。
| roomId required | string Room の cuid。 |
| Idempotency-Key | string [ 1 .. 255 ] characters write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。
同一 key + 異なる payload は 409 |
| title required | string [ 1 .. 200 ] characters |
| content | string <= 200000 characters |
{- "title": "string",
- "content": "string"
}{- "id": "string",
- "roomId": "string",
- "title": "string",
- "status": "string",
- "createdById": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}必要な scope: records:read
Units cost: 1 (REST read)
| roomId required | string Room の cuid。 |
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "id": "string",
- "roomId": "string",
- "title": "string",
- "status": "string",
- "createdById": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}必要な scope: files:read
Units cost: 1 (file list)
| roomId required | string Room の cuid。 |
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "id": "string",
- "roomId": "string",
- "fileName": "string",
- "size": 0,
- "mimeType": "string",
- "source": "string",
- "messageId": "string",
- "taskId": "string",
- "uploadedById": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}必要な scope: records:write
Units cost: 3 (REST write)。 creator のみ。 locked / archived は 403。
| roomId required | string Room の cuid。 |
| recordId required | string |
| Idempotency-Key | string [ 1 .. 255 ] characters write 系の冪等キー (1-255 文字, 24h 保持)。 同一 key の再送には同じ結果を返す。
同一 key + 異なる payload は 409 |
| title | string [ 1 .. 200 ] characters |
| content | string <= 200000 characters |
{- "title": "string",
- "content": "string"
}{- "id": "string",
- "roomId": "string",
- "title": "string",
- "status": "string",
- "createdById": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}必要な scope: webhooks:read
Units cost: 1 (REST read)
eventId で同じ event の試行を相関できる (redelivery 含む)。
| roomId required | string Room の cuid。 |
| webhookId required | string |
| limit | integer [ 1 .. 200 ] 1 page の最大件数。 endpoint ごとに上限が異なる。 |
| cursor | string opaque base64url cursor。 前 page の |
{- "data": [
- {
- "id": "string",
- "webhookId": "string",
- "event": "string",
- "eventId": "string",
- "deliveryId": "string",
- "success": true,
- "statusCode": 0,
- "error": "string",
- "attempt": 0,
- "durationMs": 0,
- "deliveredAt": "2019-08-24T14:15:22Z",
- "nextRetryAt": "2019-08-24T14:15:22Z",
- "finalizedAt": "2019-08-24T14:15:22Z"
}
], - "nextCursor": "string"
}必要な scope: webhooks:write
Units cost: 1 (webhook delivery)
元の eventId を維持したまま、 新しい deliveryId で 1 回再配信する。
受信側は Tascha-Webhook-Id (= eventId) を冪等キーに使うことで重複処理を防げる。
| roomId required | string Room の cuid。 |
| webhookId required | string |
| deliveryId required | string |
{- "delivery": {
- "id": "string",
- "webhookId": "string",
- "event": "string",
- "eventId": "string",
- "deliveryId": "string",
- "success": true,
- "statusCode": 0,
- "error": "string",
- "attempt": 0,
- "durationMs": 0,
- "deliveredAt": "2019-08-24T14:15:22Z",
- "nextRetryAt": "2019-08-24T14:15:22Z",
- "finalizedAt": "2019-08-24T14:15:22Z"
}
}必要な scope: events:read
Units cost: 1 (REST read)
Webhook で subscribe 可能な event 一覧。
stable=false は preview event であり破壊的変更が入りうる。
{- "data": [
- {
- "type": "string",
- "description": "string",
- "stable": true
}
]
}