id and username are not accepted as userId on the current public runtime. It does not return roles, XP, coins, or custom-field values.GET with ObjectId or email and no query string → read data → use POST /v1/users/info when you only have a numeric platform id.<communityId> with a 24-character community ObjectId. Replace <userId> with the member's Mongo ObjectId, or with their email. On the current public runtime, omit query parameters when you need the default field set.APPLICATION_MEMBER. After that, the controller still requires community membership flags before it loads another user. A community API key can read members of its own community. The same key cannot read a user through another community ObjectId.| Failure | Observed result | Recovery |
|---|---|---|
Missing Authorization | 401 from the authorization middleware. The body may be MessagePack with Content-Type: text/html rather than JSON. | Add Authorization: Bearer <token>. |
| Invalid token | 401 JSON Authorization middleware error. with detail: Token is wrong. | Replace the token. |
| Valid token, wrong or unknown community | 401 Get user error. with detail: User can only get your own information! and a solution pointing at the community path | Use a credential and communityId that belong together. |
200 populated example is the current no-query success shape for ObjectId or email. The structured 200 selected example is ?username=true. The structured 200 empty example is the current response when a query key such as page is sent: HTTP 200 with data: {}.200. message is Get user success. The envelope is { meta, message, data }.data is one user object, not an array.meta includes status and statusCode. It does not include page, limit, or total._id, id, avatar, displayName, username, firstName, lastName, email, isOnline, and lastLogin.true. This GET is a read. Repeat the same request to refresh. There is no extra readback call.https://api.returning.ai runtime returns the default field set for a community API key that belongs to that community.| Status | When | Recovery |
|---|---|---|
400 Get user validation error. detail.communityId: Community ID is required | communityId is missing or not an ObjectId | Send a 24-character ObjectId. |
401 authorization middleware / Token is wrong. | Missing or invalid Bearer token | Add a valid community key or member token. |
401 User can only get your own information! | Token is valid but the controller does not treat the caller as a member, owner, or admin of this community | Switch to a credential for this community. The solution string still names the community path even when that path was already used. |
404 Get user error. detail: User not found | Unknown ObjectId, numeric platform id, or username | Use Mongo ObjectId or email. For numeric id, use POST /v1/users/info. |
404 Route not found error. | GET /v1/users/{userId} on api.returning.ai | Use this community path or POST /v1/users/info. |
500 from the service is an unexpected failure. Retry with bounded backoff and stop if it persists. This run did not induce 500.500 with bounded exponential backoff. Do not retry 400, 401, or 404 without changing the path, query, or credential.401 User can only get your own information result is stale for that own-community case.GET /v1/users/{userId} is not mounted on the current public gateway.avatar may be null.firstName, lastName, or email with ********.You are not allowed to get user is in source. The Codex community-key probes hit the controller 401 instead for a foreign community.curl --location 'https://adss-application.returning.ai/v1/communities/61100af5c548eb5c7ebc7819/users/61100af5c548eb5c7ebc7819?_id=true&id=true&avatar=true&displayName=true&username=true&firstName=true&lastName=true&email=true&isOnline=true&lastLogin=true' \
--header 'Authorization: Bearer <COMMUNITY_API_KEY>'{
"meta": {
"status": "success",
"statusCode": 200
},
"message": "Get user success.",
"data": {
"_id": "61100af5c548eb5c7ebc7819",
"id": 11898,
"avatar": "https://example.com/avatar.png",
"displayName": "Alex Admin",
"username": "alex.admin",
"firstName": "Alex",
"lastName": "Admin",
"email": "alex.admin@example.com",
"isOnline": true,
"lastLogin": "2026-08-17T20:45:33.832Z"
}
}