Thrive Global meditations API

Guided meditations — video sessions for relaxation, sleep, and stress management

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thrive-global-meditations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

thrive-global-meditations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Thrive Global Partner audio experiences meditations API
  description: 'API for accessing Thrive Global content and features. All content endpoints require a Bearer token obtained via the authentication endpoint.


    Response envelopes follow the pattern `{ message, valid, data }` where `data` contains the response payload. Collection endpoints nest items at a resource-specific path (e.g. `data.data.reset.thrive.get.items`).'
  version: 1.7.0
  contact:
    name: Thrive Global
    url: https://thriveglobal.com/contact/sales
servers:
- url: https://partners-api.thriveglobal.com
  description: Production server
- url: https://partners-api-stag.thriveglobal.com
  description: Staging server
tags:
- name: meditations
  description: Guided meditations — video sessions for relaxation, sleep, and stress management
paths:
  /v1/meditations:
    get:
      operationId: listMeditations
      tags:
      - meditations
      summary: List meditations
      description: Returns a paginated list of meditations — guided video sessions for relaxation, sleep, and stress management. Each meditation includes its playable video, duration, imagery, captions where available, and tags.
      security:
      - BearerAuth: []
      parameters:
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
        description: Zero-based item offset
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
        description: Page size. Values above 100 are clamped to 100, not rejected; `meta.pagination` reports the applied value.
      - name: locale
        in: query
        required: false
        schema:
          type: string
          default: en-US
        description: Locale, forwarded as the thrive-locale header
      responses:
        '200':
          description: A page of meditations
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - meta
                - links
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/MeditationItem'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  links:
                    $ref: '#/components/schemas/PaginationLinks'
        '401':
          description: Unauthorized — missing, invalid, or expired token
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Unauthorized
        '422':
          description: Invalid query parameters (e.g. negative offset, zero limit)
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: integer
                    example: 422
                  errors:
                    type: array
                    items:
                      type: object
        '502':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Service temporarily unavailable
  /v1/meditations/{id}:
    get:
      operationId: getMeditationById
      tags:
      - meditations
      summary: Get a meditation by id
      description: Returns a single meditation by its id, including its playable video, duration, imagery, captions where available, and tags. Returns `404` when no meditation exists for the id and `422` when the id is not a UUID.
      security:
      - BearerAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Meditation id
      - name: locale
        in: query
        required: false
        schema:
          type: string
          default: en-US
        description: Locale, forwarded as the thrive-locale header
      responses:
        '200':
          description: The meditation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/MeditationItem'
        '401':
          description: Unauthorized — missing, invalid, or expired token
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Unauthorized
        '404':
          description: No meditation exists for the id
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not found
        '422':
          description: Invalid id (must be a UUID) or query parameters
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: integer
                    example: 422
                  errors:
                    type: array
                    items:
                      type: object
        '502':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Service temporarily unavailable
components:
  schemas:
    PaginationMeta:
      type: object
      description: Applied pagination values — after defaulting and clamping, not what was requested.
      required:
      - pagination
      properties:
        pagination:
          type: object
          required:
          - offset
          - limit
          - total
          properties:
            offset:
              type: integer
              example: 0
            limit:
              type: integer
              example: 10
            total:
              type: integer
              nullable: true
              description: Best-effort display data; null when a total is not available. `links.next != null` is the authoritative "more results exist" signal.
    AssetEntry:
      type: object
      description: 'A supporting file: images, thumbnails, captions, transcripts.'
      required:
      - role
      - contentType
      - url
      - alt
      properties:
        role:
          type: string
          enum:
          - captions
          - transcript
          - image-landscape
          - image-portrait
          - thumbnail-landscape
          - thumbnail-portrait
          - image-featured
        contentType:
          type: string
          nullable: true
          example: image/jpeg
        url:
          type: string
          format: uri
        alt:
          type: string
          nullable: true
        sizes:
          type: object
          additionalProperties:
            type: string
          description: Explicit size-variant URLs where they exist. Never derive variants by transforming URLs.
    TaxonomyTerm:
      type: object
      description: One shape for all taxonomy layers (`tags`, `conditions`, `coreHealthBehaviors`). `id` is the durable key — persist this, not `slug`. `slug` is the kebab-case machine key used in query-parameter filters and may change if the term is renamed. `name` is the display string.
      required:
      - id
      - slug
      - name
      properties:
        id:
          type: string
          nullable: true
          description: Stable identifier for the term; null where none exists
        slug:
          type: string
          example: sleep
        name:
          type: string
          nullable: true
          example: Sleep
    PaginationLinks:
      type: object
      description: Opaque pagination URLs — follow `next` until it is null; do not parse them. All three attributes are always present (null when there is no such page).
      required:
      - self
      - next
      - prev
      properties:
        self:
          type: string
          example: /v1/soundscapes?offset=0&limit=10
        next:
          type: string
          nullable: true
          example: /v1/soundscapes?offset=10&limit=10
        prev:
          type: string
          nullable: true
          example: null
    MeditationItem:
      type: object
      description: A meditation — a guided video session for relaxation, sleep, and stress management.
      required:
      - id
      - type
      - name
      - description
      - createdAt
      - updatedAt
      - locale
      - tags
      - conditions
      - coreHealthBehaviors
      - durationInSeconds
      - media
      - assets
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
          enum:
          - meditation
        name:
          type: string
          example: Body Scan for Deep Rest
        description:
          type: string
          nullable: true
        createdAt:
          type: string
          format: date-time
          nullable: true
        updatedAt:
          type: string
          format: date-time
          nullable: true
        locale:
          type: string
          nullable: true
          description: Served locale, not request echo
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TaxonomyTerm'
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/TaxonomyTerm'
        coreHealthBehaviors:
          type: array
          items:
            $ref: '#/components/schemas/TaxonomyTerm'
        durationInSeconds:
          type: integer
          example: 540
        media:
          type: array
          items:
            $ref: '#/components/schemas/MediaEntry'
          description: Playable renditions of the meditation video, keyed by `kind`.
        assets:
          type: array
          items:
            $ref: '#/components/schemas/AssetEntry'
          description: Supporting files — captions and imagery
    MediaEntry:
      type: object
      description: A playable rendition. No entry means the rendition does not exist — never null placeholders.
      required:
      - kind
      - orientation
      - contentType
      - url
      properties:
        kind:
          type: string
          enum:
          - file
          - manifest
          - embed
        orientation:
          type: string
          enum:
          - landscape
          - portrait
          nullable: true
        contentType:
          type: string
          nullable: true
          example: audio/mpeg
          description: MIME type where known
        url:
          type: string
          format: uri
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT