User management
Console client configuration · Response and shared models
User operations require the target application ID. list returns a page and search returns a user selection list. requireOriginId=true limits search to users with a business identity. setStatus accepts active or disabled.
issueToken obtains classroom user credentials through the console endpoint. The app-credential client’s client.auth.issueToken signs locally with the application secret. Classroom credentials and tenant management access tokens have different purposes.
Application backends use application business APIs with app credentials. This page describes the separate tenant management calls.
users.list
List users.
GET /v1/users
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.users.list(appId, input) |
| Python | c.users.list(app_id, **input) |
| Java | c.users.list(appId, input) |
| Go | c.Users.List(ctx, appID, input, &result) |
| PHP | $c->users->list($appId, $input) |
Input: ListEduUsersQuery. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
status | No | EduUserStatus | undefined | Status filter or target status |
q | No | string | undefined | Search keyword |
page | No | number | undefined | Page number starting at 1 |
pageSize | No | number | undefined | Maximum items per page |
Returns: ListEduUsersResult. See shared models for nested fields.
users.search
Search users.
GET /v1/users/search
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.users.search(appId, input) |
| Python | c.users.search(app_id, **input) |
| Java | c.users.search(appId, input) |
| Go | c.Users.Search(ctx, appID, input, &result) |
| PHP | $c->users->search($appId, $input) |
Input: SearchEduUsersQuery. Fields are sent as URL query parameters.
| Field | Required | Type | Description |
|---|---|---|---|
q | No | string | undefined | Search keyword |
status | No | EduUserStatus | undefined | Status filter or target status |
limit | No | number | undefined | Search result limit, maximum 50 |
requireOriginId | No | boolean | undefined | Only users with a business identity |
Returns: SearchEduUsersResult. See shared models for nested fields.
users.create
Create user.
POST /v1/users
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.users.create(appId, input) |
| Python | c.users.create(app_id, **input) |
| Java | c.users.create(appId, input) |
| Go | c.Users.Create(ctx, appID, input, &result) |
| PHP | $c->users->create($appId, $input) |
Input: CreateEduUserPayload. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
originId | No | string | undefined | Business user identifier |
nickname | Yes | string | Display name |
avatar | Yes | string | Avatar URL |
Returns: EduUserRecord. See shared models for nested fields.
users.setStatus
Set user status.
PATCH /v1/users/status
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.users.setStatus(appId, input) |
| Python | c.users.set_status(app_id, **input) |
| Java | c.users.setStatus(appId, input) |
| Go | c.Users.SetStatus(ctx, appID, input, &result) |
| PHP | $c->users->setStatus($appId, $input) |
Input: UserStatusInput. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
eduUserId | Yes | string | Classroom user ID |
status | Yes | EduUserStatus | Status filter or target status |
Returns: EduUserRecord. See shared models for nested fields.
users.issueToken
Issue user token.
POST /v1/users/token
Authentication: tenant Bearer token and x-app-id.
| Language | Call |
|---|---|
| Node.js | c.users.issueToken(appId, input) |
| Python | c.users.issue_token(app_id, **input) |
| Java | c.users.issueToken(appId, input) |
| Go | c.Users.IssueToken(ctx, appID, input, &result) |
| PHP | $c->users->issueToken($appId, $input) |
Input: UserTokenInput. Fields are sent in the JSON body.
| Field | Required | Type | Description |
|---|---|---|---|
eduUserId | Yes | string | Classroom user ID |
expiresIn | No | number | undefined | User token lifetime in seconds, 60–604800 |
Returns: EduUserTokenResult. See shared models for nested fields.