Eight Sleep website screenshot

Eight Sleep

Eight Sleep builds the Pod, a temperature-regulating smart mattress cover with Autopilot AI sleep optimization, sleep and biometric tracking, thermal alarms, and an adjustable Base. Eight Sleep does NOT publish an official public developer API. This catalog documents the UNOFFICIAL, community-reverse-engineered client API (auth-api.8slp.net, client-api.8slp.net, app-api.8slp.net) that powers the Eight Sleep mobile app and is used by open-source projects such as pyEight and the Home Assistant Eight Sleep integration. Endpoints can change without notice and are not supported by Eight Sleep.

7 APIs 0 Features
SleepIoTSmart HomeWearablesHealthUnofficial

APIs

Eight Sleep Authentication API

UNOFFICIAL, community-reverse-engineered OAuth2 password-grant token endpoint (POST /v1/tokens) on auth-api.8slp.net that issues bearer access and refresh tokens for the Eight S...

Eight Sleep User API

UNOFFICIAL community client endpoints for the current user (GET /v1/users/me) and individual users (GET /v1/users/{userId}), returning profile, device assignment, and side data....

Eight Sleep Device API

UNOFFICIAL community client endpoint (GET /v1/devices/{deviceId}) that returns Pod device state, online status, firmware, and bed-side (leftUserId, rightUserId, awaySides) assig...

Eight Sleep Temperature API

UNOFFICIAL community app-API endpoints to read and set a user's heating level (GET/PUT /v1/users/{userId}/temperature) on a unit-less -100..100 scale and toggle away mode (PUT /...

Eight Sleep Trends API

UNOFFICIAL community client endpoint (GET /v1/users/{userId}/trends) returning per-night sleep trend data - sleep score, stage breakdown, heart rate, HRV, respiratory rate, and ...

Eight Sleep Base API

UNOFFICIAL community app-API endpoints for the adjustable Base - read state (GET /v1/users/{userId}/base) and set head/feet angles or presets (POST /v1/users/{userId}/base/angle...

Eight Sleep Alarms API

UNOFFICIAL community app-API endpoints to list alarms and routines (GET /v1/users/{userId}/alarms, GET /v1/users/{userId}/routines) and update, snooze, stop, or dismiss them. Th...

Collections

Pricing Plans

Rate Limits

Eight Sleep Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Eight Sleep Unofficial Community API
  version: unofficial-v1
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Create Token (unofficial)
      type: http
    http:
      method: POST
      url: https://auth-api.8slp.net/v1/tokens
      body:
        type: json
        data: '{"client_id":"<APP_CLIENT_ID>","client_secret":"<APP_CLIENT_SECRET>","grant_type":"password","username":"<EMAIL>","password":"<PASSWORD>"}'
    docs: UNOFFICIAL OAuth2 password grant against auth-api.8slp.net. Returns a bearer access token and refresh token.
- info:
    name: User
    type: folder
  items:
  - info:
      name: Get Current User (unofficial)
      type: http
    http:
      method: GET
      url: https://client-api.8slp.net/v1/users/me
    docs: UNOFFICIAL read of the authenticated user's profile and device assignment.
  - info:
      name: Get User by Id (unofficial)
      type: http
    http:
      method: GET
      url: https://client-api.8slp.net/v1/users/{{user_id}}
    docs: UNOFFICIAL read of a single user (e.g. left/right sleeper).
- info:
    name: Device
    type: folder
  items:
  - info:
      name: Get Device (unofficial)
      type: http
    http:
      method: GET
      url: https://client-api.8slp.net/v1/devices/{{device_id}}?filter=leftUserId,rightUserId,awaySides
    docs: UNOFFICIAL read of Pod device state and side assignment.
- info:
    name: Temperature
    type: folder
  items:
  - info:
      name: Get Temperature (unofficial)
      type: http
    http:
      method: GET
      url: https://app-api.8slp.net/v1/users/{{user_id}}/temperature
    docs: UNOFFICIAL read of current heating level (-100..100, unit-less).
  - info:
      name: Set Temperature (unofficial)
      type: http
    http:
      method: PUT
      url: https://app-api.8slp.net/v1/users/{{user_id}}/temperature
      body:
        type: json
        data: '{"currentLevel":10,"currentState":{"type":"smart"}}'
    docs: UNOFFICIAL set of heating level and on/off state.
  - info:
      name: Set Away Mode (unofficial)
      type: http
    http:
      method: PUT
      url: https://app-api.8slp.net/v1/users/{{user_id}}/away-mode
      body:
        type: json
        data: '{"awayPeriod":{"action":"start"}}'
    docs: UNOFFICIAL start/end of away mode for a user's side.
- info:
    name: Trends
    type: folder
  items:
  - info:
      name: Get Trends (unofficial)
      type: http
    http:
      method: GET
      url: https://client-api.8slp.net/v1/users/{{user_id}}/trends?tz=America/New_York&from=2026-06-01&to=2026-06-20
    docs: UNOFFICIAL read of per-night sleep and biometric trends.
- info:
    name: Base
    type: folder
  items:
  - info:
      name: Get Base (unofficial)
      type: http
    http:
      method: GET
      url: https://app-api.8slp.net/v1/users/{{user_id}}/base
    docs: UNOFFICIAL read of adjustable Base state (head/feet angles).
  - info:
      name: Set Base Angle (unofficial)
      type: http
    http:
      method: POST
      url: https://app-api.8slp.net/v1/users/{{user_id}}/base/angle
      body:
        type: json
        data: '{"torso":30,"leg":10,"preset":"relax"}'
    docs: UNOFFICIAL set of adjustable Base angles or preset.
- info:
    name: Alarms
    type: folder
  items:
  - info:
      name: Get Alarms (unofficial)
      type: http
    http:
      method: GET
      url: https://app-api.8slp.net/v1/users/{{user_id}}/alarms
    docs: UNOFFICIAL read of configured thermal/vibration alarms.
  - info:
      name: Update Alarm (unofficial)
      type: http
    http:
      method: PUT
      url: https://app-api.8slp.net/v1/users/{{user_id}}/alarms/{{alarm_id}}
      body:
        type: json
        data: '{"enabled":true,"time":"06:30","vibrationEnabled":true,"thermalEnabled":true}'
    docs: UNOFFICIAL update of a single alarm.
  - info:
      name: Get Routines (unofficial)
      type: http
    http:
      method: GET
      url: https://app-api.8slp.net/v1/users/{{user_id}}/routines
    docs: UNOFFICIAL read of user routines (newer app builds).