API の概要
タスクルは、事業者が自分のシステムから予約を扱うための API を公開しています。
たとえば次のようなことができます。
- 自社サイトに独自の予約フォームを置き、そこからタスクルに予約を入れる
- 基幹システムや POS から予約の状況を取り込む
- 自社サイトの問い合わせフォームを、タスクルの受信箱に集約する
使いはじめる前に
Section titled “使いはじめる前に”API はあなたの店舗のデータを直接読み書きします。実際の予約が入り、お客様にメールが届きます。まずは次の順で試すことをおすすめします。
- API キーを発行する(APIキーの発行と管理)
- 疎通を確認する(下記)
- 非公開の商品を1つ用意して、それに対して予約の作成を試す
3つ目が大事です。API は非公開の商品も扱えるので、お客様に見えない商品を作ってそこで試せば、実際の枠を埋めたり売上に混ざったりしません。試し終わったら予約を削除してください。
キーを発行したら、まずこれを叩いてください。キーが有効かどうかだけを返します。
curl https://api.tascrew.com/v1/public/ping \ -H "Authorization: Bearer tsk_live_あなたのキー"{ "ok": true, "organizationId": "org_xxxxx", "teamId": null, "name": "自社サイト連携", "scopes": [ "products:read", "reservations:read", "reservations:write", "inbox:write" ]}teamId が null なら、そのキーは組織配下のすべての店舗を扱えます。特定の店舗に限定したキーでは、その店舗の ID が入ります。
リクエストの形
Section titled “リクエストの形”すべてのエンドポイントで共通です。
| 項目 | 内容 |
|---|---|
| ベースURL | https://api.tascrew.com |
| 認証 | Authorization: Bearer <APIキー> |
| 店舗の指定 | パスに含めます(/v1/public/stores/{storeId}/...) |
| 日時 | ISO 8601(2026-08-20T01:00:00.000Z) |
| 日付・時刻のみ | YYYY-MM-DD / HH:mm(店舗のタイムゾーン) |
| 文字コード | UTF-8 |
店舗 ID は GET /v1/public/stores で取得できます(連携の最初に叩いてください)。管理画面の 設定 > 組織・店舗 > 店舗 でも確認できます。
curl https://api.tascrew.com/v1/public/stores \ -H "Authorization: Bearer tsk_live_あなたのキー"{ "data": [ { "id": "team_xxxxx", "name": "渋谷サーフスクール", "slug": "shibuyasan", "paymentMethods": ["on_site", "external"], "customerEmailEnabled": true } ]}店舗を限定したキーでは、その店舗だけが返ります。
予約サイトの URL に使うスラッグは別のものです。スラッグは変更できるため、API では使いません。
エラーは次の形で返ります。
{ "error": "指定された商品が見つかりません", "code": "PRODUCT_NOT_FOUND"}分岐には code を使ってください。 error は人が読むための文面で、予告なく変わることがあります。
主なステータスコードは次のとおりです。
| コード | 意味 |
|---|---|
| 400 | リクエストの内容が不正(必須項目の欠落、形式の誤りなど) |
| 401 | APIキーが無い・無効・失効済み・期限切れ |
| 403 | キーの権限が足りない、契約が切れている、プランが対応していない |
| 404 | 対象が見つからない(他店舗のデータを指定した場合もこれになります) |
| 409 | 冪等性キーの重複 |
| 429 | リクエストが多すぎる |
| 503 | 書き込みが一時的に混み合っている(再試行してください) |
リクエストの形式が正しくないとき
Section titled “リクエストの形式が正しくないとき”必須項目の欠落や形式の誤りは VALIDATION_ERROR で返り、どの項目が問題かが details に入ります。
{ "error": "リクエストの内容が正しくありません", "code": "VALIDATION_ERROR", "details": [ { "field": "customerEmail", "code": "invalid_type", "reason": "必須項目です" } ]}field はネストを . でつないだ表記です(例: items.0.startTime)。参加者情報の検証に失敗した場合も同じ形で返りますが、そちらは field の代わりに participantNumber と label が入ります。
支払い方法が受け付けられないとき
Section titled “支払い方法が受け付けられないとき”PAYMENT_METHOD_NOT_AVAILABLE が返ります。現地払いを無効にしている店舗(カード決済のみで運用している店舗)では on_site を使えません。 外部で決済を済ませた予約は external を指定してください。
{ "error": "この店舗では指定された支払い方法を受け付けていません。外部で決済を済ませた予約は paymentMethod に external を指定してください", "code": "PAYMENT_METHOD_NOT_AVAILABLE"}リクエストの上限
Section titled “リクエストの上限”| プラン | 上限 |
|---|---|
| スタンダード | 60 リクエスト/分 |
| 施設 | 300 リクエスト/分 |
上限はキーごとに数えます。超えると 429 が返るので、しばらく待ってから再試行してください。
月間の上限は設けていません。極端に多い場合はご相談ください。
できること・できないこと
Section titled “できること・できないこと”現在のバージョンでできることは次のとおりです。
- 商品と空き状況の取得
- 料金の計算
- 予約の作成・取得・キャンセル
- 顧客の検索
- 受信箱への問い合わせ作成
次のことはできません。
| できないこと | 理由 |
|---|---|
| タスクル上でのカード決済 | カード決済はタスクルの予約サイトで行っていただきます(決済の扱い) |
| 予約の変更(日時・人数) | 現在はキャンセルして作り直してください |
| 受信箱での返信 | 返信はタスクルの受信箱から行ってください |
| 予約が入ったときの通知(Webhook) | 現在は定期的に取得してください(予約の取得) |
API リファレンス
Section titled “API リファレンス”すべてのエンドポイントの詳細は、リファレンスで確認できます。ブラウザ上でそのまま試すこともできます。