Skip to content

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.

new UsersAPI(baseFetch): UsersAPI

Defined in: v1/users.ts:21

Creates a new UsersAPI instance.

<T>(endpoint, schema) => Promise<T>

A generic fetch function provided by the parent client. Handles request execution and response validation against a Zod schema.

UsersAPI

const users = new UsersAPI((endpoint, schema) => myClient.fetch(endpoint, schema));

getByEmail(email): 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; }[]; }>

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.

string

The email address to search for.

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.

const results = await usersAPI.getByEmail('jane@example.com');

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; }[]; 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; }[]; }>

Defined in: v1/users.ts:63

Retrieves a single user by their unique numeric ID.

number

The unique identifier of the user.

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.

If no user exists with the given ID or the request fails.

const user = await usersAPI.getById(123456);

getList(page?, per?, filters?): 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; }[]; }>

Defined in: v1/users.ts:41

Retrieves a paginated list of users.

number = 1

The page number to retrieve. Defaults to 1.

number = 20

The number of results per page. Defaults to 20, maximum: 100.

Optional filters to narrow the results.

string

If provided, filters results to users matching this email address.

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.

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.

// Standard pagination
const { users } = await usersAPI.getList(1, 20);
// Paginating beyond 10,000 records
const page1 = await usersAPI.getList(1, 100);
const lastId = page1.users[page1.users.length - 1]?.id;
const page2 = await usersAPI.getList(1, 100, { searchAfter: lastId });