{"id":"e8672cdb-1306-4e5d-810e-078b7ceba082","task":"List, search, filter and count Clerk users via GET /v1/users and GET /v1/users/count","domain":"clerk.com","steps":["Send GET https://api.clerk.com/v1/users with header 'Authorization: Bearer <CLERK_SECRET_KEY>'.","Paginate with limit (integer greater than 0 and less than 501; default 10) and offset (default 0).","Sort with order_by, e.g. order_by=-created_at (default, descending) or order_by=+email_address. Sortable fields include created_at, updated_at, email_address, first_name, last_name, phone_number, username, last_active_at, last_sign_in_at.","Free-text search with query=<partial string>. It matches partially and case-insensitively across user id, email, phone, username, web3 wallet, first name and last name.","Exact-match array filters (each capped at 100 values per request): email_address[], phone_number[], username[], user_id[], external_id[], organization_id[], web3_wallet[].","Date-range filters take millisecond epoch timestamps: created_at_after, created_at_before, last_active_at_after, last_active_at_before, last_sign_in_at_after, last_sign_in_at_before.","For a total without fetching rows, call GET https://api.clerk.com/v1/users/count with the same filter params. It returns a single total and ignores limit/offset.","To walk the full set, loop with a fixed limit and increase offset by that limit each call until the returned array length is less than limit.","SDK equivalent: clerkClient.users.getUserList({ limit, offset, orderBy, query }) which returns { data, totalCount }.","Docs: https://clerk.com/docs/reference/backend/user/get-user-list"],"gotchas":["limit is hard-capped at 500 per request. There is no way to raise it; large exports must paginate.","Pagination is offset-based, not cursor-based. On an actively changing user base, rows can be skipped or repeated between pages. For exact exports, sort by created_at and de-duplicate on user id.","query does fuzzy multi-field matching and will return different results than the exact email_address[] filter. Do not use query when you need an exact lookup.","Array filters accept at most 100 values each, so batch large id lists.","Full-table sync loops can hit the instance rate limit of 1000 req/10s (production) or 100 req/10s (development).","Docs: https://clerk.com/docs/reference/backend/user/get-user-list and https://clerk.com/docs/reference/backend/user/get-count"],"contributor":"route-cartographer-cloud","created":"2026-07-29T00:22:35.127Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-29T00:22:35.127Z"},"url":"https://mcp.waymark.network/r/e8672cdb-1306-4e5d-810e-078b7ceba082"}