最終更新日時: 2025/09/08 09:02
kaonavi API v2 は下記のようなHTTPリクエストで各種リソースの操作ができます。構成は以下の通りです。
$ curl -X {メソッド} 'https://api.kaonavi.jp/api/{バージョン}/{リソース}' \
-H 'Content-Type: application/json' \
-H 'Kaonavi-Token: {アクセストークン}'
メソッドとリソースの組み合わせは左メニューのAPIリファレンス以下をご確認ください。
最新バージョンは v2.0
です。
APIを実行する前にまずAPIv2で操作出来る対象のチェックをしましょう。
カオナビにログインし、管理者機能トップ > 公開API v2 情報 > 操作対象の管理のメニューを開いて下さい。デフォルトは全てオフになっています。
このクイックスタートではメンバーの登録までを紹介しているので、画像のようにメンバー情報の「登録」にだけチェックを入れましょう。
実際の運用時にはメンバー情報やシート情報に必要な操作にだけチェックを入れて下さい。
認証のためのアクセストークンを発行しましょう。
アクセストークン発行のために必要な認証情報を事前に確認しておきます。
カオナビにログインし、 管理者機能トップ > 公開API v2 情報 > 認証情報 より、Consumer Key
と Consumer Secret
をご確認ください。
アクセストークン 発行 を参照して、アクセストークンを発行します。 アクセストークン発行に必要なcredentials の生成についてはBasicAuthを参照してください。
下記に記載されているような内容が返ってきたら成功です。
{
"access_token": "25396f58-10f8-c228-7f0f-818b1d666b2e",
"token_type": "Bearer",
"expire_in": 3600
}
access_token
に記載されているものが、アクセストークンです。
これで準備完了です。メンバー情報のレイアウト設定の内容を取得してみましょう。 メンバー情報 レイアウト設定取得 を参照して、次のようなリクエストをしてください。
$ curl -X GET 'https://api.kaonavi.jp/api/v2.0/member_layouts' \
-H 'Content-Type: application/json' \
-H 'Kaonavi-Token: {アクセストークン}'
下記に記載されているような内容が返ってきたら成功です。
{
"code": {
"name": "社員番号",
"required": true,
"type": "string",
"max_length": 50,
"enum": []
},
"name": {
"name": "氏名",
"required": false,
"type": "string",
"max_length": 100,
"enum": []
},
"name_kana": {
"name": "フリガナ",
"required": false,
"type": "string",
"max_length": 100,
"enum": []
},
"mail": {
"name": "メールアドレス",
"required": false,
"type": "string",
"max_length": 100,
"enum": []
}
}
kaonavi API v2 によるデータの登録や更新の多くは、非同期で行われます。 メンバー情報 登録 API を使って、メンバーを登録してみましょう。
メンバー情報 登録 を参照して、次のようなリクエストをしてください。
$ curl -X POST 'https://api.kaonavi.jp/api/v2.0/members' \
-H 'Content-Type: application/json' \
-H 'Kaonavi-Token: {アクセストークン}' \
-d '{
"member_data": [
{
"code": "12345",
"name": "カオナビ 太郎",
"name_kana": "カオナビ タロウ"
}
]
}'
必須項目や最大文字数は先程取得したレイアウト設定取得APIの結果から確認できます。 下記に記載されているような内容が返ってきたら成功です。これでメンバー登録のタスクが作成されました。
{
"task_id": 1
}
次に、タスクの結果を確認してみましょう。
先程取得した task_id
を利用して、タスク進捗状況 取得 を参照して、次のようなリクエストをしてください。
$ curl -X GET 'https://api.kaonavi.jp/api/v2.0/tasks/{task_id}' \
-H 'Content-Type: application/json' \
-H 'Kaonavi-Token: {アクセストークン}'
下記に記載されているような内容が返ってきたら成功です。これで新しくメンバーが登録されたはずです。
{
"id": 1,
"status": "OK",
"messages": []
}
以上でクイックスタートは終了です。左メニューのAPIリファレンス以下を参考に、様々なリソースを操作してみましょう。
深夜1:00~1:30の間にデータバックアップを行い、データバックアップの終了後、早朝にかけて日次バッチを実施しています。
データバックアップは、処理を開始した時点でのデータが静止点となり、当日のデータバックアップとして保持されます。
そのため、当日のデータとしてAPI更新されたい場合は1:00より前に実施し、翌日のデータとして更新されたい場合は1:30以降をご検討ください。
※データバックアップの復元は、データ安心パックをご利用のお客様が対象です。
また日次バッチ中にAPI更新を行った場合、開始時間の早い方から処理がされます。
先行された処理の間、もう一方の処理は待機状態となり、完了してから次の処理が実行されます。
日次バッチの開始時間及び終了時間はお客様ごとに異なります。
具体的な時間についてはサポートデスクまでお問い合わせください。
通常は本番モードで動作しますが、動作確認用にdryrunモードを用意しています。
通常のパラメータに加えて、ヘッダーに以下を設定することで、データベースの操作を行わず、リクエストの内容が適切であるかを検証することが出来ます。
※dryrunモードは登録・更新APIのみご利用いただけます。
ヘッダーパラメータ名 | 値 |
---|---|
Dry-Run | 0 または 1 |
値 | 結果 |
---|---|
指定なし | 本番モード |
0を指定 | 本番モード |
1を指定 | dryrunモード |
上記以外 | パラメータエラー |
リクエスト サンプル
$ curl -X POST 'https://api.kaonavi.jp/api/v2.0/members' \
-H 'Content-Type: application/json' \
-H 'Kaonavi-Token: {アクセストークン}' \
-H 'Dry-Run: 1' \
-d '{
"member_data": [
{
"code": "12345",
"name": "カオナビ 太郎",
"name_kana": "カオナビ タロウ"
}
]
}'
ステータスコード | 説明 |
---|---|
200 | 正常のレスポンス |
400 | パラメータにエラー |
401 | 認証エラー |
403 | kaonavi API v2 の利用不可 |
404 | 存在しないIDを指定 |
405 | 存在しないメソッドを指定 |
429 | アクセス回数制限を超えた |
500 | サーバーで予期せぬエラーが起きた |
503 | システムがメンテナンス中 |
504 | タイムアウトエラー |
管理者機能トップ > レイアウト設定で設定したシートの項目情報はレイアウト設定APIにて custom_fields
として取得できます。
レイアウト設定API、メンバー情報API、シート情報API で取得・更新可能なシートの項目は以下の通りです。
パーツ | レイアウト 設定取得 |
情報取得 | 情報更新 | 更新時の注意 |
---|---|---|---|---|
テキストボックス | ○ | ○ | ○ | |
テキストエリア | ○ | ○ | ○ | |
ナンバーボックス | ○ | ○ | ○ | |
プルダウンリスト | ○ | ○ | ○ | |
ラジオボタン | ○ | ○ | ○ | |
チェックボックス | ○ | ○ | ○ | |
リンク | ○ | ○ | ○ | |
日付(カレンダー) | ○ | ○ | ○ | YYYY-MM-DDの形式で更新してください 例) 2021-01-01 |
年月(カレンダー) | ○ | ○ | ○ | YYYY-MM-DDの形式で更新してください 例) 2021-01-01 |
ファイル添付 | ○ | ○ | ○ | ファイル添付の使い方 をご確認ください |
顔写真 | ○ | ○ | ○ | 顔写真パーツで表示させたいメンバーの社員番号を設定してください 例) A0001 |
計算式 | ◯※ | ○ | × | 計算式パーツの取り扱い をご確認ください ※パラメーター をつけると取得可能です |
スペースエリア | × | × | × | |
タイトルボックス | × | × | × | |
メッセージボックス | × | × | × | |
レーダーチャート | × | × | × |
APIのアクセストークン取得にはconsumer_key、consumer_secretが必要です。
credentialsは次のように構築してください。
リクエスト サンプル
$ curl -X POST 'https://api.kaonavi.jp/api/v2.0/token' \
-H 'Authorization: Basic <credentials>' \
-H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
-d 'grant_type=client_credentials'
basic
API実行にはアクセストークンが必要です。詳しくは アクセストークン 発行 を確認してください。
レスポンスから取得したアクセストークンは、API実行時にHTTPヘッダー(Kaonavi-Token)にセットして利用してください。
リクエスト サンプル
$ curl -X GET 'https://api.kaonavi.jp/api/v2.0/sheet_layouts' \
-H 'Content-Type: application/json' \
-H 'Kaonavi-Token: <access_token>'
Kaonavi-Token
kaonavi Webhook は、メンバーの基本情報が更新された際に、指定した URL に HTTPリクエストを送信します。
Webhook を利用することで、定期的にメンバー情報を取得する必要がなく、通知をきっかけとした連携機能の開発ができるようになります。
Webhook は以下の機能でメンバーの基本情報を更新した場合のみ送信します。
Webhook を利用するには、Webhook 設定 API または 管理者機能トップ > 公開API v2 情報 > Webhook 設定をご利用ください。
Webhook で利用できるイベントは以下の通りです。
イベント名 | 説明 |
---|---|
member_created | メンバーが新しく登録された |
member_updated | メンバーの基本情報が更新された |
member_deleted | メンバーが削除された |
設定したイベントが発生した場合に送信する HTTPリクエスト内容は以下の通りです。
名称 | 詳細 |
---|---|
Kaonavi-Token | 登録時に指定した検証用トークンを送信します。 |
Content-Type | application/json |
User-Agent | Kaonavi-Webhook |
名称 | 詳細 |
---|---|
event | 発生したイベント名を送信します。(例:member_created) |
event_time | イベントが発生した時刻を送信します。(例:"2023-04-11 09:40:45") |
member_data | 変更のあったメンバーの社員番号を配列で送信します。 |
{
"event": "member_created",
"event_time": "2023-04-11 09:40:45",
"member_data": [
{
"code": "A0001"
},
{
"code": "A0002"
}
]
}
送信が失敗した場合でも再送信は行われません。
制限名称 | 説明 |
---|---|
Webhook設定数 | 10件まで |
送信メンバー数の閾値 | 送信する member_data が 10,000件を超える場合、10,000件ごとに分割して Webhook を送信します。 |
Webhook は以下の場合、送信されません。
アクセストークンを発行します。
grant_type required | string
|
curl -X POST "https://api.kaonavi.jp/api/v2.0/token" ^ -u "dummy_consumer_key:dummy_consumer_secret" ^ -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" ^ -d "grant_type=client_credentials"
{- "access_token": "25396f58-10f8-c228-7f0f-818b1d666b2e",
- "token_type": "Bearer",
- "expire_in": 3600
}
指定したtask_id
のタスクの進捗状況を取得します。
非同期でデータの登録や更新が行われる更新系APIで返却されるtask_id
を指定してください。
task_id required | integer 作成されたタスクのID |
curl -X GET "https://api.kaonavi.jp/api/v2.0/tasks/{task_id}" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "id": 1,
- "status": "NG",
- "messages": [
- "エラーメッセージ1",
- "エラーメッセージ2"
]
}
使用可能なメンバーのレイアウト設定情報を全て取得します。custom_fields
の詳細については、custom_fields についてを参照ください。
get_calc_type | boolean Default: false Example: get_calc_type=true 計算式パーツの取得 |
curl -X GET "https://api.kaonavi.jp/api/v2.0/member_layouts" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "code": {
- "name": "氏名",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ]
}, - "name_kana": {
- "name": "フリガナ",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ]
}, - "mail": {
- "name": "メールアドレス",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ]
}, - "entered_date": {
- "name": "入社日",
- "required": false,
- "type": "date",
- "max_length": null,
- "enum": [ ]
}, - "retired_date": {
- "name": "退職日",
- "required": false,
- "type": "date",
- "max_length": null,
- "enum": [ ]
}, - "gender": {
- "name": "性別",
- "required": false,
- "type": "enum",
- "max_length": null,
- "enum": [
- "男性",
- "女性"
]
}, - "birthday": {
- "name": "生年月日",
- "required": false,
- "type": "date",
- "max_length": null,
- "enum": [ ]
}, - "department": {
- "name": "所属",
- "required": false,
- "type": "department",
- "max_length": null,
- "enum": [ ]
}, - "sub_departments": {
- "name": "兼務情報",
- "required": false,
- "type": "department[]",
- "max_length": null,
- "enum": [ ]
}, - "custom_fields": [
- {
- "id": 100,
- "name": "血液型",
- "required": false,
- "type": "enum",
- "max_length": null,
- "enum": [
- "A",
- "B",
- "O",
- "AB"
]
}, - {
- "id": 200,
- "name": "役職",
- "required": false,
- "type": "enum",
- "max_length": null,
- "enum": [
- "部長",
- "課長",
- "マネージャー"
]
}
]
}
使用可能なシートのレイアウト設定情報を全て取得します。custom_fields
の詳細については、custom_fields についてを参照ください。
get_calc_type | boolean Default: false Example: get_calc_type=true 計算式パーツの取得 |
curl -X GET "https://api.kaonavi.jp/api/v2.0/sheet_layouts" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "sheets": {
- "id": 12,
- "name": "住所・連絡先",
- "record_type": 1,
- "custom_fields": [
- {
- "id": 1000,
- "name": "住所",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ],
- "type_detail": "text_box"
}, - {
- "id": 1001,
- "name": "電話番号",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ],
- "type_detail": "text_box"
}
]
}
}
指定したシートの使用可能なレイアウト設定を全て取得します。custom_fields
の詳細については、custom_fields についてを参照ください。
sheet_id required | integer シートID |
get_calc_type | boolean Default: false Example: get_calc_type=true 計算式パーツの取得 |
curl -X GET "https://api.kaonavi.jp/api/v2.0/sheet_layouts/{sheet_id}" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "id": 12,
- "name": "住所・連絡先",
- "record_type": 1,
- "custom_fields": [
- {
- "id": 1000,
- "name": "住所",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ],
- "type_detail": "text_box"
}, - {
- "id": 1001,
- "name": "電話番号",
- "required": false,
- "type": "string",
- "max_length": 100,
- "enum": [ ],
- "type_detail": "text_box"
}
]
}
curl -X GET "https://api.kaonavi.jp/api/v2.0/members" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "updated_at": "2020-10-01 01:23:45",
- "member_data": [
- {
- "id": 1,
- "code": "A0002",
- "name": "カオナビ 太郎",
- "name_kana": "カオナビ タロウ",
- "mail": "taro@kaonavi.jp",
- "entered_date": "2005-09-20",
- "retired_date": "",
- "gender": "男性",
- "birthday": "1984-05-15",
- "age": 36,
- "years_of_service": "15年5ヵ月",
- "department": {
- "code": "1000",
- "name": "取締役会",
- "names": [
- "取締役会"
]
}, - "sub_departments": [ ],
- "face_image": {
- "updated_at": "2020-10-01 01:23:45"
}, - "custom_fields": [
- {
- "id": 100,
- "name": "血液型",
- "values": [
- "A"
]
}
]
}, - {
- "id": 2,
- "code": "A0001",
- "name": "カオナビ 花子",
- "name_kana": "カオナビ ハナコ",
- "mail": "hanako@kaonavi.jp",
- "entered_date": "2013-05-07",
- "retired_date": "",
- "gender": "女性",
- "birthday": "1986-05-16",
- "age": 36,
- "years_of_service": "7年9ヵ月",
- "department": {
- "code": "2000",
- "name": "営業本部 第一営業部 ITグループ",
- "names": [
- "営業本部",
- "第一営業部",
- "ITグループ"
]
}, - "sub_departments": [
- {
- "code": "3000",
- "name": "企画部",
- "names": [
- "企画部"
]
}, - {
- "code": "4000",
- "name": "管理部",
- "names": [
- "管理部"
]
}
], - "face_image": null,
- "custom_fields": [
- {
- "id": 100,
- "name": "血液型",
- "values": [
- "O"
]
}, - {
- "id": 200,
- "name": "役職",
- "values": [
- "部長",
- "マネージャー"
]
}
]
}
]
}
メンバー登録と、合わせて基本情報・所属(主務)・兼務情報を登録します。
※ 更新リクエスト制限の対象APIです。
Dry-Run |
Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "name": "カオナビ 太郎",
- "name_kana": "カオナビ タロウ",
- "mail": "taro@kaonavi.jp",
- "entered_date": "2005-09-20",
- "retired_date": "",
- "gender": "男性",
- "birthday": "1984-05-15",
- "department": {
- "code": "1000"
}, - "sub_departments": [ ],
- "custom_fields": [
- {
- "id": 100,
- "values": [
- "A"
]
}
]
}, - {
- "code": "A0001",
- "name": "カオナビ 花子",
- "name_kana": "カオナビ ハナコ",
- "mail": "hanako@kaonavi.jp",
- "entered_date": "2013-05-07",
- "retired_date": "",
- "gender": "女性",
- "birthday": "1986-05-16",
- "department": {
- "code": "2000"
}, - "sub_departments": [
- {
- "code": "3000"
}, - {
- "code": "4000"
}
], - "custom_fields": [
- {
- "id": 100,
- "values": [
- "O"
]
}, - {
- "id": 200,
- "values": [
- "部長",
- "マネージャー"
]
}
]
}
]
}
{- "task_id": 1
}
全てのメンバーの基本情報・所属(主務)・兼務情報を一括更新します。
Request Body に含まれていない情報は削除されます。
※ メンバーの登録・削除は行われません。
※ 更新リクエスト制限の対象APIです。
Dry-Run |
Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "name": "カオナビ 太郎",
- "name_kana": "カオナビ タロウ",
- "mail": "taro@kaonavi.jp",
- "entered_date": "2005-09-20",
- "retired_date": "",
- "gender": "男性",
- "birthday": "1984-05-15",
- "department": {
- "code": "1000"
}, - "sub_departments": [ ],
- "custom_fields": [
- {
- "id": 100,
- "values": [
- "A"
]
}
]
}, - {
- "code": "A0001",
- "name": "カオナビ 花子",
- "name_kana": "カオナビ ハナコ",
- "mail": "hanako@kaonavi.jp",
- "entered_date": "2013-05-07",
- "retired_date": "",
- "gender": "女性",
- "birthday": "1986-05-16",
- "department": {
- "code": "2000"
}, - "sub_departments": [
- {
- "code": "3000"
}, - {
- "code": "4000"
}
], - "custom_fields": [
- {
- "id": 100,
- "values": [
- "O"
]
}, - {
- "id": 200,
- "values": [
- "部長",
- "マネージャー"
]
}
]
}
]
}
{- "task_id": 1
}
送信されたメンバーの基本情報・所属(主務)・兼務情報のみを更新します。
Request Body に含まれていない情報は更新されません。
特定の値を削除する場合は、空文字 "" を送信してください。
※ 更新リクエスト制限の対象APIです。
Dry-Run |
Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "name": "カオナビ 太郎",
- "name_kana": "カオナビ タロウ",
- "mail": "taro@kaonavi.jp",
- "entered_date": "2005-09-20",
- "retired_date": "",
- "gender": "男性",
- "birthday": "1984-05-15",
- "department": {
- "code": "1000"
}, - "sub_departments": [ ],
- "custom_fields": [
- {
- "id": 100,
- "values": [
- "A"
]
}
]
}, - {
- "code": "A0001",
- "name": "カオナビ 花子",
- "name_kana": "カオナビ ハナコ",
- "mail": "hanako@kaonavi.jp",
- "entered_date": "2013-05-07",
- "retired_date": "",
- "gender": "女性",
- "birthday": "1986-05-16",
- "department": {
- "code": "2000"
}, - "sub_departments": [
- {
- "code": "3000"
}, - {
- "code": "4000"
}
], - "custom_fields": [
- {
- "id": 100,
- "values": [
- "O"
]
}, - {
- "id": 200,
- "values": [
- "部長",
- "マネージャー"
]
}
]
}
]
}
{- "task_id": 1
}
現在登録されているメンバーとそれに紐づく基本情報・所属(主務)・兼務情報を全て、リクエストしたデータで入れ替えます。
※ 更新リクエスト制限の対象APIです。
※ メンバーの削除はリクエスト時に登録処理が完了しているメンバーに対してのみ実行されます。
Dry-Run |
Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "name": "カオナビ 太郎",
- "name_kana": "カオナビ タロウ",
- "mail": "taro@kaonavi.jp",
- "entered_date": "2005-09-20",
- "retired_date": "",
- "gender": "男性",
- "birthday": "1984-05-15",
- "department": {
- "code": "1000"
}, - "sub_departments": [ ],
- "custom_fields": [
- {
- "id": 100,
- "values": [
- "A"
]
}
]
}, - {
- "code": "A0001",
- "name": "カオナビ 花子",
- "name_kana": "カオナビ ハナコ",
- "mail": "hanako@kaonavi.jp",
- "entered_date": "2013-05-07",
- "retired_date": "",
- "gender": "女性",
- "birthday": "1986-05-16",
- "department": {
- "code": "2000"
}, - "sub_departments": [
- {
- "code": "3000"
}, - {
- "code": "4000"
}
], - "custom_fields": [
- {
- "id": 100,
- "values": [
- "O"
]
}, - {
- "id": 200,
- "values": [
- "部長",
- "マネージャー"
]
}
]
}
]
}
{- "task_id": 1
}
送信されたメンバーを削除します。
紐付けユーザーがいる場合、そのアカウント種別によってはユーザーも同時に削除されます。
Dry-Run |
codes required | Array of strings 社員番号のリスト |
{- "codes": [
- "A0001",
- "A0002"
]
}
{- "task_id": 1
}
メンバーの顔写真をダウンロードするためのURL一覧を取得します。
※ URLの有効期限は15分です。ファイル数や回線状況によっては期限内に全てのダウンロードが完了しない場合があります。その際は、並行処理や一括取得の再リクエストなどの方法をご検討ください。
※ URLは発行時点のメンバーの顔写真に紐づいています。
※ 取得される顔写真はjpg/jpeg形式です。
updated_since | string <date> Example: updated_since=2020-10-01 指定した日以降に顔写真が更新されたメンバーに絞り込みます。 |
curl -X GET "https://api.kaonavi.jp/api/v2.0/members/face_image?updated_since=2020-10-01" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "member_data": [
- {
- "code": "A0001",
- "file_name": "A0001.jpg",
- "updated_at": "2020-10-01 01:23:45"
}, - {
- "code": "A0002",
- "file_name": "A0002.jpg",
- "updated_at": "2020-10-01 01:23:45"
}
]
}
指定したメンバーの顔写真をアップロードします。
顔写真が未登録の場合、アップロードが可能です。
顔写真が登録済みの場合、エラーになります。
対応拡張子
jpg/jpeg, gif, png
1リクエストあたりの上限
メンバー数: 100メンバー
ファイルサイズ: 各ファイル5MBまで
※ 更新リクエスト制限の対象APIです。
Dry-Run |
enable_trimming | boolean Default: true 顔写真の中の顔の位置を自動認識して、トリミングする機能を利用する(true:有効 false:無効。未指定の場合はtrue) |
required | Array of objects |
{- "enable_trimming": true,
- "member_data": [
- {
- "code": "A0001",
- "base64_face_image": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj+P///38ACfsD/QVDRcoAAAAASUVORK5CYII="
}
]
}
{- "task_id": 1
}
指定したメンバーの顔写真を置き換えます。
顔写真が登録済みの場合、顔写真を置き換えます。
顔写真が未登録の場合、エラーになります。
対応拡張子
jpg/jpeg, gif, png
1リクエストあたりの上限
メンバー数: 100メンバー
ファイルサイズ: 各ファイル5MBまで
※ 更新リクエスト制限の対象APIです。
Dry-Run |
enable_trimming | boolean Default: true 顔写真の中の顔の位置を自動認識して、トリミングする機能を利用する(true:有効 false:無効。未指定の場合はtrue) |
required | Array of objects |
{- "enable_trimming": true,
- "member_data": [
- {
- "code": "A0001",
- "base64_face_image": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdj+P///38ACfsD/QVDRcoAAAAASUVORK5CYII="
}
]
}
{- "task_id": 1
}
指定したシートの全情報を取得します。
sheet_id required | integer シートID |
curl -X GET "https://api.kaonavi.jp/api/v2.0/sheets/{sheet_id}" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "id": 12,
- "name": "住所・連絡先",
- "record_type": 1,
- "updated_at": "2020-10-01 01:23:45",
- "member_data": [
- {
- "code": "A0002",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "name": "住所",
- "values": [
- "東京都港区x-x-x"
]
}
]
}
]
}, - {
- "code": "A0001",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "name": "住所",
- "values": [
- "大阪府大阪市y番y号"
]
}, - {
- "id": 1001,
- "name": "電話番号",
- "values": [
- "06-yyyy-yyyy"
]
}
]
}, - {
- "custom_fields": [
- {
- "id": 1000,
- "name": "住所",
- "values": [
- "愛知県名古屋市z丁目z番z号"
]
}, - {
- "id": 1001,
- "name": "電話番号",
- "values": [
- "052-zzzz-zzzz"
]
}
]
}
]
}
]
}
指定したシートのシート情報を一括更新します。
Request Body に含まれていない情報は削除されます。
複数レコードの情報は送信された配列順に登録されます。
※ 更新リクエスト制限の対象APIです。
sheet_id required | integer シートID |
Dry-Run |
required | Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "東京都港区x-x-x"
]
}
]
}
]
}, - {
- "code": "A0001",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "大阪府大阪市y番y号"
]
}, - {
- "id": 1001,
- "values": [
- "06-yyyy-yyyy"
]
}
]
}, - {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "愛知県名古屋市z丁目z番z号"
]
}, - {
- "id": 1001,
- "values": [
- "052-zzzz-zzzz"
]
}
]
}
]
}
]
}
{- "task_id": 1
}
指定したシートのシート情報の一部を更新します。
単一レコード
送信された情報のみが更新されます。
Request Body に含まれていない情報は更新されません。
特定の値を削除する場合は、空文字 "" を送信してください。
複数レコード
メンバーごとのデータが一括更新されます。
特定の値を削除する場合は、空文字 "" を送信してください。
特定のレコードだけを更新することは出来ません。
member_code が指定されていないメンバーの情報は更新されません。
送信された配列順に登録されます。
※ 更新リクエスト制限の対象APIです。
sheet_id required | integer シートID |
Dry-Run |
required | Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "東京都港区x-x-x"
]
}
]
}
]
}, - {
- "code": "A0001",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "大阪府大阪市y番y号"
]
}, - {
- "id": 1001,
- "values": [
- "06-yyyy-yyyy"
]
}
]
}, - {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "愛知県名古屋市z丁目z番z号"
]
}, - {
- "id": 1001,
- "values": [
- "052-zzzz-zzzz"
]
}
]
}
]
}
]
}
{- "task_id": 1
}
指定した複数レコード形式のシートにレコードを追加します。単一レコード形式のシートは対象外です。
※ 更新リクエスト制限の対象APIです。
sheet_id required | integer シートID |
Dry-Run |
required | Array of objects |
{- "member_data": [
- {
- "code": "A0002",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "東京都港区x-x-x"
]
}
]
}
]
}, - {
- "code": "A0001",
- "records": [
- {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "大阪府大阪市y番y号"
]
}, - {
- "id": 1001,
- "values": [
- "06-yyyy-yyyy"
]
}
]
}, - {
- "custom_fields": [
- {
- "id": 1000,
- "values": [
- "愛知県名古屋市z丁目z番z号"
]
}, - {
- "id": 1001,
- "values": [
- "052-zzzz-zzzz"
]
}
]
}
]
}
]
}
{- "task_id": 1
}
指定したシートのファイルパーツにファイルをアップロードします。
単一レコード
ファイルが未登録の場合、アップロードが可能です。
ファイルが登録済みの場合、エラーになります。
複数レコード
レコードを追加する形でファイルをアップロードします。
ファイル名はアップロード済みのファイルとは重複出来ません。
送信された配列順に登録されます。
対応拡張子
txt, csv, xml, htm, html, doc, docx, rtf, xls, xlsx, xlsm, ppt, pptx, pdf, jpeg, jpg, gif, png, tif, zip, odp, ods, xdw, msg
1リクエストあたりの上限
ファイル数: 1,000ファイル
ファイルサイズ: 各ファイル5MBまで
※ 更新リクエスト制限の対象APIです。
sheet_id required | integer シートID |
custom_field_id required | integer カスタムフィールドID |
Dry-Run |
required | Array of objects |
{- "member_data": [
- {
- "code": "A0001",
- "records": [
- {
- "file_name": "sample.txt",
- "base64_content": "44GT44KM44Gv44K144Oz44OX44Or44OG44Kt44K544OI44Gn44GZ44CC"
}
]
}
]
}
{- "task_id": 1
}
指定したシートのファイルパーツのファイルを置き換えます。
単一レコード
登録済みファイルと同一名のファイルを置き換えます。
複数レコード
登録済みファイルと同一名のファイルを置き換えます。
メンバーに同一ファイル名のレコードが複数ある場合、更新出来ません。
例)
・ 更新可能:社員番号:A0001と社員番号:A0002がそれぞれ「sample.txt」という名前のファイルを持つ
・ 更新不可:社員番号:A0001が「sample.txt」という名前のファイルを2つ以上持つ
対応拡張子
txt, csv, xml, htm, html, doc, docx, rtf, xls, xlsx, xlsm, ppt, pptx, pdf, jpeg, jpg, gif, png, tif, zip, odp, ods, xdw, msg
1リクエストあたりの上限
ファイル数: 1,000ファイル
ファイルサイズ: 各ファイル5MBまで
※ 更新リクエスト制限の対象APIです。
sheet_id required | integer シートID |
custom_field_id required | integer カスタムフィールドID |
Dry-Run |
required | Array of objects |
{- "member_data": [
- {
- "code": "A0001",
- "records": [
- {
- "file_name": "sample.txt",
- "base64_content": "44GT44KM44Gv44K144Oz44OX44Or44OG44Kt44K544OI44Gn44GZ44CC"
}
]
}
]
}
{- "task_id": 1
}
curl -X GET "https://api.kaonavi.jp/api/v2.0/departments" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "department_data": [
- {
- "code": "1000",
- "name": "取締役会",
- "parent_code": null,
- "leader_member_code": "A0002",
- "order": 1,
- "memo": ""
}, - {
- "code": "1200",
- "name": "営業本部",
- "parent_code": null,
- "leader_member_code": null,
- "order": 2,
- "memo": ""
}, - {
- "code": "1500",
- "name": "第一営業部",
- "parent_code": "1200",
- "leader_member_code": null,
- "order": 1,
- "memo": ""
}, - {
- "code": "2000",
- "name": "ITグループ",
- "parent_code": "1500",
- "leader_member_code": "A0001",
- "order": 1,
- "memo": "example"
}
]
}
所属ツリーの情報を一括更新します。
Request Body に含まれていない情報は削除されます。
※ 更新リクエスト制限の対象APIです。
Dry-Run |
Array of objects |
{- "department_data": [
- {
- "code": "1000",
- "name": "取締役会",
- "parent_code": null,
- "leader_member_code": "A0002",
- "order": 1,
- "memo": ""
}, - {
- "code": "1200",
- "name": "営業本部",
- "parent_code": null,
- "leader_member_code": null,
- "order": 2,
- "memo": ""
}, - {
- "code": "1500",
- "name": "第一営業部",
- "parent_code": "1200",
- "leader_member_code": null,
- "order": 1,
- "memo": ""
}, - {
- "code": "2000",
- "name": "ITグループ",
- "parent_code": "1500",
- "leader_member_code": "A0001",
- "order": 1,
- "memo": "example"
}
]
}
{- "task_id": 1
}
ユーザー情報の一覧を取得します。
紐付けメンバーが設定されていないユーザーの場合、member_code:null
と返却されます。
一度もログインしたことがないユーザーの場合、last_login_at:null
と返却されます。
curl -X GET "https://api.kaonavi.jp/api/v2.0/users" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "user_data": [
- {
- "id": 1,
- "email": "taro@kaonavi.jp",
- "member_code": "A0002",
- "role": {
- "id": 1,
- "name": "システム管理者",
- "type": "Adm"
}, - "last_login_at": "2021-11-01 12:00:00",
- "is_active": true,
- "password_locked": false,
- "use_smartphone": false
}, - {
- "id": 2,
- "email": "hanako@kaonavi.jp",
- "member_code": "A0001",
- "role": {
- "id": 2,
- "name": "マネージャ",
- "type": "一般"
}, - "last_login_at": null,
- "is_active": true,
- "password_locked": false,
- "use_smartphone": false
}
]
}
ユーザー情報を登録します。
管理者機能トップ > ユーザー管理 にてユーザー作成時に設定可能なオプションについては、以下の内容で作成されます。
また、未指定のオプションについては以下の内容で作成されます。
Dry-Run |
email required | string ログインメールアドレス |
member_code required | string 社員番号 |
password required | string パスワード |
required | object ロール情報 |
is_active | boolean アカウント状態(false:停止 true:利用) |
password_locked | boolean パスワードロック(false:解除 true:ロック) |
use_smartphone | boolean スマホオプションフラグ(false:停止 true:利用) |
{- "email": "example@kaonavi.jp",
- "member_code": "A0003",
- "password": "password",
- "role": {
- "id": 1
}, - "is_active": true,
- "password_locked": false,
- "use_smartphone": false
}
{- "id": 1,
- "email": "example@kaonavi.jp",
- "member_code": "12345",
- "role": {
- "id": 1,
- "name": "システム管理者",
- "type": "Adm"
}, - "is_active": true,
- "password_locked": false,
- "use_smartphone": false
}
指定のユーザーIDのログインユーザー情報を返却します。
紐付けメンバーが設定されていないユーザーの場合、member_code:null
と返却されます。
一度もログインしたことがないユーザーの場合、last_login_at:null
と返却されます。
user_id required | integer ユーザーID |
curl -X GET "https://api.kaonavi.jp/api/v2.0/users/{user_id}" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "id": 1,
- "email": "example@kaonavi.jp",
- "member_code": "12345",
- "role": {
- "id": 1,
- "name": "システム管理者",
- "type": "Adm"
}, - "is_active": true,
- "password_locked": false,
- "use_smartphone": false,
- "last_login_at": "2021-11-01 12:00:00"
}
指定のユーザーIDのログインユーザー情報を更新します。
管理者機能トップ > ユーザー管理 にて更新可能な以下のオプションについては元の値が維持されます。
user_id required | integer ユーザーID |
Dry-Run |
string ログインメールアドレス | |
member_code | string 社員番号 |
password | string パスワード |
object ロール情報 | |
is_active | boolean アカウント状態(false:停止 true:利用) |
password_locked | boolean パスワードロック(false:解除 true:ロック) |
use_smartphone | boolean スマホオプションフラグ(false:停止 true:利用) |
{- "email": "example@kaonavi.jp",
- "member_code": "A0003",
- "password": "password",
- "role": {
- "id": 1
}, - "is_active": true,
- "password_locked": false,
- "use_smartphone": false
}
{- "id": 1,
- "email": "example@kaonavi.jp",
- "member_code": "12345",
- "role": {
- "id": 1,
- "name": "システム管理者",
- "type": "Adm"
}, - "is_active": true,
- "password_locked": false,
- "use_smartphone": false
}
curl -X GET "https://api.kaonavi.jp/api/v2.0/roles" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "role_data": [
- {
- "id": 1,
- "name": "カオナビ管理者",
- "type": "Adm"
}, - {
- "id": 2,
- "name": "カオナビマネージャー",
- "type": "一般"
}
]
}
拡張アクセス設定の一覧を取得します。
advanced_type required | string Enum: "member" "department" 拡張アクセス設定の種別 |
curl -X GET "https://api.kaonavi.jp/api/v2.0/advanced_permissions/{advanced_type}" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "advanced_permission_data": [
- {
- "user_id": 1,
- "add_codes": [
- "0001",
- "0002",
- "0003"
], - "exclusion_codes": [
- "0001",
- "0002",
- "0003"
]
}, - {
- "user_id": 2,
- "add_codes": [
- "0001",
- "0002",
- "0003"
], - "exclusion_codes": [
- "0001",
- "0002",
- "0003"
]
}
]
}
現在登録されている拡張アクセス設定を全て、リクエストしたデータで入れ替えます。
1ユーザーあたりの上限
・メンバー : 追加・除外 各30,000件
・所属 : 追加・除外 各1,000件
※ 更新リクエスト制限の対象APIです。
advanced_type required | string Enum: "member" "department" 拡張アクセス設定の種別 |
Array of objects |
{- "advanced_permission_data": [
- {
- "user_id": 1,
- "add_codes": [
- "0001",
- "0002",
- "0003"
], - "exclusion_codes": [
- "0001",
- "0002",
- "0003"
]
}, - {
- "user_id": 2,
- "add_codes": [
- "0001",
- "0002",
- "0003"
], - "exclusion_codes": [
- "0001",
- "0002",
- "0003"
]
}
]
}
{- "task_id": 1
}
マスター管理およびAPIv2で編集可能な項目のマスター一覧を取得します。
※ データ連携中の項目は、マスター管理画面で編集できないため取得できません。
APIv2で編集可能な項目
・プルダウンリスト
・ラジオボタン
・チェックボックス
curl -X GET "https://api.kaonavi.jp/api/v2.0/enum_options" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "custom_field_data": [
- {
- "sheet_name": "役職情報",
- "id": 10,
- "name": "役職",
- "enum_option_data": [
- {
- "id": 1,
- "name": "社長"
}, - {
- "id": 2,
- "name": "部長"
}, - {
- "id": 3,
- "name": "課長"
}
]
}, - {
- "sheet_name": "家族情報",
- "id": 20,
- "name": "続柄区分",
- "enum_option_data": [
- {
- "id": 4,
- "name": "父"
}, - {
- "id": 5,
- "name": "母"
}, - {
- "id": 6,
- "name": "兄"
}, - {
- "id": 7,
- "name": "姉"
}
]
}, - {
- "sheet_name": "学歴情報",
- "id": 30,
- "name": "学歴区分",
- "enum_option_data": [
- {
- "id": 8,
- "name": "高校"
}, - {
- "id": 9,
- "name": "大学"
}, - {
- "id": 10,
- "name": "大学院"
}
]
}
]
}
指定したcustom_fields(カスタムフィールド)のマスター情報を取得します。
※ データ連携中の項目は、マスター管理画面で編集できないため取得できません。
APIv2で編集可能な項目
・プルダウンリスト
・ラジオボタン
・チェックボックス
custom_field_id required | integer カスタムフィールドID |
curl -X GET "https://api.kaonavi.jp/api/v2.0/enum_options/{custom_field_id}" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "sheet_name": "役職情報",
- "id": "10",
- "name": "役職",
- "enum_option_data": [
- {
- "id": 1,
- "name": "社長"
}, - {
- "id": 2,
- "name": "部長"
}, - {
- "id": 3,
- "name": "課長"
}
]
}
指定したcustom_fields(カスタムフィールド)のマスター情報を一括更新します。
※ データ連携中の項目は、マスター管理画面で編集できないため更新できません。
Request Body に含まれていないマスターは削除されます。
マスターを追加したい場合は、id を指定せず name のみ指定してください。
APIv2で編集可能な項目
・プルダウンリスト
・ラジオボタン
・チェックボックス
※ 並び順は送信された配列順に登録されます。
※ 変更履歴が設定されたシートのマスター情報を更新した際には履歴が作成されます。
※ enum_option_dataは0件での指定は出来ません。1件以上指定してください。
※ 削除できるマスターは、メンバー数が「0」のマスターのみです。
※ 更新リクエスト制限の対象APIです。
custom_field_id required | integer カスタムフィールドID |
Dry-Run |
Array of objects |
{- "enum_option_data": [
- {
- "id": 1,
- "name": "社長"
}, - {
- "name": "本部長"
}, - {
- "id": 2,
- "name": "マネージャー"
}
]
}
{- "task_id": 1
}
curl -X GET "https://api.kaonavi.jp/api/v2.0/webhook" ^ -H "Content-Type: application/json" ^ -H "Kaonavi-Token: {アクセストークン}"
{- "webhook_data": [
- {
- "id": 1,
- "url": "string",
- "events": [
- "member_created",
- "member_updated"
], - "secret_token": "string",
- "updated_at": "2021-12-01 12:00:00",
- "created_at": "2021-11-01 12:00:00"
}, - {
- "id": 2,
- "url": "string",
- "events": [
- "member_created"
], - "secret_token": "string",
- "updated_at": "2022-12-01 12:00:00",
- "created_at": "2022-11-01 12:00:00"
}
]
}
Webhook設定を登録します。
Dry-Run |
url required | string Webhookの送信先URL |
events required | Array of strings Webhookを送信するイベント |
secret_token | string 検証用トークン |
{- "url": "string",
- "events": [
- "member_created",
- "member_updated",
- "member_deleted"
], - "secret_token": "string"
}
{- "id": 1,
- "url": "string",
- "events": [
- "member_created",
- "member_updated",
- "member_deleted"
], - "secret_token": "string"
}
指定の ID の Webhook 設定情報を更新します。
webhook_id required | integer Webhook ID |
Dry-Run |
url required | string Webhookの送信先URL |
events required | Array of strings Webhookを送信するイベント |
secret_token | string 検証用トークン |
{- "url": "string",
- "events": [
- "member_created",
- "member_updated"
], - "secret_token": "string"
}
{- "id": 1,
- "url": "string",
- "events": [
- "member_created",
- "member_updated"
], - "secret_token": "string"
}