Diverse 管理システム API (1.0.0)

Download OpenAPI specification:

概要

はじめに

  • Diverseで管理しているユーザ情報およびその関連情報、Diverseのマスタ情報を取得できます。
  • 生徒自身が所属する学校情報、生徒自身の生年月日を更新できます。

Auth0について

本APIへのリクエスト方法について

本APIの利用には、Auth0 による認証が必要です。 新たにプロダクトの開発、Auth0の組み込みを行う場合、SATTに事前に申請をし、承認を得てから、本APIの利用をお願いします。 APIリクエストの際は、Authorization ヘッダに Bearer スキームを用いてアクセストークンを指定してください。

Authorization: Bearer <YOUR_ACCESS_TOKEN>

アクセストークンの払い出しについて

アクセストークンの払い出しについて、各アプリケーションでの認証機構の実装、及び、アクセストークンの取得を行ってください。
なお、audienceパラメータについては、固有の識別子を設定をする必要があります。後述のアクセストークンに対する検証で使用します。

  • audience
    • diverse

jwt.ioなどで、払い出したアクセストークンにaudが適切に設定されているかを確認してください。設定が正しい場合、デコードされたペイロードにdiverseの識別子が含まれます。

アクセストークンのペイロードについて

払い出されたアクセストークンのペイロード部に、Diverseのユーザに関する情報が含まれています。
以下、デコードされたペイロードの例と主要な項目についての説明です。

{
  "https://admin2.s-diverse.com/": {
    "demo": false,
    "privileges": [
      "cram_school_owner"
    ]
  },
  "iss": "https://stg-cram.us.auth0.com/",
  "sub": "auth0|xxxxxxxxxxxxxxxxxxxxx",
  "aud": [
    "diverse",
    "https://stg-cram.us.auth0.com/userinfo"
  ],
  "iat": 1763446507,
  "exp": 1764051307,
  "scope": "openid offline_access",
  "azp": "1eGhAk3apTP1GvEPVlgK8ZDC6MbW4TDp"
}
  • https://admin2.s-diverse.com/: 固定
    • demo: デモ設定
      • 生徒の場合
        • true or false
      • 生徒以外の場合
        • falseのみ
    • privileges: 権限
      • 複数形表記ですが、Diverseでは単一権限のみになります。
      • 以下のいずれかが設定されます。
        • student: 生徒
        • homeroom_teacher: コーチ
        • cram_school_clerk: 事務担当者
        • cram_school_owner: 組織管理者
        • administrator: システム運用者
      • 各アプリケーションで当項目の権限を確認し、認可制御を実現する必要があります。
  • sub
    • Auth0の一意なユーザ識別子です。
  • aud
    • audience
      • 前項の設定が正しければ、値が含まれます。
      • diverse
JWT検証について

リクエストに指定されたアクセストークンに対して、JWT検証を行います。 JWT検証については、公式の検証方法に基づき、以下の検証を行います。

  1. アクセストークンがJWT形式であること
  2. 指定したaudienceが含まれていること
  3. アクセストークン内にあるuidに関連するに非ロックかつ有効期間内のユーザで、許可されているリクエスト(操作)を行うこと(認可検証)

JWT検証に失敗した場合、HTTPステータスコード 401 Unauthorized または 403 Forbiddenを返却します。

各APIのアクセス権限

  • 判例
    • -: 実行不可
    • 〇: 自身 / 自組織のみ参照可能
    • ◎: 自組織及び子組織のみ参照可能
    • ●: 参照可能 / 全組織参照可能
API名 生徒 子組織コーチ 親組織コーチ 子組織管理者 親組織管理者 子組織事務担当者 親組織事務担当者 システム運用者
ログイン者情報取得API
組織情報取得API
所属情報取得API
グループ情報取得API
生徒一覧取得API -
生徒自身の学校・生年月日更新API - - - - - - -
生徒の授業パッケージ取得API
生徒一覧取得API(指定講座カテゴリのみ) -
生徒一覧取得API(uid検索) -
学校情報取得API
講座情報取得API
お知らせ一覧取得API

メンテナンスモード

管理システムがメンテナンスモード中の場合、データ更新系のAPIは利用できなくなり、HTTPステータスコード 503 Service Unavailable を返却します。

APIについての問い合わせ

APIに関する質問は下記担当(敬称略)をメンションの上、Slack上の○○チャンネルでお願いします。

  • To
    • SATT管理システム開発責任者:SATT白鳥
    • SATT管理システム開発チーム担当:コミクリ山本
  • CC
    • 駿台EdTechシステムチーム:岩崎
    • 駿台EdTechシステムチーム:森浦

管理システムAPI

ログイン者情報取得API

Auth0 アクセストークンを基にログイン者のユーザー情報を取得する。
権限によって取得できる情報が異なるため、各権限ごとのレスポンスサンプルを参照のこと。

  • 利用プロダクト向け
    • ログイン者情報レスポンスの有効期間を参照し、有効期間外である場合、ログインをさせない等の制御を行うこと。
    • ログインできる権限についてはアクセストークンのペイロード部の説明を参照。
Authorizations:
Auth0Token

Responses

Response samples

Content type
application/json
Example
{
  • "uid": "auth0|685ca7f51c689c6cdef5acca",
  • "first_name": "連携",
  • "last_name": "外部",
  • "first_name_kana": "レンケイ",
  • "last_name_kana": "ガイブ",
  • "code": "api_student1",
  • "external_id": "api_student1",
  • "start_at": "2025-06-01T00:00:00+09:00",
  • "end_at": "2999-12-31T23:59:59+09:00",
  • "date_of_birth": "2010-06-26",
  • "privileges": [
    ],
  • "school_grade": {
    },
  • "school": {
    },
  • "sections": [
    ],
  • "groups": [
    ],
  • "organization": {
    }
}

組織情報取得API

組織の一覧を取得する

Authorizations:
Auth0Token
query Parameters
code
string

組織コード
※組織コードを指定しない場合は組織が全件返却される

id
integer

組織ID
※組織IDを指定しない場合は組織が全件返却される

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "code"
Enum: "code" "name" "abbreviation"

並び順

  • code: 組織コード
  • name: 組織名
  • abbreviation: 略称
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順
like_keyword
string

以下の項目でLIKE検索可能

  • code: 組織コード
  • name: 組織名
  • abbreviation: 略称
  • comiru_school_id: Comiru教室番号

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "organizations": [
    ]
}

所属情報取得API

所属の一覧を取得する

Authorizations:
Auth0Token
query Parameters
organization_code
required
string

組織コード
※親子組織の場合、親組織の組織コードを指定しても子組織の所属は返却されない

organization_id
integer

組織ID
※親子組織の場合、親組織のIDを指定しても子組織の所属は返却されない

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "seq"
Enum: "code" "name" "abbreviation" "seq"

並び順

  • code: 所属コード
  • name: 所属名
  • abbreviation: 略称
  • seq: 順序
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順
like_keyword
string

以下の項目でLIKE検索可能

  • code: 所属コード
  • name: 所属名
  • abbreviation: 略称

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "sections": [
    ]
}

グループ情報取得API

グループの一覧を取得する

Authorizations:
Auth0Token
query Parameters
organization_code
required
string

組織コード
※親子組織の場合、親組織の組織コードを指定しても子組織の所属は返却されない

organization_id
integer

組織ID
※親子組織の場合、親組織のIDを指定しても子組織の所属は返却されない

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "seq"
Enum: "code" "name" "abbreviation" "seq"

並び順

  • code: グループコード
  • name: グループ名
  • abbreviation: 略称
  • seq: 順序
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順
like_keyword
string

以下の項目でLIKE検索可能

  • code: グループコード
  • name: グループ名
  • abbreviation: 略称

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "groups": [
    ]
}

生徒一覧取得API

Diverseサービスを利用可能な生徒の一覧を取得する
取得可能な生徒情報は下記の通り

  • 有効期間内・有効期間外問わず、すべての生徒が取得できること
  • 生徒がアカウントロックになっていても取得できること
Authorizations:
Auth0Token
query Parameters
organization_code
required
string

組織コード
※親子組織の場合、親組織の組織コードを指定しても子組織の所属は返却されない

organization_id
integer

組織ID
※親子組織の場合、親組織のIDを指定しても子組織の所属は返却されない

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "code"
Enum: "code" "last_name" "external_id"

並び順

  • code: 生徒番号
  • last_name: 生徒名(姓)
  • external_id: 外部連携ID
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順
like_keyword
string

以下の項目でLIKE検索可能

  • code: 生徒番号
  • last_name: 生徒名(姓)
  • external_id: 外部連携ID
section_code
string

所属コード

group_code
string

グループコード

uids[]
Array of strings
last_name_kana_prefix_group
string
Enum: "A" "K" "S" "T" "N" "H" "M" "Y" "R" "W" "OTHER"

「カナ姓」の1文字目は以下のルールに従い指定してください

  • [アイウエオ] のいずれかの場合 "A"
  • [カキクケコガギグゲゴ] のいずれかの場合 "K"
  • [サシスセソザジズゼゾ] のいずれかの場合 "S"
  • [タチツテトダヂヅデド] のいずれかの場合 "T"
  • [ナニヌネノ] のいずれかの場合 "N"
  • [ハヒフヘホバビブベボパピプペポ] のいずれかの場合 "H"
  • [マミムメモ] のいずれかの場合 "M"
  • [ヤユヨ] のいずれかの場合 "Y"
  • [ラリルレロ] のいずれかの場合 "R"
  • [ワヲン] のいずれかの場合 "W"
  • 上記以外のとき "OTHER"
school_grade_value
integer

0〜6の値を指定する

  • 0:既卒
  • 1:中1
  • 2:中2
  • 3:中3
  • 4:高1
  • 5:高2
  • 6:高3
all_year
boolean
Default: false

全年度を対象とする

include_out_of_period
boolean
Default: false

有効期間外を含める

exclude_demo
boolean
Default: false

デモ設定を含まない

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "students": [
    ]
}

生徒自身の学校・生年月日更新API

アクセストークンで認証された生徒が、自身の学校コードと生年月日を更新する。
正常に更新された場合は、HTTPステータスコード 200 を返却する。
管理システムがメンテナンスモード中の場合は使用不可となり、HTTPステータスコード 503 を返却する。
また、管理システムで設定したメッセージが返却されるため、必要に応じて生徒自身の学校・生年月日更新APIを利用するシステム側でメッセージを設定することができる。

Authorizations:
Auth0Token
Request Body schema: application/json
required
school_code
required
string

学校コード

date_of_birth
required
string <date>

生年月日(YYYY-MM-DD形式)

Responses

Request samples

Content type
application/json
{
  • "school_code": "string",
  • "date_of_birth": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "message": "200"
}

生徒一覧取得API(指定講座カテゴリのみ)

Diverseサービスを利用可能な生徒の一覧を取得する
取得可能な生徒情報は下記の通り

  • 有効期間内外の当年度の生徒が取得できること
  • 生徒がアカウントロックになっていても取得できること
Authorizations:
Auth0Token
query Parameters
organization_code
required
string

組織コード
※親子組織の場合、親組織の組織コードを指定しても子組織の所属は返却されない

course_category
required
string
Enum: "packaged" "external_app" "recommended" "atama_plus" "others"

講座カテゴリ

  • packaged: パッケージ管理
  • external_app: 外部アプリ
  • recommended: 推薦対策
  • atama_plus: atama+定期対策講座
  • others: その他
include_out_of_period
boolean
Default: false

有効期間外の生徒を含めるかどうか

  • true: 有効期間外の生徒を含める
  • false: 有効期間外の生徒を含めない
page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "code"
Enum: "code" "last_name" "external_id"

並び順

  • code: 生徒番号
  • last_name: 生徒名(姓)
  • external_id: 外部連携ID
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "students": [
    ]
}

生徒一覧取得API(uid検索)

Diverseサービスを利用可能な指定したuidの生徒情報の一覧を取得する
取得可能な生徒情報は下記の通り
※ POST だが、リソースの取得のみを行う

  • ログインユーザが参照権限のある組織の生徒情報を取得できること
  • 有効期間内・有効期間外問わず、すべての生徒が取得できること
  • 生徒がアカウントロックになっていても取得できること
Authorizations:
Auth0Token
Request Body schema: application/json
uids
required
Array of strings

生徒のuid

organization_id
integer

組織ID

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "code"
Enum: "code" "full_name" "external_id"

並び順

  • code: 生徒番号
  • full_name: 生徒名
  • external_id: 外部連携ID
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"

並び順

  • asc: 昇順
  • desc: 降順

Responses

Request samples

Content type
application/json
{
  • "uids": [
    ],
  • "organization_id": 0,
  • "page": 1,
  • "per": 50,
  • "order_by": "code",
  • "order_direction": "asc"
}

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "students": [
    ]
}

生徒の授業パッケージ取得API

指定した組織に所属する、生徒の受講している講座、及び、パッケージの一覧を取得するAPI。

  • 生徒の場合
    • 自身が受講している講座、及び、パッケージの一覧を取得する。
  • 生徒以外の場合
    • 指定した組織に所属する生徒の受講している講座、及び、パッケージの一覧を取得する。

利用上の注意点

  • 複数の生徒を取得する場合、uidsパラメータを利用して指定することが可能です。
  • 1件ずつ指定すると、APIコール数が増加するため、可能な限り複数の生徒をまとめて取得することを推奨します。
  • 利用するプロダクトに応じて、特定の講座を取得する場合、講座カテゴリを指定して生徒の受講状況を取得してください。
Authorizations:
Auth0Token
Request Body schema: application/json
organization_code
required
string

組織コード

organization_id
integer

組織ID

uids
Array of strings

生徒のuid

course_category
string
Enum: "packaged" "external_app" "recommended" "atama_plus" "others"

講座カテゴリ

  • packaged: パッケージ管理
  • external_app: 外部アプリ
  • recommended: 推薦対策
  • atama_plus: atama+定期対策講座
  • others: その他
page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Enum: "uid" "code"

並び順

  • uid: ユーザーID順
  • code: 生徒番号順
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"

並び順

  • asc: 昇順
  • desc: 降順
like_keyword
string or null

以下の項目でLIKE検索可能

  • student.code: 生徒番号
  • course.code: 講座コード

Responses

Request samples

Content type
application/json
Example
{
  • "organization_code": "api_spec"
}

Response samples

Content type
application/json
Example
{
  • "pagination": {
    },
  • "students": [
    ]
}

学校情報取得API

学校の一覧を取得する

Authorizations:
Auth0Token
query Parameters
name
string

学校名 ※部分一致検索

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "code"
Enum: "code" "name"

並び順

  • code: 学校コード
  • name: 学校名
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順
prefecture_code
string

都道府県コードを指定

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "schools": [
    ]
}

講座情報取得API

講座の一覧を取得する

Authorizations:
Auth0Token
query Parameters
page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

order_by
string
Default: "seq"
Enum: "code" "name" "abbreviation" "seq"

並び順

  • code: 講座コード
  • name: 講座名
  • abbreviation: 略称
  • seq: 順序
order_direction
string (order-direction)
Default: "asc"
Enum: "asc" "desc"
  • asc: 昇順
  • desc: 降順
like_keyword
string

以下の項目でLIKE検索可能

  • code: 講座コード
  • name: 講座名
  • abbreviation: 略称
categories
Array of strings
Items Enum: "packaged" "external_app" "recommended" "atama_plus" "others"

講座カテゴリでの絞り込み 複数指定可能

  • packaged: パッケージ管理
  • external_app: 外部アプリ
  • recommended: 推薦対策
  • atama_plus: atama+定期対策講座
  • others: その他
subjects
Array of strings
Items Enum: "english" "mathematics" "japanese" "kobun" "kanbun" "physics" "chemistry" "biology" "geology" "japanese_history" "world_history" "geography" "political_economy" "ethics" "modern_society" "ethics_and_political_economy" "thesis" "national_language" "others"

科目での絞り込み 複数指定可能

  • english: 英語
  • mathematics: 数学
  • japanese: 現代文
  • kobun: 古文
  • kanbun: 漢文
  • physics: 物理
  • chemistry: 化学
  • biology: 生物
  • geology: 地学
  • japanese_history: 日本史
  • world_history: 世界史
  • geography: 地理
  • political_economy: 政経(政治経済)
  • ethics: 倫理
  • modern_society: 現代社会
  • ethics_and_political_economy: 倫政
  • thesis: 論文
  • national_language: 国語
  • others: その他
levels
Array of strings
Items Enum: "entrance_exam_special" "entrance_exam_advanced" "entrance_exam_intermediate" "pre_entrance_exam" "other"

レベルでの絞り込み 複数指定可能

  • entrance_exam_special: 入試レベル特級
  • entrance_exam_advanced: 入試レベル上級
  • entrance_exam_intermediate: 入試レベル中級
  • pre_entrance_exam: プレ入試レベル
  • other: その他
exclude_demo
boolean
Default: false

デモ講座を除外する

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "courses": [
    ]
}

お知らせ一覧取得API

お知らせの一覧を取得する。 ログインしているユーザのアクセストークンを基に以下の条件に合致するお知らせのみ返却。公開開始日の新しい順(降順)でソート。

  • 公開設定中 かつ 公開期間中のお知らせ
  • ユーザの所属組織の契約状態に基づく、閲覧可能なお知らせ
  • ユーザの所属組織宛に配信されているお知らせ
Authorizations:
Auth0Token
query Parameters
system
required
string
Enum: "admin" "lms" "coaching"

システムの一意な名称

organization_code
required
string

組織コード

tags
Array of strings
Items Enum: "emergency" "importance" "maintenance" "system_update" "service_information" "entrace_exam_info" "material" "practice_exam" "others"

タグでの絞り込み 複数指定可能

page
integer (page) >= 1
Default: 1

ページ番号
※最大ページ数を超えるとエラー

per
integer (per) >= 1
Default: 50

1ページあたりの件数

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "informations": [
    ]
}

利用実績取得API(外部プロダクト向け)

利用実績取得API

本仕様は管理システムが外部プロダクトに対して利用実績情報を収集、取得するための仕様整理をしたものです。 本仕様は確定した仕様ではなく、管理システムが外部プロダクトに対して利用実績情報を取得するためのベースとなる暫定的な設計仕様です。 業務要件次第で本仕様以外の情報を要求、取得する可能性があります。
詳細な仕様については各プロダクト間での協議によって決定します。

Authorizations:
Auth0M2MToken
query Parameters
page
required
integer >= 1
Default: 1

ページネーションのページ番号

per
required
integer
Default: 100

1ページあたりの取得件数。デフォルトを100件にしていますが、性能要件等に応じて調整することが可能です。

created_at_from
required
string <date-time>
Example: created_at_from=2025-01-01T00:00:00+09:00

created_atの取得開始日時(timezone含む)

created_at_to
required
string <date-time>
Example: created_at_to=2025-01-01T23:59:59+09:00

created_atの取得終了日時(timezone含む)

order_by
required
string
Value: "id"
Example: order_by=id

ソート順の指定。idの昇順のみ対応。

Responses

Response samples

Content type
application/json
{
  • "progresses": [
    ],
  • "pagination": {
    }
}