Thrive Global resets API
Thrive Reset video and audio content
Thrive Reset video and audio content
openapi: 3.0.0
info:
title: Thrive Global Partner audio experiences resets 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: resets
description: Thrive Reset video and audio content
paths:
/v3/resets:
get:
operationId: getThriveResetsV3
tags:
- resets
summary: Get Thrive Resets with pagination, locale, search, and filters
security:
- BearerAuth: []
parameters:
- name: page
in: query
schema:
type: integer
default: 1
description: Page number
- name: limit
in: query
schema:
type: integer
default: 200
description: Items per page
- name: locale
in: query
schema:
type: string
default: en
description: Language locale (e.g. en, es, en-GB)
- name: search
in: query
schema:
type: string
description: Search resets by name
- name: random
in: query
schema:
type: string
enum:
- 'true'
- 'false'
description: Set to "true" for random ordering
- name: theme
in: query
schema:
type: string
description: Comma-separated theme filter
- name: tag
in: query
schema:
type: string
description: Comma-separated keyword/tag filter
- name: sort
in: query
schema:
type: string
description: Sort order
- name: filter
in: query
schema:
type: string
description: JSON filter object (merged with individual filter params)
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
thrive:
type: object
properties:
get:
$ref: '#/components/schemas/ResetCollection'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v2/resets:
get:
operationId: getAllResetsV2
tags:
- resets
summary: Get all Thrive Resets (v2) with locale support
security:
- BearerAuth: []
parameters:
- name: locale
in: query
schema:
type: string
default: en
description: Language locale (e.g. en, es, en-GB)
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
thrive:
type: object
properties:
get:
$ref: '#/components/schemas/ResetCollection'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v1/resets:
get:
operationId: getAllResetsV1
tags:
- resets
summary: Get all Thrive Resets (v1, static, 200 items)
security:
- BearerAuth: []
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
thrive:
type: object
properties:
get:
$ref: '#/components/schemas/ResetCollection'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v2/resets/audio:
get:
operationId: getAudioThriveResets
tags:
- resets
summary: Get audio Thrive Resets with pagination
security:
- BearerAuth: []
parameters:
- name: page
in: query
schema:
type: integer
default: 1
description: Page number
- name: limit
in: query
schema:
type: integer
default: 200
description: Items per page
- name: locale
in: query
schema:
type: string
default: en
description: Language locale (e.g. en, es, en-GB)
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
audio:
type: object
properties:
thrive:
type: object
properties:
get:
$ref: '#/components/schemas/AudioResetCollection'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v3/resets/{id}:
get:
operationId: getResetByIdV3
tags:
- resets
summary: Get a single reset by ID (v3)
security:
- BearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: Unique identifier of the reset (UUID)
example: 550e8400-e29b-41d4-a716-446655440000
- name: locale
in: query
schema:
type: string
default: en
description: Language locale (e.g. en, es, en-GB)
responses:
'200':
description: Item retrieved successfully
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
example: true
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
thrive:
type: object
properties:
item:
$ref: '#/components/schemas/ResetItem'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Item not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v2/resets/{id}:
get:
operationId: getResetByIdV2
tags:
- resets
summary: Get a single reset by ID (v2)
security:
- BearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: Unique identifier of the reset (UUID)
example: 550e8400-e29b-41d4-a716-446655440000
- name: locale
in: query
schema:
type: string
default: en
description: Language locale (e.g. en, es, en-GB)
responses:
'200':
description: Item retrieved successfully
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
example: true
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
thrive:
type: object
properties:
item:
$ref: '#/components/schemas/ResetItem'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Item not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v1/resets/{id}:
get:
operationId: getResetByIdV1
tags:
- resets
summary: Get a single reset by ID (v1)
security:
- BearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: Unique identifier of the reset (UUID)
example: 550e8400-e29b-41d4-a716-446655440000
- name: locale
in: query
schema:
type: string
default: en
description: Language locale (e.g. en, es, en-GB)
responses:
'200':
description: Item retrieved successfully
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
example: true
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
thrive:
type: object
properties:
item:
$ref: '#/components/schemas/ResetItem'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Item not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v2/resets/audio/{id}:
get:
operationId: getAudioResetById
tags:
- resets
summary: Get a single audio reset by ID
security:
- BearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: Unique identifier of the audio reset (UUID)
example: 550e8400-e29b-41d4-a716-446655440000
responses:
'200':
description: Item retrieved successfully
content:
application/json:
schema:
type: object
properties:
message:
type: string
valid:
type: boolean
example: true
data:
type: object
properties:
data:
type: object
properties:
reset:
type: object
properties:
audio:
type: object
properties:
thrive:
type: object
properties:
item:
$ref: '#/components/schemas/AudioResetItem'
'401':
description: Unauthorized — missing or invalid token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Item not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
ResetKeyword:
type: object
properties:
keyword:
type: string
localized:
type: string
ResetThumbnails:
type: object
description: Responsive image URLs at multiple sizes.
properties:
xs:
type: string
nullable: true
format: uri
sm:
type: string
nullable: true
format: uri
md:
type: string
nullable: true
format: uri
lg:
type: string
nullable: true
format: uri
xl:
type: string
nullable: true
format: uri
ResetItem:
type: object
description: A Thrive Reset video.
required:
- id
- name
- resetType
- durationInSeconds
properties:
id:
type: string
format: uuid
name:
type: string
description:
type: string
resetType:
type: string
description: e.g. THRIVE_RESET_LONG, THRIVE_RESET_SHORT
durationInSeconds:
type: integer
locale:
type: string
partner:
type: string
nullable: true
landscape:
$ref: '#/components/schemas/ResetOrientation'
portrait:
$ref: '#/components/schemas/ResetOrientation'
manifestUrl:
type: string
nullable: true
format: uri
description: HLS manifest URL (.m3u8) for the landscape video
thumbnail:
type: string
nullable: true
format: uri
description: Thumbnail image URL
url:
type: string
nullable: true
format: uri
description: Embeddable player URL for the landscape video; matches `landscape.iframe`
themes:
type: array
items:
$ref: '#/components/schemas/ResetTheme'
keywords:
type: array
items:
$ref: '#/components/schemas/ResetKeyword'
cmsTags:
type: array
items:
type: object
properties:
name:
type: string
tags:
type: array
items:
oneOf:
- type: string
- $ref: '#/components/schemas/TaxonomyTerm'
description: On v2 and v3, always term objects. On v1, plain tag strings for most resets, term objects otherwise. The v1 endpoint also omits `durationInSeconds`/`locale`.
conditions:
type: array
items:
$ref: '#/components/schemas/TaxonomyTerm'
description: Health conditions associated with this reset. Currently always empty.
coreHealthBehaviors:
type: array
items:
$ref: '#/components/schemas/TaxonomyTerm'
description: Core health behaviors associated with this reset. Currently always empty.
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
ErrorResponse:
type: object
required:
- message
- valid
properties:
message:
type: string
valid:
type: boolean
example: false
AudioResetItem:
type: object
description: An audio Thrive Reset.
required:
- id
- title
- url
- durationInSeconds
properties:
id:
type: string
format: uuid
title:
type: string
author:
type: string
durationInSeconds:
type: integer
url:
type: string
format: uri
description: Direct MP3 URL
order:
type: integer
nullable: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
ResetTheme:
type: object
properties:
theme:
type: string
localized:
type: string
toThriveResetTag:
type: string
nullable: true
toLocalizedThriveResetTag:
type: object
nullable: true
properties:
localized:
type: string
value:
type: string
ResetOrientation:
type: object
description: Video orientation (landscape or portrait) with iframe URL, thumbnail, and optional HLS manifest.
properties:
iframe:
type: string
nullable: true
description: Player embed URL
thumbnail:
type: string
nullable: true
description: Thumbnail image URL
manifest:
type: string
nullable: true
description: HLS manifest URL (.m3u8)
thumbnails:
$ref: '#/components/schemas/ResetThumbnails'
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
ResetCollection:
type: object
description: Paginated collection of resets. Located at `data.data.reset.thrive.get` in the response.
properties:
items:
type: array
items:
$ref: '#/components/schemas/ResetItem'
total:
type: integer
page:
type: integer
itemsPerPage:
type: integer
hasMore:
type: boolean
description: Present on v2/v3 paginated responses
AudioResetCollection:
type: object
description: Paginated audio resets. Located at `data.data.reset.audio.thrive.get` in the response.
properties:
nodes:
type: array
items:
$ref: '#/components/schemas/AudioResetItem'
pageInfo:
type: object
properties:
endCursor:
type: string
nullable: true
hasNextPage:
type: boolean
hasPreviousPage:
type: boolean
startCursor:
type: string
nullable: true
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT