GoodMemGoodMem
ReferenceAPIREST APIUsers

Get user by username

GET /v1/users/username/{username}: Returns a user selected by exact username after applying READ_USER authority.

Returns a user selected by exact username after applying READ_USER authority. includeDeleted permits an authorized caller to inspect a permanent tombstone; it does not grant additional authority. Missing and unauthorized matches both return 404 so this guessable identifier cannot reveal whether a user exists.

GET
/v1/users/username/{username}
x-api-key<token>

In: header

Path Parameters

usernamestring

Exact username

Query Parameters

includeDeleted?boolean

Permit an authorized read of a permanent tombstone

Defaultfalse

Header Parameters

GoodMem-Timeout-Ms?integer

Optional waiting budget in milliseconds, measured from REST servlet ingress and shared across all internal gRPC calls. Supply one decimal integer from 1 to 86400000. Omission adds no deadline. Existing shorter deadlines still apply. Expiry returns HTTP 504 before streaming starts; after streaming starts, no successful completion event is sent. Use SSE or opt into GoodMem-Stream-Terminal for an explicit terminal outcome. Retrieval work is cooperatively cancelled. An accepted mutation may still commit after timeout or disconnect; a failed response does not imply rollback.

Formatint64
Range1 <= value <= 86400000

Response Body

curl -X GET "https://your-goodmem-server.example.com/v1/users/username/avery?includeDeleted=false" \  -H "GoodMem-Timeout-Ms: 30000"
{
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "email": "[email protected]",
  "displayName": "John Doe",
  "username": "johndoe",
  "labels": {
    "team": "platform"
  },
  "enrollmentSummary": {
    "openEnrollmentExpiresAt": 1786752000000
  },
  "deletedAt": 1620200000000,
  "deletedById": "8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb",
  "createdAt": 1620000000000,
  "updatedAt": 1620100000000,
  "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
  "updatedById": "d8bc6076-4141-4a88-80b9-0eb31643066f"
}
Empty
Empty
Empty
Empty
Empty
Empty