External: Users

List users with pagination, sorting, and search.

get/api/v1/users

Request

  • Base URL: https://api.openwearables.io (the document declares no server; this is the origin it was published from)
  • URL: https://api.openwearables.io/api/v1/users
  • Auth: OAuth 2 (password, token URL /api/v1/auth/login)

Query parameters

pageinteger

Page number (1-based)

limitinteger

Number of results per page

sort_by'created_at' | 'email' | 'first_name' | 'last_name' | 'name' | 'last_synced_at' nullable

Field to sort by. 'name' orders by first name, then last name, with unnamed users last

sort_order'asc' | 'desc'

Sort order

searchstring nullable

Search across first_name, last_name, and email (partial match). A term that is a valid UUID also matches that user's id exactly

emailstring email nullable

Filter by exact email

external_user_idstring nullable

Filter by external user ID. Deprecated: no data-fetching endpoint (timeseries, workouts, sleep, summaries, health-scores, etc.) accepts external_user_id - they all require the Open Wearables UUID. This field was added early in the project but never wired into those endpoints, so it only works as a filter on GET /users. Store the UUID returned by POST /users in your own system instead.

providerProviderName[] nullable

Filter by connected provider; repeat the parameter to match any of several. Matches connections in any status unless connection_status is also given

connection_status'active' | 'revoked' | 'expired'

Status of a user connection to a provider.

Narrow the provider filter to connections in this status

has_active_connectionboolean nullable

True: users with at least one active connection. False: users with none, including those who never connected a provider

last_synced_beforestring date-time nullable

Users whose connections have all been idle since this timestamp, including those that never synced

includeUserInclude[]

Optional expansions to embed in each user; repeat the parameter for several

Headers

X-Open-Wearables-API-Keystring nullable

Response

Successful Response

totalinteger required

Total number of items matching the query

pageinteger required

Current page number (1-based)

limitinteger required

Number of items per page

pagesinteger required

Total number of pages.

has_nextboolean required

Whether there is a next page.

has_prevboolean required

Whether there is a previous page.

Changes

    • breaking

      removed the enum value google from the property anyOf[subschema #1]/items/ of the query request parameter provider

    • info

      added the enum value google_health to the property anyOf[subschema #1]/items/ of the query request parameter provider

    • info

      added the enum value health_connect to the property anyOf[subschema #1]/items/ of the query request parameter provider

    • info

      added the enum value withings to the property anyOf[subschema #1]/items/ of the query request parameter provider