UsersAPI
Defined in: v1/users.ts:13
Handles all user-related API operations. Intended to be instantiated by a parent API client that provides the base fetch logic.
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new UsersAPI(
baseFetch):UsersAPI
Defined in: v1/users.ts:21
Creates a new UsersAPI instance.
Parameters
Section titled “Parameters”baseFetch
Section titled “baseFetch”<T>(endpoint, schema) => Promise<T>
A generic fetch function provided by the parent client. Handles request execution and response validation against a Zod schema.
Returns
Section titled “Returns”UsersAPI
Example
Section titled “Example”const users = new UsersAPI((endpoint, schema) => myClient.fetch(endpoint, schema));Methods
Section titled “Methods”getByEmail()
Section titled “getByEmail()”getByEmail(
Promise<{meta?: {from?:number;number_of_pages?:number;page?:number;per_page?:number;to?:number;total?:number; };users: {string;id:number;name?:string|null; }[]; }>
Defined in: v1/users.ts:76
Searches for users matching a given email address. The email is URL-encoded before being sent to the API.
Parameters
Section titled “Parameters”string
The email address to search for.
Returns
Section titled “Returns”Promise<{ meta?: { from?: number; number_of_pages?: number; page?: number; per_page?: number; to?: number; total?: number; }; users: { email: string; id: number; name?: string | null; }[]; }>
A promise resolving to a validated UserSearchResponse object.
Example
Section titled “Example”const results = await usersAPI.getByEmail('jane@example.com');getById()
Section titled “getById()”getById(
id):Promise<{courses?: {completed_at?:string|null;course_id?:number;course_name?:string;enrolled_at?:string|null;is_active_enrollment?:boolean;percent_complete?:number; }[];string;id:number;last_sign_in_at?:string|null;last_sign_in_ip?:string|null;name?:string|null;role?:string;sign_in_count?:number;src?:string|null;tags?: {name:string; }[]; }>
Defined in: v1/users.ts:63
Retrieves a single user by their unique numeric ID.
Parameters
Section titled “Parameters”number
The unique identifier of the user.
Returns
Section titled “Returns”Promise<{ courses?: { completed_at?: string | null; course_id?: number; course_name?: string; enrolled_at?: string | null; is_active_enrollment?: boolean; percent_complete?: number; }[]; email: string; id: number; last_sign_in_at?: string | null; last_sign_in_ip?: string | null; name?: string | null; role?: string; sign_in_count?: number; src?: string | null; tags?: { name: string; }[]; }>
A promise resolving to a validated UserDetail object.
Throws
Section titled “Throws”If no user exists with the given ID or the request fails.
Example
Section titled “Example”const user = await usersAPI.getById(123456);getList()
Section titled “getList()”getList(
page?,per?,filters?):Promise<{meta?: {from?:number;number_of_pages?:number;page?:number;per_page?:number;to?:number;total?:number; };users: {string;id:number;name?:string|null; }[]; }>
Defined in: v1/users.ts:41
Retrieves a paginated list of users.
Parameters
Section titled “Parameters”number = 1
The page number to retrieve. Defaults to 1.
number = 20
The number of results per page. Defaults to 20, maximum: 100.
filters?
Section titled “filters?”Optional filters to narrow the results.
email?
Section titled “email?”string
If provided, filters results to users matching this email address.
searchAfter?
Section titled “searchAfter?”number
Used to paginate beyond the 10,000 record limit. Pass the ID of the last user returned in the previous page to fetch the next set of results.
Returns
Section titled “Returns”Promise<{ meta?: { from?: number; number_of_pages?: number; page?: number; per_page?: number; to?: number; total?: number; }; users: { email: string; id: number; name?: string | null; }[]; }>
A promise resolving to a validated UserSearchResponse object.
Example
Section titled “Example”// Standard paginationconst { users } = await usersAPI.getList(1, 20);
// Paginating beyond 10,000 recordsconst page1 = await usersAPI.getList(1, 100);const lastId = page1.users[page1.users.length - 1]?.id;const page2 = await usersAPI.getList(1, 100, { searchAfter: lastId });