メソッド

user.create

このメソッドは新しい受講者あるいは管理者を作成します。全てのユーザーは組織内のトップレベルのグループに追加されます。

URL

https://customdomain.com/api/user.create

バッチURL

https://customdomain.com/api/batch/user.create

バッチリクエストについて

Arguments

Argument 必須 説明
login_id 必須
last_name 必須
first_name 必須
password 必須 パスワードは8文字以上
password_change_required 任意 有効な属性:true, false。このArgumentをリクエストに含めない場合はfalseとなります。
role 必須 有効な属性: "learner", "admin"
language 必須 これはユーザーのインターフェースで設定される言語の文字コードとなります。有効な属性は以下をご参照ください。
time_zone 必須 有効なタイムゾーンはこちらのリストの「TZ database name」の列をご参照ください。(例:Asia/Tokyo
profile 任意 詳細は以下を参照ください。

有効なlanguage属性

コード 言語
ja 日本語
en 英語
es スペイン語
zh_CN 中国語簡体字
zh_TW 中国語繁体字
fr フランス語
vi ベトナム語
de ドイツ語
id インドネシア語
it イタリア語
ko 韓国語
pt ポルトガル語
ru ロシア語
th タイ語

プロフィール

現在以下の6つのタイプのプロフィール項目があります。適切な項目のタイプを使用していることを確認して下さい。

フィールドタイプ 有効なJSONタイプ
text 文字列
number 整数又は数字
date ISO 8601 (YYYY-MM-DD) フォーマットの文字列 。例えば、2019年1月17日は2019-01-17となります。
text_choice 文字列(選択肢の"choice_id"となります)
number_choice 文字列(選択肢の"choice_id"となります)
date_choice 文字列(選択肢の"choice_id"となります)

例:

[
  {
    "field_id": "hvGva1TxJ08z",
    "value": "テキスト項目に入れる文字列"
  },
  {
    "field_id": "ySU2O89tx5PQ",
    "value": 100
  },
  {
    "field_id": "5mo6hek3p7WP",
    "value": "2019-01-17"
  },
  {
    "field_id": "tJWOy9kqL0ru",
    "value": "IKR8fotbjgUT"
  },
  {
    "field_id": "OCDY271wu2Dv",
    "value": "1qTZ7g3GPRkc"
  },
  {
    "field_id": "ykjUihjjlOdW",
    "value": "qP8foksNsuOE"
  }
]

リクエスト

{
  "login_id": "taro.yamada@example.com",
  "last_name": "山田",
  "first_name": "太郎",
  "password": "a6nKr2rw",
  "role": "learner",
  "language": "ja",
  "time_zone": "Asia/Tokyo",
  "profile": [
    {
      "field_id": "hvGva1TxJ08z",
      "value": "テキスト項目に入れる文字列"
    }
  ],
  "password_change_required": true
}

レスポンス

レスポンスが成功した場合は作成したユーザーのIDを返します。以下がレスポンスの例です。

{
  "status": "success",
  "data": {
    "user_id": "wLQPaRVUME7f"
  }
}

エラー

コード 説明
login_id_exists 指定されたlogin IDは他のユーザーによってすでに使用されています。
invalid_password 指定されたパスワードでユーザーを作成できません。
invalid_time_zone 指定されたタイムゾーンでユーザーを作成できません。
invalid_language 指定された言語でユーザーを作成できません。
invalid_role 指定された属性でユーザーを作成できません。
invalid_profile 指定されたプロフィール属性は無効です。項目のタイプに正しいタイプの属性が送られているか確認をして下さい。

user.update

このメソッドは組織内のユーザーの情報をアップデートします。

URL

https://customdomain.com/api/user.update

バッチURL

https://customdomain.com/api/batch/user.update

バッチリクエストについて

Arguments

Argument 必須 説明
user_id 必須 アップデートするユーザーのID
login_id 任意
last_name 任意
first_name 任意
language 任意 これはユーザーのインターフェイスで設定される言語の文字コードとなります。有効な属性は以下をご参照ください。
time_zone 任意 有効なタイムゾーンはこちらのリストの「TZ database name」の列をご参照ください。(例:Asia/Tokyo
profile 任意 詳細は以下を参照ください。

有効なlanguage属性

コード 言語
ja 日本語
en 英語
es スペイン語
zh_CN 中国語簡体字
zh_TW 中国語繁体字
fr フランス語
vi ベトナム語
de ドイツ語
id インドネシア語
it イタリア語
ko 韓国語
pt ポルトガル語
ru ロシア語
th タイ語

プロフィール

現在以下の6つのタイプのプロフィール項目があります。適切な項目のタイプを使用していることを確認して下さい。

フィールドタイプ 有効なJSONタイプ
text 文字列
number 整数又は数字
date ISO 8601 (YYYY-MM-DD) フォーマットの文字列 。例えば、2019年1月17日は2019-01-17となります。
text_choice 文字列(選択肢の"choice_id"となります)
number_choice 文字列(選択肢の"choice_id"となります)
date_choice 文字列(選択肢の"choice_id"となります)

項目のアップデートするとアップデートした項目はそのユーザーの既存の項目に上書きされます。

例:

[
  {
    "field_id": "hvGva1TxJ08z",
    "value": "テキスト項目に入れる文字列"
  },
  {
    "field_id": "ySU2O89tx5PQ",
    "value": 100
  },
  {
    "field_id": "5mo6hek3p7WP",
    "value": "2019-01-17"
  },
  {
    "field_id": "tJWOy9kqL0ru",
    "value": "IKR8fotbjgUT"
  },
  {
    "field_id": "OCDY271wu2Dv",
    "value": "1qTZ7g3GPRkc"
  },
  {
    "field_id": "ykjUihjjlOdW",
    "value": "qP8foksNsuOE"
  }
]

リクエスト

{
  "user_id": "wLQPaRVUME7f",
  "language": "ja",
  "profile": [
    {
      "field_id": "hvGva1TxJ08z",
      "value": "文字列に入れる新しい属性"
    }
  ]
}

レスポンス

{
  "status": "success",
  "data": null
}

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。
login_id_exists login IDが他のユーザーによってすでに使用されています。
invalid_time_zone 指定されたタイムゾーンでユーザーをアップデートできません。
invalid_language 指定された言語でユーザーをアップデートできません。
invalid_profile 指定されたプロフィール属性が無効です。項目のタイプに正しいタイプの属性が送られているか確認をして下さい。

user.info

このメソッドは組織内のユーザーの情報を返します。

URL

https://customdomain.com/api/user.info

バッチURL リリース予定

https://customdomain.com/api/batch/user.info

バッチリクエストについて

Arguments

Argument 必須 説明
user_id 必須

リクエスト

{
  "user_id": "wLQPaRVUME7f"
}

レスポンス

{
  "status": "success",
  "data": {
    "user_id": "wLQPaRVUME7f",
    "login_id": "taro.yamada@example.com",
    "last_name": "山田",
    "first_name": "太郎",
    "time_zone": "Asia/Tokyo",
    "language": "ja",
    "profile": [
      {
        "field_id": "hvGva1TxJ08z",
        "name": "テキストプロフィール項目",
        "values": ["テキスト項目に入れる文字列"]
      },
      {
        "field_id": "tJWOy9kqL0ru",
        "name": "テキスト選択プロフィール項目",
        "values": [
          {
            "choice_id": "IArmC6RUe4l3",
            "value": "Choice 1"
          }
        ]
      }
    ]
  }
}

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。

user.delete

このメソッドは組織内のユーザーを削除します。

URL

https://customdomain.com/api/user.delete

バッチURL

https://customdomain.com/api/batch/user.delete

バッチリクエストについて

Arguments

Argument 必須 説明
user_id 必須

リクエスト

{
  "user_id": "wLQPaRVUME7f"
}

レスポンス

{
  "status": "success",
  "data": null
}

このメソッドはリクエストが正しく処理されると"success"レスポンスを返します。"success"レスポンスを受け取った後も引き続き処理が行われますが、最終的には処理が完了します。

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。

user.merge

このメソッドはユーザーを統合します。

URL

https://customdomain.com/api/user.merge

バッチURL

https://customdomain.com/api/batch/user.merge

バッチリクエストについて

Arguments

Argument 必須 説明
base_user_id 必須 統合後に組織に残るIDです。
merge_user_id 必須 "base_user_id"に統合されるIDです。

リクエスト

{
  "base_user_id": "wLQPaRVUME7f",
  "merge_user_id": "dCl2tVjYpaUD"
}

レスポンス

{
  "status": "success",
  "data": null
}

このメソッドはリクエストが正しく処理されると"success"レスポンスを返します。"success"レスポンスを受け取った後も引き続き処理が行われますが、最終的には処理が完了します。

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。
cant_merge_same_user 同一のIDを統合することはできません。

user.deactivate

このメソッドはユーザーを無効化します。無効化されたユーザーは組織にアクセスすることができなくなります。

URL

https://customdomain.com/api/user.deactivate

バッチURL

https://customdomain.com/api/batch/user.deactivate

バッチリクエストについて

Arguments

Argument 必須 説明
user_id 必須

リクエスト

{
  "user_id": "wLQPaRVUME7f"
}

レスポンス

{
  "status": "success",
  "data": null
}

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。
user_already_deactivated 既に無効化されたユーザーを無効化することはできません。

user.reactivate

このメソッドは無効化されたユーザーを再有効化します。再有効化されたユーザーは組織に再びアクセスすることができるようになります。

URL

https://customdomain.com/api/user.reactivate

バッチURL

https://customdomain.com/api/batch/user.reactivate

バッチリクエストについて

Arguments

Argument 必須 説明
user_id 必須

リクエスト

{
  "user_id": "wLQPaRVUME7f"
}

レスポンス

{
  "status": "success",
  "data": null
}

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。
user_already_activated 既に有効なユーザーを再有効化することはできません。

user.groups.list

このメソッドは組織内でユーザーが登録されているグループを返します。

URL

https://customdomain.com/api/user.groups.list

Arguments

Argument 必須 説明
user_id 必須

リクエスト

{
  "user_id": "fgUxj8SO6AaB"
}

レスポンス

{
  "status": "success",
  "data": [
    {
      "group_id": "cwo9aFjilDyg",
      "name": "グループA"
    },
    {
      "group_id": "YeMxzbxY5yDS",
      "name": "グループB"
    }
  ]
}

エラー

コード 説明
user_not_found 指定されたIDでユーザーが見つかりません。

org.users.list

このメソッドは組織内のユーザーをページ分割されたリストで返します。

URL

https://customdomain.com/api/org.users.list

Arguments

Argument 必須 説明
next 任意 前回のリクエストで受け取ったカーソル

リクエスト

{}

レスポンス

{
  "status": "success",
  "data": {
    "users": [
      {
        "user_id": "wLQPaRVUME7f",
        "login_id": "user1@example.com"
      },
      (...残りのデータ)
    ],
    "next": "RGVRt1m9DRWp"
  }
}

次のページのカーソルを含めたリクエスト

{
  "next": "RGVRt1m9DRWp"
}

次のページのカーソルが存在しない場合のレスポンス

{
  "status": "success",
  "data": {
    "users": [
      {
        "user_id": "fgUxj8SO6AaB",
        "login_id": "user3@example.com"
      }
    ],
    "next": null
  }
}

このメソッドは検索ワードに基づいて、ページ分割のユーザーリストを返します。login_idの部分一致によってユーザーを検索することができます。

必須条件

  • 各検索ワードは最低3文字以上にする必要があります。
  • 各リクエストにおける検索ワードの最大数は100です。

URL

https://customdomain.com/api/org.users.search

Arguments

Argument 必須 説明
login_id 必須 カンマで分けられたlogin IDの文字列
next 任意 前回のリクエストで受け取ったカーソル

リクエスト

{
  "login_id": "@example.com,@example2.com"
}

レスポンス

{
  "status": "success",
  "data": {
    "users": [
      {
        "user_id": "wLQPaRVUME7f",
        "login_id": "user1@example.com"
      },
      {
        "user_id": "9zQEwIZscwhp",
        "login_id": "user2@example2.com"
      },
      (...残りのデータ)
    ],
    "next": "RGVRt1m9DRWp"
  }
}

次のページのカーソルを含めたリクエスト

{
  "login_id": "@example.com,@example2.com",
  "next": "RGVRt1m9DRWp"
}

次のページのカーソルが存在しない場合のレスポンス

{
  "status": "success",
  "data": {
    "users": [
      {
        "user_id": "fgUxj8SO6AaB",
        "login_id": "user3@example.com"
      }
    ],
    "next": null
  }
}

org.groups.list

このメソッドは組織内のグループを返します。

URL

https://customdomain.com/api/org.groups.list

リクエスト

{}

レスポンス

各グループの"parent_id"は組織階層の中におけるそのグループの位置を示します。組織レベルのグループには"parent_id"はありません。

{
  "status": "success",
  "data": [
    {
      "group_id": "cwo9aFjilDyg",
      "name": "グループA",
      "parent_id": null
    },
    {
      "group_id": "YeMxzbxY5yDS",
      "name": "グループB",
      "parent_id": "cwo9aFjilDyg"
    },
    {
      "group_id": "YeMxzbxY5yDS",
      "name": "グループC",
      "parent_id": "cwo9aFjilDyg"
    }
  ]
}

org.courses.list

このメソッドは組織内のコースをページ分割されたリストで返します。

URL

https://customdomain.com/api/org.courses.list

Arguments

Argument 必須 説明
next 任意 前回のリクエストで受け取ったカーソル

リクエスト

{}

レスポンス

{
  "status": "success",
  "data": {
    "courses": [
      {
        "course_id": "tNtGFwMR8fFm",
        "title": "サンプルコース 1"
      },
      (...残りのデータ)
    ],
    "next": "FSaRYeqE8Nzk"
  }
}

次のページのカーソルを含めたリクエスト

{
  "next": "FSaRYeqE8Nzk"
}

次のページのカーソルが存在しない場合のレスポンス

{
  "status": "success",
  "data": {
    "courses": [
      {
        "course_id": "h1il3qxKHYN6",
        "title": "サンプルコース 2"
      }
    ],
    "next": null
  }
}

org.profile.list

このメソッドは組織内のプロフィール項目を返します。

URL

https://customdomain.com/api/org.profile.list

リクエスト

{}

レスポンス

{
  "status": "success",
  "data": [
    {
      "field_id": "hvGva1TxJ08z",
      "name": "テキストプロフィール項目",
      "type": "text"
    },
    {
      "field_id": "ySU2O89tx5PQ",
      "name": "番号プロフィール項目",
      "type": "number"
    },
    {
      "field_id": "5mo6hek3p7WP",
      "name": "日付プロフィール項目",
      "type": "date"
    },
    {
      "field_id": "tJWOy9kqL0ru",
      "name": "テキスト選択プロフィール項目",
      "type": "text_choice",
      "choices": [
        {
          "choice_id": "IKR8fotbjgUT",
          "value": "テキスト選択プロフィール項目の属性1"
        },
        {
          "choice_id": "Eq77H5mkOCn9",
          "value": "テキスト選択プロフィール項目の属性2"
        }
      ]
    },
    {
      "field_id": "OCDY271wu2Dv",
      "name": "番号選択プロフィール項目",
      "type": "number_choice",
      "choices": [
        {
          "choice_id": "1qTZ7g3GPRkc",
          "value": 100
        },
        {
          "choice_id": "5fYhEFHz8fil",
          "value": 200
        }
      ]
    },
    {
      "field_id": "ykjUihjjlOdW",
      "name": "Date choice profile field",
      "type": "date_choice",
      "choices": [
        {
          "choice_id": "qP8foksNsuOE",
          "value": "2019-01-19"
        },
        {
          "choice_id": "kl7boFCWLiDv",
          "value": "2019-02-19"
        }
      ]
    }
  ]
}

org.reports.list

このメソッドは組織内のレポートをページ分割されたリストで返します。

URL

https://customdomain.com/api/org.reports.list

Arguments

Argument 必須 説明
next 任意 前回のリクエストで受け取ったカーソル

リクエスト

{}

レスポンス

{
  "status": "success",
  "data": {
    "reports": [
      {
        "report_id": "32O31xMb2R",
        "title": "Learner progress report",
        "type": "learners",
      },
      (...rest of data)
    ],
    "next": "Bp0mAXl0GQ"
  }
}

レポートプロパティ

プロパティ 説明
report_id レポートのID
title レポートのタイトル
type レポートのタイプ: "learners", "courses", "submission_rates", "submissions", "people", "video_analytics", "activities", "activity_solutions", "submission_answers", "udemy_user_activity", "udemy_user_course_activity", "udemy_user_progress".

次のページのカーソルを含めたリクエスト

{
  "next": "Bp0mAXl0GQ"
}

次のページのカーソルが存在しない場合のレスポンス

{
  "status": "success",
  "data": {
    "reports": [
      {
        "report_id": "6r1w67Yw2k",
        "title": "Confirm certification",
        "type": "people",
      },
    ],
    "next": null
  }
}

group.user.add

このメソッドは指定のグループに1名のユーザーを追加します。

URL

https://customdomain.com/api/group.user.add

バッチURL

https://customdomain.com/api/batch/group.user.add

バッチリクエストについて

Arguments

Argument 必須 説明
group_id 必須
user_id 必須
role 必須 有効な属性: "learner", "admin"

リクエスト

{
  "group_id": "cwo9aFjilDyg",
  "user_id": "wLQPaRVUME7f",
  "role": "learner"
}

レスポンス

{
  "status": "success",
  "data": null
}

エラー

コード 説明
group_not_found 指定されたIDでグループが見つかりません。
user_not_found 指定されたIDでユーザーが見つかりません。
invalid_role 指定された属性でユーザーを作成できません。

group.user.remove

このメソッドは指定のグループから1名のユーザーを除外します。

URL

https://customdomain.com/api/group.user.remove

バッチURL

https://customdomain.com/api/batch/group.user.remove

バッチリクエストについて

Arguments

Argument 必須 説明
group_id 必須
user_id 必須
role 必須 有効な属性: "learner", "admin"

リクエスト

{
  "group_id": "cwo9aFjilDyg",
  "user_id": "wLQPaRVUME7f",
  "role": "learner"
}

レスポンス

{
  "status": "success",
  "data": null
}

このメソッドはリクエストが正しく処理されると"success"レスポンスを返します。"success"レスポンスを受け取った後も引き続き処理が行われますが、最終的には処理が完了します。

現在は、除外するユーザーについて以下の2つの条件を満たす場合にエラーが返されます。この制限は将来的に排除されます。

  1. そのユーザーが登録されている最後のグループから除外する。
  2. そのユーザーが登録されているコースのキャンセル待ちリストにユーザーが入っている。

エラー

コード 説明
group_not_found 指定されたIDでグループが見つかりません。
user_not_found 指定されたIDでユーザーが見つかりません。
invalid_role 指定された属性でユーザーを作成できません。

group.users.list

このメソッドはグループ内のユーザーをページ分割されたリストで返します。

URL

https://customdomain.com/api/group.users.list

Arguments

Argument 必須 説明
group_id 必須
next 任意 前回のリクエストで受け取ったカーソル

リクエスト

{
  "group_id": "cwo9aFjilDyg"
}

レスポンス

{
  "status": "success",
  "data": {
    "users": [
      {
        "user_id": "wLQPaRVUME7f",
        "login_id": "user1@example.com",
        "role": "learner"
      },
      (...残りのデータ)
    ],
    "next": "RGVRt1m9DRWp"
  }
}

役割

roleの3つの属性は"learner""admin"instructorがあります。

次のページのカーソルを含めたリクエスト

{
  "group_id": "cwo9aFjilDyg",
  "next": "RGVRt1m9DRWp"
}

次のページのカーソルが存在しない場合のレスポンス

{
  "status": "success",
  "data": {
    "users": [
      {
        "user_id": "fgUxj8SO6AaB",
        "login_id": "user3@example.com",
        "role": "learner"
      }
    ],
    "next": null
  }
}

エラー

コード 説明
group_not_found 指定されたIDでグループが見つかりません。

course.info

このメソッドは組織内のコースの情報を返します。

URL

https://customdomain.com/api/course.info

バッチURL リリース予定

https://customdomain.com/api/batch/course.info

バッチリクエストについて

Arguments

Argument 必須 説明
course_id 必須

リクエスト

{
  "course_id": "B9Bp9jpHhemG"
}

レスポンス

{
  "status": "success",
  "data": {
    "course_id": "B9Bp9jpHhemG",
    "title": "サンプルコース",
    "title_translations": [
      {
        "language": "en",
        "value": "Example course"
      }
    ],
    "location": "サンプルロケーション",
    "start_date": "2019-01-31",
    "end_date": "2019-02-28",
    "registration_end_date": "2019-01-30",
    "passing_grade": "enabled",
    "passing_grade_percentage": 80,
    "learner_maximum": "enabled",
    "learner_maximum_count": 10,
    "learner_waitlist": "enabled",
    "learner_waitlist_count": 5,
    "learner_leave_course": "enabled",
    "messages": "enabled",
    "instructor_count": 1,
    "learner_count": 10,
    "status": "active"
  }
}

コースのプロパティが設定されていない場合や該当しない場合、それらのプロパティはnullとなります。

{
  "status": "success",
  "data": {
    "course_id": "B9Bp9jpHhemG",
    "title": "サンプルコース",
    "title_translations": [],
    "location": null,
    "start_date": null,
    "end_date": null,
    "registration_end_date": null,
    "passing_grade": "disabled",
    "passing_grade_percentage": null,
    "learner_maximum": "disabled",
    "learner_maximum_count": null,
    "learner_waitlist": null,
    "learner_waitlist_count": null,
    "learner_leave_course": "disabled",
    "messages": "disabled",
    "instructor_count": 0,
    "learner_count": 0,
    "status": "active"
  }
}

コースプロパティ

プロパティ 説明
passing_grade 属性: "enabled"又は "disabled"
passing_grade_percentage passing_gradeenabledの場合、このプロパティはパーセンテージの文字列となります。それ以外の場合は nullとなります。
learner_maximum 属性: "enabled"又は "disabled"
learner_maximum_count もし learner_maximum"enabled"の場合、このプロパティは数字となります。それ以外の場合はnullとなります。
learner_waitlist もし learner_maximum"enabled"の場合、このプロパティで利用可能な属性は "enabled" 又は "disabled"となります。それ以外の場合はnullとなります。
learner_waitlist_count もしlearner_waitlist"enabled"の場合、このプロパティは数字となります。それ以外の場合はnullとなります。
learner_leave_course 属性: "enabled"又は "disabled"
messages 属性: "enabled"又は "disabled"
status 属性: "active"又は "archived"

エラー

コード 説明
course_not_found 指定されたIDでコースが見つかりません。

course.approvers.list

このメソッドは組織内のコース承認関係をページ分割されたリストで返します。

URL

https://customdomain.com/api/course.approvers.list

Arguments

Argument 必須 説明
login_id 任意 検索対象のユーザーのログインID(全体または一部)を指定します。指定したログインID(部分一致を含む)を持つユーザーが承認者または申請者として含まれる行を全て返します。
next 任意 前回のリクエストで受け取ったカーソル。

リクエスト

{}

レスポンス

{
  "status": "success",
  "data": {
    "relationships": [
      {
        "approver": {
          "user_id": "fgUxj8SO6AaB",
          "first_name": "John",
          "last_name": "Smith",
          "login_id": "approver@example.com",
        },
        "requester": {
          "user_id": "k2eqgkjd24",
          "first_name": "Jack",
          "last_name": "Wilson",
          "login_id": "requester@example.com",
        },
      },
      (...rest of data)
    ],
    "next": "YLk0alrDdP",
  }
}

検索対象のログインIDを含めたリクエスト

{
  "login_id": "example@example.com"
}

検索対象のログインIDを含んだレスポンス

{
  "status": "success",
  "data": {
    "relationships": [
      {
        "approver": {
          "user_id": "fgUxj8SO6AaB",
          "first_name": "John",
          "last_name": "Smith",
          "login_id": "example@example.com",
        },
        "requester": {
          "user_id": "k2eqgkjd24",
          "first_name": "Jack",
          "last_name": "Wilson",
          "login_id": "requester@example.com",
        },
      },
      {
        "approver": {
          "user_id": "32O6b96l0R",
          "first_name": "Marry",
          "last_name": "Nguyen",
          "login_id": "approver1@example.com",
        },
        "requester": {
          "user_id": "fgUxj8SO6AaB",
          "first_name": "John",
          "last_name": "Smith",
          "login_id": "example@example.com",
        },
      },
      (...rest of data)
    ],
    "next": "YLk0alrDdP",
  }
}

次のページのカーソルを含めたリクエスト

{
  "next": "RGVRt1m9DRWp"
}

次のページのカーソルが存在しない場合のレスポンス

{
  "status": "success",
  "data": {
    "relationships": [
      {
        "approver": {
          "user_id": "fgUxj8SO6AaB",
          "first_name": "John",
          "last_name": "Smith",
          "login_id": "approver@example.com",
        },
        "requester": {
          "user_id": "k2eqgkjd24",
          "first_name": "Jack",
          "last_name": "Wilson",
          "login_id": "requester@example.com",
        },
      },
      (...rest of data)
    ],
    "next": null,
  }
}

エラー

コード 説明
feature_not_enabled この機能は現在有効になっていません。

course.approvers.add

このメソッドはコース参加の承認関係を新たに追加します。

URL

https://customdomain.com/api/course.approvers.add

Arguments

Argument 必須 説明
approver_id 必須
requester_id 必須

リクエスト

{
  "approver_id": "cwo9aFjilDyg",
  "requester_id": "wLQPaRVUME7f",
}

レスポンス

{
  "status": "success",
  "data": null
}

エラー

コード 説明
approver_not_found 指定したIDの承認者が見つかりません。
requester_not_found 指定したIDの申請者が見つかりません。
relationship_exists 既にコース参加の承認関係が設定されています。
feature_not_enabled この機能は現在有効になっていません。

course.approvers.remove

このメソッドはコース参加の承認関係を除外します。

URL

https://customdomain.com/api/course.approvers.remove

Arguments

Argument 必須 説明
approver_id 必須
requester_id 必須

リクエスト

{
  "approver_id": "cwo9aFjilDyg",
  "requester_id": "wLQPaRVUME7f",
}

レスポンス

{
  "status": "success",
  "data": null
}

エラー

コード 説明
approver_not_found 指定したIDの承認者が見つかりません。
requester_not_found 指定したIDの申請者が見つかりません。
relationship_not_found 指定したコース参加の承認関係が見つかりません。
feature_not_enabled この機能は現在有効になっていません。

report.export

このメソッドは指定したレポートタイプに応じたレポートのデータをエクスポートします。

URL

https://customdomain.com/api/report.export

Arguments

Argument 必須 説明
report_type 任意 エクスポートするレポートのタイプを指定します。有効な属性は以下をご参照ください。report_idをリクエストに含めない場合は、必ず含めてください。また、report_idと併用してリクエストに含めることはできません。
report_id 任意 エクスポートするレポートのIDを指定します。report_typeをリクエストに含めない場合は、必ず含めてください。また、report_typeと併用してリクエストに含めることはできません。
language 必須 エクスポートされるレポートのデータが表示される言語の文字コードとなります。有効な属性は以下をご参照ください。
time_zone 必須 レポートのデータが参照するタイムゾーンとなります。有効なタイムゾーンはこちらのリストの「TZ database name」の列をご参照ください。(例:Asia/Tokyo

有効なreport_type属性

レポートのタイプ インターフェース上での名称
activities 課題
activity_solutions 設問正答
courses コース
learners 受講者
people メンバー
submission_answers 設問回答
submission_rates 提出率
submissions 提出物
video_analytics 動画視聴履歴
udemy_user_activity * Udemyユーザーアクティビティ
udemy_user_course_activity * Udemyユーザーコースアクティビティ
udemy_user_progress * Udemyユーザー進行状況

* 一部組織でのみ有効

有効なlanguage属性

コード 言語
ja 日本語
en 英語
es スペイン語
zh_CN 中国語簡体字
zh_TW 中国語繁体字
fr フランス語
vi ベトナム語
de ドイツ語
id インドネシア語
it イタリア語
ko 韓国語
pt ポルトガル語
ru ロシア語
th タイ語

リクエスト

{
  "report_type": "learners",
  "language": "ja",
  "time_zone": "Asia/Tokyo"
}

レスポンス

{
	"status": "success",
	"data": {
		"status": "pending",
		"report_type": "learners",
		"language": "ja",
		"time_zone": "Asia/Tokyo"
	}
}

レスポンスが成功した場合、report.export.statusのメソッドから、レポートのエクスポートステータスをトラッキングすることができます。また、レポートのダウンロードURLはreport.export.statusのメソッドから確認することができます。

ユニークなリクエストの制限

各種類のレポートは一度に一つだけエクスポートできます。進行中のエクスポートに対してリクエストを送信すると、現在のエクスポートの状況が返されます。異なる属性(例:言語やタイムゾーン)でレポートをエクスポートしたい場合は、進行中のエクスポートが完了してからリクエストを送信してください。

エラー

コード 説明
invalid_report_type 指定されたレポートタイプは無効です。
invalid_language 指定された言語は無効です。
invalid_time_zone 指定されたタイムゾーンは無効です。

report.export.status

このメソッドはreport.exportで送信したレポートのエクスポートステータスを確認します。

URL

https://customdomain.com/api/report.export.status

Arguments

Argument 必須 説明
report_type 任意 エクスポートするレポートのタイプを指定します。有効な属性は以下をご参照ください。report_idをリクエストに含めない場合は、必ず含めてください。また、report_idと併用してリクエストに含めることはできません。
report_id 任意 エクスポートするレポートのIDを指定します。report_typeをリクエストに含めない場合は、必ず含めてください。また、report_typeと併用してリクエストに含めることはできません。

有効なreport_type属性

レポートのタイプ インターフェース上での名称
activities 課題
activity_solutions 設問正答
courses コース
learners 受講者
people メンバー
submission_answers 設問回答
submission_rates 提出率
submissions 提出物
video_analytics 動画視聴履歴
udemy_user_activity * Udemyユーザーアクティビティ
udemy_user_course_activity * Udemyユーザーコースアクティビティ
udemy_user_progress * Udemyユーザー進行状況

* 一部組織でのみ有効

リクエスト

{
  "report_type": "learners"
}

レスポンス

レスポンスが成功した場合、レポートのエクスポートステータスを確認することができます。以下はステータスの定義となります。

  • "pending": レポートのエクスポートが待機中であることを示します。
  • "started": レポートのエクスポートが開始されたことを示します。
  • "finished": レポートのエクスポートが完了したことを示します。この場合、1時間有効なレポートのダウンロードURLが表示されます。
{
	"status": "success",
	"data": {
		"status": "finished",
		"report_type": "learners",
		"language": "ja",
		"time_zone": "Asia/Tokyo",
		"started_at": "2024-02-13T07:55:31.960Z",
		"finished_at": "2024-02-13T07:55:32.286Z",
		"data_updated_at": "2024-02-07T04:59:38.513Z",
		"row_count": 2345,
		"url": "https://storage.coursebase.co/report-exports/ABCDEFG/Learners/csv/Learners.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AAA%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20240213T075532Z&X-Amz-Expires=900&X-Amz-Signature=AAAA&X-Amz-SignedHeaders=host&x-id=GetObject"
	}
}

エクスポートが完了したレポートのダウンロードURLは1時間有効です。有効期限が切れたダウンロードURLにアクセスした場合、not_foundエラーとなります。この場合、report.exportメソッドから、再度レポートのエクスポートをリクエストする必要があります。

ステータスプロパティ

プロパティ 説明
status レポートステータス: "pending""started"、又は "finished"
report_type エクスポートされるレポートのレポートタイプ
time_zone エクスポートされるレポートのタイムゾーン
started_at (レポートステータスが"started"又は "finished" の場合のみ) レポートのエクスポートが開始した日時
finished_at (レポートステータスが"finished" の場合のみ) レポートのエクスポートが完了した日時
data_updated_at (レポートステータスが"finished" の場合のみ) レポート内のデータが最後に更新された日時
row_count (レポートステータスが"finished" の場合のみ) 完了したレポートに含まれる行数
url (レポートステータスが"finished" の場合のみ) 完了したレポートのダウンロードURL

エラー

コード 説明
invalid_report_type 指定されたレポートタイプは無効です。
not_found レポートエクスポートが見つかりません。エクスポートが開始されたか確認してください。