CastingONE API Specifications (1.0.0)

API について

エンドポイント

API のエンドポイントは環境ごとに以下の URL になります。

  • 本番環境: https://tn.lb.core.lite.casting-one.jp/api/v1
  • ステージング環境: https://tn-stg.lb.core.lite.casting-one.jp/api/v1

事前検証ではステージング環境をご利用ください。正式リリース時は本番環境のエンドポイントへ切り替えてください。

認証

API の利用にはアクセスキーとアクセストークンが必要です。 アクセスキーとアクセストークンは管理サイトから発行できます。(事前に API 連携の利用申請が必要です) アクセスキーとアクセストークンは、リクエストヘッダに以下のように含めてください。

curl -X GET \
-H 'x-api-key: API_KEY' \
-H 'x-api-token: API_TOKEN' \
https://tn.lb.core.lite.casting-one.jp/

ステージング環境を利用する場合は、上記 URL のホスト名を tn-stg.lb.core.lite.casting-one.jp に差し替えてください。

ページネーション

リストを返す API では一度に返せる要素の数が限定されており、より多くの要素が必要となる場合はページを指定する必要があります。リストの API には、1 から始まるページ番号を表す page パラメータと、1 ページあたりに含まれる要素数を表す per_page パラメータを指定することができます。page の初期値は 1 に設定されています。また、per_page の初期値は 50、per_page の最大値は 100 に設定されています。

また、要素の総件数はレスポンスの total_count で確認できます。例えば候補者の総件数が 1000 件の場合は以下のようなレスポンスになります。

{
  "total_count": 1000,
  "candidates": [...]
}

ソート

リストを返す API では、並び順を特定のキーで指定できる sort_by パラメータと、昇順降順を指定できる sort_desc パラメータが用意されていることがあります。例えば候補者を「作成日時」の「降順」で並べる場合は以下のようになります。

https://tn.lb.core.lite.casting-one.jp/api/v1/candidates?sort_by=created_at&sort_desc=1

区分値について

候補者や求人の各リソースで利用する区分値のリストです。

性別

値内容
1男性
2女性

血液型

値内容
0不明
1A
2B
3O
4AB

曜日

値内容
1月
2火
3水
4木
5金
6土
7日
100祝

視力

値内容
00.1未満
10.1
20.2
30.3
40.4
50.5
60.6
70.7
80.8
90.9
101.0
121.2
151.5
202.0以上

候補者ステータス種別

値内容
0組み込み
1追加

組み込み候補者ステータス

値内容
0未応募
1応募
2スタッフ登録
3見送り
4辞退
5登録解除
6統合

求職意欲

値内容
0積極的に検討
1検討中
2案件次第
3求職意欲なし

雇用形態

値内容
0正社員
1派遣社員
2契約社員
3アルバイト・パート
4短時間正社員
5業務委託
6家内労働者
7自営型テレワーカー
8その他

テナントマスタについて

各リソースに含まれるテナントマスタ値の対応についてはマスタ取得 API を利用してご確認ください。

外部連携用ID

候補者の外部連携用IDは、連携先ごとに持ちます。候補者APIでは provider_external_ids で連携先ごとの外部連携用IDを読み書きします。

"provider_external_ids": [
  { "provider_id": 1, "external_ids": ["A-001"] },
  { "provider_id": 2, "external_ids": ["B-001", "B-002"] }
]

連携先の確認方法

provider_id は、管理サイトの 設定 > カスタム > 外部連携用ID の一覧の ID 列で確認できます。この値を、リクエストの provider_id と、下記の連携先を指定するエンドポイントの {provider_id} に使用してください。

非推奨のフィールドとエンドポイント

従来の外部連携用IDである、次のエンドポイントとフィールドは、最もIDの若い連携先の外部連携用IDとして動作します。2027年4月に廃止予定です。 移行手順に従い、新しいエンドポイントに切り替えてください。

  • GET / PUT / DELETE /candidates/external/{external_id}
  • リクエストの external_id
  • レスポンスの external_ids

移行手順

  1. 候補者の特定に使うエンドポイントを /candidates/external/{external_id} から /candidates/providers/{provider_id}/external_ids/{external_id} に切り替えてください
  2. リクエストの external_id とレスポンスの external_ids の代わりに、provider_external_ids を使用してください

フリー項目について

候補者APIのリクエスト・レスポンスにあるfree_itemsのvalueは、入力形式によってデータ型と形式、登録可能な値が変わります。

入力形式データ型・形式登録可能な値
1:1行テキスト文字列500文字以内
2:複数行テキスト文字列5000文字以内
3:数値数値0~9999999
4:単一選択数値フリー項目マスタのmasters.id
5:複数選択数値の配列フリー項目マスタのmasters.id
6:年月日文字列(yyyy/mm/dd形式)100年前~100年後
7:年月文字列(yyyy/mm形式)100年前~100年後
8:時刻文字列(hh:mm形式)00:00~23:45。15分単位

ファイルの URL について

API のレスポンスに含まれるファイルの URL には有効期限があります。5 分以内にアクセスするようにしてください。

Webhook について

求職者が応募したり、候補者更新フォームに回答するなどのイベント発生時に、設定した URL へ Webhook イベントオブジェクトを含む HTTP POST リクエストを送信することが可能です。

認証(署名検証)

Webhook のリクエストが届いたら、リクエストヘッダに含まれる署名を検証してください。この検証により「CastingONE サーバから送信された Webhook リクエストである」、「通信途中で改ざんされていない」ことを確認することができます。

CastingONE サーバでは、Webhook リクエストボディを入力データ、シークレットトークンをハッシュ鍵として HMAC-SHA256 で署名を作成し、X-CastingONE-Signature ヘッダとして付与します。 Webhook リクエストと署名は以下の手順で検証できます。

  1. 受信した Webhook リクエストボディの文字列を入力データ、Webhook 設定作成時のシークレットトークンをハッシュ鍵として、HMAC-SHA256で署名を生成します。
  2. 受診した署名( X-CastingONE-Signature )と、生成した署名を比較します。
  3. 署名が一致した場合は、Webhook リクエストの処理を行うことができます。

署名が一致しない場合は、リクエストが CastingONE サーバ以外から送信された、通信途中で改ざんされた、あるいは検証手順に誤りがある可能性があります。

署名検証の例

Go:

func verifySignature(secretToken string, body []byte, signature string) bool {
    hash := hmac.New(sha256.New, []byte(secretToken))
    hash.Write(body)
    expected := hex.EncodeToString(hash.Sum(nil))
    return hmac.Equal([]byte(expected), []byte(signature))
}

Node.js:

const crypto = require("crypto");

function verifySignature(secretToken, body, signature) {
  const expected = crypto
    .createHmac("sha256", secretToken)
    .update(body)
    .digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}

再送

Webhook は次の条件で再送されます。再送は一定期間試行したのち打ち切られます。

  1. 受信サーバが一定時間内に応答を返さなかったとき
  2. 受信サーバが 200 番台以外のステータスコードを返したとき

重複排除

通信経路上の問題などにより、同じ Webhook イベントが重複して送信される可能性があります。各 Webhook イベントオブジェクトには一意な event_id が付与されるため、これを利用して重複の検出を行うことができます。

Servers
//tn.lb.core.lite.casting-one.jp/api/v1