Skip to main content
GET
/
api
/
v1
/
users
List Users
curl --request GET \
  --url https://api.example.com/api/v1/users \
  --header 'Authorization: Bearer <token>'
{
  "items": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "created_at": "2023-11-07T05:31:56Z",
      "first_name": "<string>",
      "last_name": "<string>",
      "email": "jsmith@example.com",
      "external_user_id": "<string>",
      "last_synced_at": "2023-11-07T05:31:56Z",
      "last_synced_provider": "<string>",
      "has_active_connection": false
    }
  ],
  "total": 1,
  "page": 2,
  "limit": 123,
  "pages": 123,
  "has_next": true,
  "has_prev": true
}

Documentation Index

Fetch the complete documentation index at: https://openwearables.io/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

X-Open-Wearables-API-Key
string | null

Query Parameters

page
integer
default:1

Page number (1-based)

Required range: x >= 1
limit
integer
default:20

Number of results per page

Required range: 1 <= x <= 100
sort_by
enum<string> | null
default:created_at

Field to sort by

Available options:
created_at,
email,
first_name,
last_name,
last_synced_at
sort_order
enum<string>
default:desc

Sort order

Available options:
asc,
desc
search
string | null

Search across first_name, last_name, and email (partial match)

email
string<email> | null

Filter by exact email

external_user_id
string | null
deprecated

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.

Response

Successful Response

items
UserRead · object[]
required
total
integer
required

Total number of items matching the query

Required range: x >= 0
page
integer
required

Current page number (1-based)

Required range: x >= 1
limit
integer
required

Number of items per page

pages
integer
required
read-only

Total number of pages.

has_next
boolean
required
read-only

Whether there is a next page.

has_prev
boolean
required
read-only

Whether there is a previous page.