openapi: 3.1.0 info: title: Oura API version: '2.0' paths: /v2/usercollection/personal_info: get: tags: - Personal Info Routes summary: Single Personal Info Document operationId: Single_Personal_Info_Document_v2_usercollection_personal_info_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PersonalInfoResponse' '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/personal_info'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/personal_info'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/personal_info',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/personal_info\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/tag: get: tags: - Tag Routes summary: Multiple Tag Documents operationId: Multiple_tag_Documents_v2_usercollection_tag_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: N/A. This route does not support field selection yet, all fields will be returned. title: Fields description: N/A. This route does not support field selection yet, all fields will be returned. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_TagModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Tag Documents V2 Usercollection Tag Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/tag?start_date=2021-11-01&end_date=2021-12-01'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/tag'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/tag?start_date=2021-11-01&end_date=2021-12-01',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/tag?start_date=2021-11-01&end_date=2021-12-01\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/tag: get: tags: - Sandbox Routes summary: Sandbox - Multiple Tag Documents operationId: Sandbox___Multiple_tag_Documents_v2_sandbox_usercollection_tag_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_TagModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Tag Documents V2 Sandbox Usercollection Tag Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/tag?start_date=2021-11-01&end_date=2021-12-01'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/tag'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/tag?start_date=2021-11-01&end_date=2021-12-01',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/tag?start_date=2021-11-01&end_date=2021-12-01\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/enhanced_tag: get: tags: - Enhanced Tag Routes summary: Multiple Enhanced Tag Documents operationId: Multiple_enhanced_tag_Documents_v2_usercollection_enhanced_tag_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: N/A. This route does not support field selection yet, all fields will be returned. title: Fields description: N/A. This route does not support field selection yet, all fields will be returned. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_EnhancedTagModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Enhanced Tag Documents V2 Usercollection Enhanced Tag Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/enhanced_tag?start_date=2021-11-01&end_date=2021-12-01'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/enhanced_tag'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/enhanced_tag?start_date=2021-11-01&end_date=2021-12-01',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/enhanced_tag?start_date=2021-11-01&end_date=2021-12-01\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/enhanced_tag: get: tags: - Sandbox Routes summary: Sandbox - Multiple Enhanced Tag Documents operationId: Sandbox___Multiple_enhanced_tag_Documents_v2_sandbox_usercollection_enhanced_tag_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_EnhancedTagModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Enhanced Tag Documents V2 Sandbox Usercollection Enhanced Tag Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag?start_date=2021-11-01&end_date=2021-12-01'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag?start_date=2021-11-01&end_date=2021-12-01',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag?start_date=2021-11-01&end_date=2021-12-01\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/workout: get: tags: - Workout Routes summary: Multiple Workout Documents operationId: Multiple_workout_Documents_v2_usercollection_workout_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicWorkout_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Workout Documents V2 Usercollection Workout Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/workout?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/workout'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/workout?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/workout?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/workout: get: tags: - Sandbox Routes summary: Sandbox - Multiple Workout Documents operationId: Sandbox___Multiple_workout_Documents_v2_sandbox_usercollection_workout_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicWorkout_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Workout Documents V2 Sandbox Usercollection Workout Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/workout?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/workout'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/workout?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/workout?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/session: get: tags: - Session Routes summary: Multiple Session Documents operationId: Multiple_session_Documents_v2_usercollection_session_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicSession_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Session Documents V2 Usercollection Session Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/session?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/session'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/session?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/session?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/session: get: tags: - Sandbox Routes summary: Sandbox - Multiple Session Documents operationId: Sandbox___Multiple_session_Documents_v2_sandbox_usercollection_session_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicSession_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Session Documents V2 Sandbox Usercollection Session Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/session?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/session'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/session?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/session?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_activity: get: tags: - Daily Activity Routes summary: Multiple Daily Activity Documents operationId: Multiple_daily_activity_Documents_v2_usercollection_daily_activity_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyActivity_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Activity Documents V2 Usercollection Daily Activity Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_activity?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_activity'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_activity?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_activity?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_activity: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Activity Documents operationId: Sandbox___Multiple_daily_activity_Documents_v2_sandbox_usercollection_daily_activity_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyActivity_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Activity Documents V2 Sandbox Usercollection Daily Activity Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_activity?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_activity'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_activity?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_activity?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_sleep: get: tags: - Daily Sleep Routes summary: Multiple Daily Sleep Documents operationId: Multiple_daily_sleep_Documents_v2_usercollection_daily_sleep_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailySleep_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Sleep Documents V2 Usercollection Daily Sleep Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_sleep'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_sleep: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Sleep Documents operationId: Sandbox___Multiple_daily_sleep_Documents_v2_sandbox_usercollection_daily_sleep_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailySleep_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Sleep Documents V2 Sandbox Usercollection Daily Sleep Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_spo2: get: tags: - Daily Spo2 Routes summary: Multiple Daily Spo2 Documents operationId: Multiple_daily_spo2_Documents_v2_usercollection_daily_spo2_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailySpO2_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Spo2 Documents V2 Usercollection Daily Spo2 Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_spo2?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_spo2'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_spo2?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_spo2?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_spo2: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Spo2 Documents operationId: Sandbox___Multiple_daily_spo2_Documents_v2_sandbox_usercollection_daily_spo2_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailySpO2_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Spo2 Documents V2 Sandbox Usercollection Daily Spo2 Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_readiness: get: tags: - Daily Readiness Routes summary: Multiple Daily Readiness Documents operationId: Multiple_daily_readiness_Documents_v2_usercollection_daily_readiness_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyReadiness_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Readiness Documents V2 Usercollection Daily Readiness Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_readiness?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_readiness'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_readiness?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_readiness?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_readiness: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Readiness Documents operationId: Sandbox___Multiple_daily_readiness_Documents_v2_sandbox_usercollection_daily_readiness_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyReadiness_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Readiness Documents V2 Sandbox Usercollection Daily Readiness Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/sleep: get: tags: - Sleep Routes summary: Multiple Sleep Documents operationId: Multiple_sleep_Documents_v2_usercollection_sleep_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicModifiedSleepModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Sleep Documents V2 Usercollection Sleep Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/sleep'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/sleep: get: tags: - Sandbox Routes summary: Sandbox - Multiple Sleep Documents operationId: Sandbox___Multiple_sleep_Documents_v2_sandbox_usercollection_sleep_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicModifiedSleepModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Sleep Documents V2 Sandbox Usercollection Sleep Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/sleep'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/sleep?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/sleep_time: get: tags: - Sleep Time Routes summary: Multiple Sleep Time Documents operationId: Multiple_sleep_time_Documents_v2_usercollection_sleep_time_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicSleepTime_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Sleep Time Documents V2 Usercollection Sleep Time Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/sleep_time?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/sleep_time'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/sleep_time?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/sleep_time?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/sleep_time: get: tags: - Sandbox Routes summary: Sandbox - Multiple Sleep Time Documents operationId: Sandbox___Multiple_sleep_time_Documents_v2_sandbox_usercollection_sleep_time_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicSleepTime_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Sleep Time Documents V2 Sandbox Usercollection Sleep Time Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/sleep_time?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/sleep_time'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/sleep_time?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/sleep_time?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/rest_mode_period: get: tags: - Rest Mode Period Routes summary: Multiple Rest Mode Period Documents operationId: Multiple_rest_mode_period_Documents_v2_usercollection_rest_mode_period_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicRestModePeriod_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Rest Mode Period Documents V2 Usercollection Rest Mode Period Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/rest_mode_period?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/rest_mode_period'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/rest_mode_period?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/rest_mode_period?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/rest_mode_period: get: tags: - Sandbox Routes summary: Sandbox - Multiple Rest Mode Period Documents operationId: Sandbox___Multiple_rest_mode_period_Documents_v2_sandbox_usercollection_rest_mode_period_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicRestModePeriod_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Rest Mode Period Documents V2 Sandbox Usercollection Rest Mode Period Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/ring_configuration: get: tags: - Ring Configuration Routes summary: Multiple Ring Configuration Documents operationId: Multiple_ring_configuration_Documents_v2_usercollection_ring_configuration_get parameters: - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicRingConfiguration_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Ring Configuration Documents V2 Usercollection Ring Configuration Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/ring_configuration?fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/ring_configuration'\ \ \nparams = {'fields': 'day,score'}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/ring_configuration?fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/ring_configuration?fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/ring_configuration: get: tags: - Sandbox Routes summary: Sandbox - Multiple Ring Configuration Documents operationId: Sandbox___Multiple_ring_configuration_Documents_v2_sandbox_usercollection_ring_configuration_get parameters: - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicRingConfiguration_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Ring Configuration Documents V2 Sandbox Usercollection Ring Configuration Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration?fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration'\ \ \nparams = {'fields': 'day,score'}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration?fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration?fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_stress: get: tags: - Daily Stress Routes summary: Multiple Daily Stress Documents operationId: Multiple_daily_stress_Documents_v2_usercollection_daily_stress_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyStress_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Stress Documents V2 Usercollection Daily Stress Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_stress?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_stress'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_stress?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_stress?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_stress: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Stress Documents operationId: Sandbox___Multiple_daily_stress_Documents_v2_sandbox_usercollection_daily_stress_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyStress_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Stress Documents V2 Sandbox Usercollection Daily Stress Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_stress?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_stress'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_stress?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_stress?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_resilience: get: tags: - Daily Resilience Routes summary: Multiple Daily Resilience Documents operationId: Multiple_daily_resilience_Documents_v2_usercollection_daily_resilience_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: N/A. This route does not support field selection yet, all fields will be returned. title: Fields description: N/A. This route does not support field selection yet, all fields will be returned. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_DailyResilienceModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Resilience Documents V2 Usercollection Daily Resilience Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_resilience?start_date=2021-11-01&end_date=2021-12-01'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_resilience'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_resilience?start_date=2021-11-01&end_date=2021-12-01',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_resilience?start_date=2021-11-01&end_date=2021-12-01\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_resilience: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Resilience Documents operationId: Sandbox___Multiple_daily_resilience_Documents_v2_sandbox_usercollection_daily_resilience_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_DailyResilienceModel_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Resilience Documents V2 Sandbox Usercollection Daily Resilience Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience?start_date=2021-11-01&end_date=2021-12-01'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01'\ \ \n}\nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse =\ \ requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience?start_date=2021-11-01&end_date=2021-12-01',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience?start_date=2021-11-01&end_date=2021-12-01\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_cardiovascular_age: get: tags: - Daily Cardiovascular Age Routes summary: Multiple Daily Cardiovascular Age Documents operationId: Multiple_daily_cardiovascular_age_Documents_v2_usercollection_daily_cardiovascular_age_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyCardiovascularAge_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Daily Cardiovascular Age Documents V2 Usercollection Daily Cardiovascular Age Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_cardiovascular_age: get: tags: - Sandbox Routes summary: Sandbox - Multiple Daily Cardiovascular Age Documents operationId: Sandbox___Multiple_daily_cardiovascular_age_Documents_v2_sandbox_usercollection_daily_cardiovascular_age_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicDailyCardiovascularAge_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Daily Cardiovascular Age Documents V2 Sandbox Usercollection Daily Cardiovascular Age Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/vO2_max: get: tags: - VO2 Max Routes summary: Multiple Vo2 Max Documents operationId: Multiple_vO2_max_Documents_v2_usercollection_vO2_max_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicVO2Max_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Multiple Vo2 Max Documents V2 Usercollection Vo2 Max Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/vO2_max?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/vO2_max'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/vO2_max?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/vO2_max?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/vO2_max: get: tags: - Sandbox Routes summary: Sandbox - Multiple Vo2 Max Documents operationId: Sandbox___Multiple_vO2_max_Documents_v2_sandbox_usercollection_vO2_max_get parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date-time - type: string format: date - type: 'null' title: End Date - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/MultiDocumentResponse_PublicVO2Max_' - $ref: '#/components/schemas/MultiDocumentResponseDict' title: Response Sandbox Multiple Vo2 Max Documents V2 Sandbox Usercollection Vo2 Max Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/vO2_max?start_date=2021-11-01&end_date=2021-12-01&fields=day,score'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/vO2_max'\ \ \nparams={ \n 'start_date': '2021-11-01', \n 'end_date': '2021-12-01',\n\ \ 'fields': 'day,score' \n}\nheaders = { \n 'Authorization': 'Bearer\ \ ' \n}\nresponse = requests.request('GET', url, headers=headers,\ \ params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/vO2_max?start_date=2021-11-01&end_date=2021-12-01&fields=day,score',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/vO2_max?start_date=2021-11-01&end_date=2021-12-01&fields=day,score\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/tag/{document_id}: get: tags: - Tag Routes summary: Single Tag Document operationId: Single_tag_Document_v2_usercollection_tag__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TagModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/tag/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Tag Document operationId: Sandbox___Single_tag_Document_v2_sandbox_usercollection_tag__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TagModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/tag/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/enhanced_tag/{document_id}: get: tags: - Enhanced Tag Routes summary: Single Enhanced Tag Document operationId: Single_enhanced_tag_Document_v2_usercollection_enhanced_tag__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EnhancedTagModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/enhanced_tag/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Enhanced Tag Document operationId: Sandbox___Single_enhanced_tag_Document_v2_sandbox_usercollection_enhanced_tag__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/EnhancedTagModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/enhanced_tag/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/workout/{document_id}: get: tags: - Workout Routes summary: Single Workout Document operationId: Single_workout_Document_v2_usercollection_workout__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicWorkout' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/workout/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Workout Document operationId: Sandbox___Single_workout_Document_v2_sandbox_usercollection_workout__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicWorkout' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/workout/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/session/{document_id}: get: tags: - Session Routes summary: Single Session Document operationId: Single_session_Document_v2_usercollection_session__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicSession' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/session/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Session Document operationId: Sandbox___Single_session_Document_v2_sandbox_usercollection_session__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicSession' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/session/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_activity/{document_id}: get: tags: - Daily Activity Routes summary: Single Daily Activity Document operationId: Single_daily_activity_Document_v2_usercollection_daily_activity__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyActivity' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_activity/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Activity Document operationId: Sandbox___Single_daily_activity_Document_v2_sandbox_usercollection_daily_activity__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyActivity' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_activity/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_sleep/{document_id}: get: tags: - Daily Sleep Routes summary: Single Daily Sleep Document operationId: Single_daily_sleep_Document_v2_usercollection_daily_sleep__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailySleep' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_sleep/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Sleep Document operationId: Sandbox___Single_daily_sleep_Document_v2_sandbox_usercollection_daily_sleep__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailySleep' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_sleep/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_spo2/{document_id}: get: tags: - Daily Spo2 Routes summary: Single Daily Spo2 Document operationId: Single_daily_spo2_Document_v2_usercollection_daily_spo2__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailySpO2' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_spo2/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Spo2 Document operationId: Sandbox___Single_daily_spo2_Document_v2_sandbox_usercollection_daily_spo2__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailySpO2' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_spo2/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_readiness/{document_id}: get: tags: - Daily Readiness Routes summary: Single Daily Readiness Document operationId: Single_daily_readiness_Document_v2_usercollection_daily_readiness__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyReadiness' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_readiness/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Readiness Document operationId: Sandbox___Single_daily_readiness_Document_v2_sandbox_usercollection_daily_readiness__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyReadiness' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_readiness/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/sleep/{document_id}: get: tags: - Sleep Routes summary: Single Sleep Document operationId: Single_sleep_Document_v2_usercollection_sleep__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicModifiedSleepModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/sleep/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Sleep Document operationId: Sandbox___Single_sleep_Document_v2_sandbox_usercollection_sleep__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicModifiedSleepModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/sleep/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/sleep_time/{document_id}: get: tags: - Sleep Time Routes summary: Single Sleep Time Document operationId: Single_sleep_time_Document_v2_usercollection_sleep_time__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicSleepTime' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/sleep_time/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Sleep Time Document operationId: Sandbox___Single_sleep_time_Document_v2_sandbox_usercollection_sleep_time__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicSleepTime' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/sleep_time/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/rest_mode_period/{document_id}: get: tags: - Rest Mode Period Routes summary: Single Rest Mode Period Document operationId: Single_rest_mode_period_Document_v2_usercollection_rest_mode_period__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicRestModePeriod' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/rest_mode_period/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Rest Mode Period Document operationId: Sandbox___Single_rest_mode_period_Document_v2_sandbox_usercollection_rest_mode_period__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicRestModePeriod' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/rest_mode_period/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/ring_configuration/{document_id}: get: tags: - Ring Configuration Routes summary: Single Ring Configuration Document operationId: Single_ring_configuration_Document_v2_usercollection_ring_configuration__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicRingConfiguration' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/ring_configuration/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Ring Configuration Document operationId: Sandbox___Single_ring_configuration_Document_v2_sandbox_usercollection_ring_configuration__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicRingConfiguration' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/ring_configuration/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_stress/{document_id}: get: tags: - Daily Stress Routes summary: Single Daily Stress Document operationId: Single_daily_stress_Document_v2_usercollection_daily_stress__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyStress' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_stress/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Stress Document operationId: Sandbox___Single_daily_stress_Document_v2_sandbox_usercollection_daily_stress__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyStress' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_stress/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_resilience/{document_id}: get: tags: - Daily Resilience Routes summary: Single Daily Resilience Document operationId: Single_daily_resilience_Document_v2_usercollection_daily_resilience__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DailyResilienceModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_resilience/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Resilience Document operationId: Sandbox___Single_daily_resilience_Document_v2_sandbox_usercollection_daily_resilience__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DailyResilienceModel' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_resilience/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/daily_cardiovascular_age/{document_id}: get: tags: - Daily Cardiovascular Age Routes summary: Single Daily Cardiovascular Age Document operationId: Single_daily_cardiovascular_age_Document_v2_usercollection_daily_cardiovascular_age__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyCardiovascularAge' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/daily_cardiovascular_age/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Daily Cardiovascular Age Document operationId: Sandbox___Single_daily_cardiovascular_age_Document_v2_sandbox_usercollection_daily_cardiovascular_age__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicDailyCardiovascularAge' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/daily_cardiovascular_age/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/vO2_max/{document_id}: get: tags: - VO2 Max Routes summary: Single Vo2 Max Document operationId: Single_vO2_max_Document_v2_usercollection_vO2_max__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicVO2Max' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/vO2_max/{document_id}: get: tags: - Sandbox Routes summary: Sandbox - Single Vo2 Max Document operationId: Sandbox___Single_vO2_max_Document_v2_sandbox_usercollection_vO2_max__document_id__get parameters: - name: document_id in: path required: true schema: type: string title: Document Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicVO2Max' '404': description: Not Found '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/sandbox/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e'' \ --header ''Authorization: Bearer ''' - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e\n\ headers = { \n 'Authorization': 'Bearer ' \n}\nresponse = requests.request('GET',\ \ url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/vO2_max/2-5daccc095220cc5493a4e9c2b681ca941e\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/webhook/subscription: get: tags: - Webhook Subscription Routes summary: List Webhook Subscriptions operationId: list_webhook_subscriptions_v2_webhook_subscription_get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/WebhookSubscriptionModel' type: array title: Response List Webhook Subscriptions V2 Webhook Subscription Get security: - ClientIdAuth: [] ClientSecretAuth: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/webhook/subscription'' --header ''x-client-id: client-id'' --header ''x-client-secret: client-secret''' post: tags: - Webhook Subscription Routes summary: Create Webhook Subscription operationId: create_webhook_subscription_v2_webhook_subscription_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateWebhookSubscriptionRequest' required: true responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookSubscriptionModel' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - ClientIdAuth: [] ClientSecretAuth: [] x-codeSamples: - lang: cURL label: cURL source: "curl --location --request POST 'https://api.ouraring.com/v2/webhook/subscription'\ \ --header 'x-client-id: client-id' --header 'x-client-secret: client-secret'\ \ --header 'Content-Type: application/json' --data-raw '{\n \"callback_url\"\ : \"https://my-api/oura/tag/delete\",\n \"verification_token\": \"123\"\ ,\n \"event_type\": \"delete\",\n \"data_type\": \"tag\"\n}'" /v2/webhook/subscription/{id}: get: tags: - Webhook Subscription Routes summary: Get Webhook Subscription operationId: get_webhook_subscription_v2_webhook_subscription__id__get parameters: - name: id in: path required: true schema: type: string title: Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookSubscriptionModel' '403': description: Webhook with specified id does not exist. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - ClientIdAuth: [] ClientSecretAuth: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request GET ''https://api.ouraring.com/v2/webhook/subscription/5d3fe17b-f880-4d93-b9b6-afbfb76c1e78'' --header ''x-client-id: client-id'' --header ''x-client-secret: client-secret''' put: tags: - Webhook Subscription Routes summary: Update Webhook Subscription operationId: update_webhook_subscription_v2_webhook_subscription__id__put parameters: - name: id in: path required: true schema: type: string title: Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWebhookSubscriptionRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookSubscriptionModel' '403': description: Webhook with specified id does not exist. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - ClientIdAuth: [] ClientSecretAuth: [] x-codeSamples: - lang: cURL label: cURL source: "curl --location --request PUT 'https://api.ouraring.com/v2/webhook/subscription/5d3fe17b-f880-4d93-b9b6-afbfb76c1e78'\ \ --header 'x-client-id: client-id' --header 'x-client-secret: client-secret'\ \ --header 'Content-Type: application/json' --data-raw '{\n \"callback_url\"\ : \"https://my-api/oura/tag/delete\",\n \"verification_token\": \"123\"\ ,\n \"event_type\": \"delete\",\n \"data_type\": \"tag\"\n}'" delete: tags: - Webhook Subscription Routes summary: Delete Webhook Subscription operationId: delete_webhook_subscription_v2_webhook_subscription__id__delete parameters: - name: id in: path required: true schema: type: string title: Id responses: '204': description: Successful Response '403': description: Webhook with specified id does not exist. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - ClientIdAuth: [] ClientSecretAuth: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request DELETE ''https://api.ouraring.com/v2/webhook/subscription/5d3fe17b-f880-4d93-b9b6-afbfb76c1e78'' --header ''x-client-id: client-id'' --header ''x-client-secret: client-secret''' /v2/webhook/subscription/renew/{id}: put: tags: - Webhook Subscription Routes summary: Renew Webhook Subscription operationId: renew_webhook_subscription_v2_webhook_subscription_renew__id__put parameters: - name: id in: path required: true schema: type: string title: Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookSubscriptionModel' '403': description: Webhook with specified id does not exist. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - ClientIdAuth: [] ClientSecretAuth: [] x-codeSamples: - lang: cURL label: cURL source: 'curl --location --request PUT ''https://api.ouraring.com/v2/webhook/subscription/renew/5d3fe17b-f880-4d93-b9b6-afbfb76c1e78'' --header ''x-client-id: client-id'' --header ''x-client-secret: client-secret'' --header ''Content-Type: application/json''' /v2/usercollection/heartrate: get: tags: - Heart Rate Routes summary: Multiple Heartrate Documents operationId: Multiple_heartrate_Documents_v2_usercollection_heartrate_get parameters: - name: start_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime - name: end_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: End Datetime - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: latest in: query required: false schema: anyOf: - type: boolean - type: 'null' title: Latest - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/TimeSeriesResponse_PublicHeartRateRow_' - $ref: '#/components/schemas/TimeSeriesResponseDict' title: Response Multiple Heartrate Documents V2 Usercollection Heartrate Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: "# The '+' symbol in the timezone must be escaped to `%2B` if included.\ \ \ncurl --location --request GET 'https://api.ouraring.com/v2/usercollection/heartrate?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm'\ \ \\ \n--header 'Authorization: Bearer '" - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/heartrate'\ \ \nparams={ \n 'start_datetime': '2021-11-01T00:00:00-08:00', \n \ \ 'end_datetime': '2021-12-01T00:00:00-08:00',\n 'fields': 'timestamp,bpm'\ \ \n} \nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse\ \ = requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/heartrate?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/heartrate?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/heartrate: get: tags: - Sandbox Routes summary: Sandbox - Multiple Heartrate Documents operationId: Sandbox___Multiple_heartrate_Documents_v2_sandbox_usercollection_heartrate_get parameters: - name: start_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime - name: end_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: End Datetime - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/TimeSeriesResponse_PublicHeartRateRow_' - $ref: '#/components/schemas/TimeSeriesResponseDict' title: Response Sandbox Multiple Heartrate Documents V2 Sandbox Usercollection Heartrate Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: "# The '+' symbol in the timezone must be escaped to `%2B` if included.\ \ \ncurl --location --request GET 'https://api.ouraring.com/v2/sandbox/usercollection/heartrate?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm'\ \ \\ \n--header 'Authorization: Bearer '" - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/heartrate'\ \ \nparams={ \n 'start_datetime': '2021-11-01T00:00:00-08:00', \n \ \ 'end_datetime': '2021-12-01T00:00:00-08:00',\n 'fields': 'timestamp,bpm'\ \ \n} \nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse\ \ = requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/heartrate?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/heartrate?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/ring_battery_level: get: tags: - Ring Battery Level Routes summary: Multiple Ring Battery Level Documents operationId: Multiple_ring_battery_level_Documents_v2_usercollection_ring_battery_level_get parameters: - name: start_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime - name: end_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: End Datetime - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: latest in: query required: false schema: anyOf: - type: boolean - type: 'null' title: Latest - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/TimeSeriesResponse_PublicRingBatteryLevelRow_' - $ref: '#/components/schemas/TimeSeriesResponseDict' title: Response Multiple Ring Battery Level Documents V2 Usercollection Ring Battery Level Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: "# The '+' symbol in the timezone must be escaped to `%2B` if included.\ \ \ncurl --location --request GET 'https://api.ouraring.com/v2/usercollection/ring_battery_level?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm'\ \ \\ \n--header 'Authorization: Bearer '" - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/ring_battery_level'\ \ \nparams={ \n 'start_datetime': '2021-11-01T00:00:00-08:00', \n \ \ 'end_datetime': '2021-12-01T00:00:00-08:00',\n 'fields': 'timestamp,bpm'\ \ \n} \nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse\ \ = requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/ring_battery_level?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/ring_battery_level?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/ring_battery_level: get: tags: - Sandbox Routes summary: Sandbox - Multiple Ring Battery Level Documents operationId: Sandbox___Multiple_ring_battery_level_Documents_v2_sandbox_usercollection_ring_battery_level_get parameters: - name: start_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime - name: end_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: End Datetime - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/TimeSeriesResponse_PublicRingBatteryLevelRow_' - $ref: '#/components/schemas/TimeSeriesResponseDict' title: Response Sandbox Multiple Ring Battery Level Documents V2 Sandbox Usercollection Ring Battery Level Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: "# The '+' symbol in the timezone must be escaped to `%2B` if included.\ \ \ncurl --location --request GET 'https://api.ouraring.com/v2/sandbox/usercollection/ring_battery_level?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm'\ \ \\ \n--header 'Authorization: Bearer '" - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/ring_battery_level'\ \ \nparams={ \n 'start_datetime': '2021-11-01T00:00:00-08:00', \n \ \ 'end_datetime': '2021-12-01T00:00:00-08:00',\n 'fields': 'timestamp,bpm'\ \ \n} \nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse\ \ = requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/ring_battery_level?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/ring_battery_level?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/usercollection/interbeat_interval: get: tags: - Interbeat Interval Routes summary: Multiple Interbeat Interval Documents operationId: Multiple_interbeat_interval_Documents_v2_usercollection_interbeat_interval_get parameters: - name: start_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime - name: end_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: End Datetime - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token - name: latest in: query required: false schema: anyOf: - type: boolean - type: 'null' title: Latest - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. title: Fields description: Comma-separated list of fields to include in the response, in addition to the always returned fields. Defaults to all fields if not provided. responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/TimeSeriesResponse_PublicInterbeatIntervalRow_' - $ref: '#/components/schemas/TimeSeriesResponseDict' title: Response Multiple Interbeat Interval Documents V2 Usercollection Interbeat Interval Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: "# The '+' symbol in the timezone must be escaped to `%2B` if included.\ \ \ncurl --location --request GET 'https://api.ouraring.com/v2/usercollection/interbeat_interval?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm'\ \ \\ \n--header 'Authorization: Bearer '" - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/usercollection/interbeat_interval'\ \ \nparams={ \n 'start_datetime': '2021-11-01T00:00:00-08:00', \n \ \ 'end_datetime': '2021-12-01T00:00:00-08:00',\n 'fields': 'timestamp,bpm'\ \ \n} \nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse\ \ = requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/usercollection/interbeat_interval?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/usercollection/interbeat_interval?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java /v2/sandbox/usercollection/interbeat_interval: get: tags: - Sandbox Routes summary: Sandbox - Multiple Interbeat Interval Documents operationId: Sandbox___Multiple_interbeat_interval_Documents_v2_sandbox_usercollection_interbeat_interval_get parameters: - name: start_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime - name: end_datetime in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: End Datetime - name: next_token in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Token responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/TimeSeriesResponse_PublicInterbeatIntervalRow_' - $ref: '#/components/schemas/TimeSeriesResponseDict' title: Response Sandbox Multiple Interbeat Interval Documents V2 Sandbox Usercollection Interbeat Interval Get '400': description: Client Exception '401': description: Unauthorized access exception. Usually means the access token is expired, malformed or revoked. '403': description: Access forbidden. Usually means the user's subscription to Oura has expired and their data is not available via the API. '429': description: Request Rate Limit Exceeded. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - BearerAuth: [] - OAuth2: [] x-codeSamples: - lang: cURL label: cURL source: "# The '+' symbol in the timezone must be escaped to `%2B` if included.\ \ \ncurl --location --request GET 'https://api.ouraring.com/v2/sandbox/usercollection/interbeat_interval?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm'\ \ \\ \n--header 'Authorization: Bearer '" - lang: Python source: "import requests \nurl = 'https://api.ouraring.com/v2/sandbox/usercollection/interbeat_interval'\ \ \nparams={ \n 'start_datetime': '2021-11-01T00:00:00-08:00', \n \ \ 'end_datetime': '2021-12-01T00:00:00-08:00',\n 'fields': 'timestamp,bpm'\ \ \n} \nheaders = { \n 'Authorization': 'Bearer ' \n}\nresponse\ \ = requests.request('GET', url, headers=headers, params=params) \nprint(response.text)" label: Python - lang: JavaScript source: "var myHeaders = new Headers(); \nmyHeaders.append('Authorization',\ \ 'Bearer '); \nvar requestOptions = { \n method: 'GET', \n headers:\ \ myHeaders, \nfetch('https://api.ouraring.com/v2/sandbox/usercollection/interbeat_interval?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm',\ \ requestOptions) \n .then(response => response.text()) \n .then(result\ \ => console.log(result)) \n .catch(error => console.log('error', error));" label: JavaScript - lang: Java source: "OkHttpClient client = new OkHttpClient().newBuilder() \n .build();\ \ \nRequest request = new Request.Builder() \n .url(\"https://api.ouraring.com/v2/sandbox/usercollection/interbeat_interval?start_datetime=2021-11-01T00:00:00-08:00&end_datetime=2021-12-01T00:00:00-08:00&fields=timestamp,bpm\"\ ) \n .method(\"GET\", null) \n .addHeader(\"Authorization\", \"Bearer\ \ \") \n .build(); \nResponse response = client.newCall(request).execute();" label: Java components: schemas: Array_Union_float__NoneType__Bits64_: items: anyOf: - type: number - type: 'null' type: array title: ArrayNullableFloatBits64 CreateWebhookSubscriptionRequest: properties: callback_url: type: string title: Callback Url verification_token: type: string title: Verification Token event_type: $ref: '#/components/schemas/WebhookOperation' data_type: $ref: '#/components/schemas/ExtApiV2DataType' type: object required: - callback_url - verification_token - event_type - data_type title: CreateWebhookSubscriptionRequest DailyResilienceModel: properties: id: type: string title: Id day: type: string format: date title: Day description: Day when the resilience record was recorded. contributors: $ref: '#/components/schemas/ResilienceContributors' description: Contributors to the resilience score. level: $ref: '#/components/schemas/LongTermResilienceLevel' description: Resilience level. type: object required: - id - day - contributors - level title: DailyResilienceModel EnhancedTagModel: properties: id: type: string title: Id tag_type_code: anyOf: - type: string - type: 'null' title: Tag Type Code description: The unique code of the selected tag type, `NULL` for text-only tags, or `custom` for custom tag types. start_time: $ref: '#/components/schemas/LocalDateTime' description: Timestamp of the tag (if no duration) or the start time of the tag (with duration). end_time: anyOf: - $ref: '#/components/schemas/LocalDateTime' - type: 'null' description: Timestamp of the tag's end for events with duration or `NULL` if there is no duration. start_day: type: string format: date title: Start Day description: Day of the tag (if no duration) or the start day of the tag (with duration). end_day: anyOf: - type: string format: date - type: 'null' title: End Day description: Day of the tag's end for events with duration or `NULL` if there is no duration. comment: anyOf: - type: string - type: 'null' title: Comment description: Additional freeform text on the tag. custom_name: anyOf: - type: string - type: 'null' title: Custom Name description: The name of the tag if the tag_type_code is `custom`. type: object required: - id - start_time - start_day title: EnhancedTagModel description: 'An EnhancedTagModel maps an ASSATag. An ASSATag in ExtAPIV2 is called a EnhancedTag An EnhancedTagModel will be populated by data from an ASSATag The fields in the EnhancedTagModel map to fields in an ASSATag' ExtApiV2DataType: type: string enum: - tag - enhanced_tag - workout - session - sleep - daily_sleep - daily_readiness - daily_activity - daily_spo2 - sleep_time - rest_mode_period - ring_configuration - daily_stress - daily_cycle_phases - activation_status - daily_cardiovascular_age - daily_resilience - vo2_max - period_start - pregnancy - fertile_window - ovulation_confirmed - blood_glucose title: ExtApiV2DataType HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ISODate: type: string LocalDateTime: type: string LocalizedDateTime: type: string LongTermResilienceLevel: type: string enum: - limited - adequate - solid - strong - exceptional title: LongTermResilienceLevel description: Possible long term resilience level values. Metadata: properties: updated_at: $ref: '#/components/schemas/UtcDateTime' title: '' description: Timestamp indicating when the object was last updated. version: type: integer title: '' description: Version number of the object. type: object required: - updated_at - version title: Metadata description: Object defining the metadata of a collection model instance. MultiDocumentResponseDict: properties: data: items: additionalProperties: true type: object type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponseDict MultiDocumentResponse_DailyResilienceModel_: properties: data: items: $ref: '#/components/schemas/DailyResilienceModel' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[DailyResilienceModel] MultiDocumentResponse_EnhancedTagModel_: properties: data: items: $ref: '#/components/schemas/EnhancedTagModel' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[EnhancedTagModel] MultiDocumentResponse_PublicDailyActivity_: properties: data: items: $ref: '#/components/schemas/PublicDailyActivity' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicDailyActivity] MultiDocumentResponse_PublicDailyCardiovascularAge_: properties: data: items: $ref: '#/components/schemas/PublicDailyCardiovascularAge' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicDailyCardiovascularAge] MultiDocumentResponse_PublicDailyReadiness_: properties: data: items: $ref: '#/components/schemas/PublicDailyReadiness' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicDailyReadiness] MultiDocumentResponse_PublicDailySleep_: properties: data: items: $ref: '#/components/schemas/PublicDailySleep' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicDailySleep] MultiDocumentResponse_PublicDailySpO2_: properties: data: items: $ref: '#/components/schemas/PublicDailySpO2' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicDailySpO2] MultiDocumentResponse_PublicDailyStress_: properties: data: items: $ref: '#/components/schemas/PublicDailyStress' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicDailyStress] MultiDocumentResponse_PublicModifiedSleepModel_: properties: data: items: $ref: '#/components/schemas/PublicModifiedSleepModel' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicModifiedSleepModel] MultiDocumentResponse_PublicRestModePeriod_: properties: data: items: $ref: '#/components/schemas/PublicRestModePeriod' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicRestModePeriod] MultiDocumentResponse_PublicRingConfiguration_: properties: data: items: $ref: '#/components/schemas/PublicRingConfiguration' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicRingConfiguration] MultiDocumentResponse_PublicSession_: properties: data: items: $ref: '#/components/schemas/PublicSession' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicSession] MultiDocumentResponse_PublicSleepTime_: properties: data: items: $ref: '#/components/schemas/PublicSleepTime' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicSleepTime] MultiDocumentResponse_PublicVO2Max_: properties: data: items: $ref: '#/components/schemas/PublicVO2Max' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicVO2Max] MultiDocumentResponse_PublicWorkout_: properties: data: items: $ref: '#/components/schemas/PublicWorkout' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[PublicWorkout] MultiDocumentResponse_TagModel_: properties: data: items: $ref: '#/components/schemas/TagModel' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data - next_token title: MultiDocumentResponse[TagModel] PersonalInfoResponse: properties: id: type: string title: Id age: anyOf: - type: integer - type: 'null' title: Age weight: anyOf: - type: number - type: 'null' title: Weight height: anyOf: - type: number - type: 'null' title: Height biological_sex: anyOf: - type: string - type: 'null' title: Biological Sex email: anyOf: - type: string - type: 'null' title: Email type: object required: - id title: PersonalInfoResponse PublicActivityContributors: properties: meet_daily_targets: anyOf: - type: integer - type: 'null' title: '' description: Contribution of meeting previous 7-day daily activity targets in range [1, 100]. move_every_hour: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous 24-hour inactivity alerts in range [1, 100]. recovery_time: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous 7-day recovery time in range [1, 100]. stay_active: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous 24-hour activity in range [1, 100]. training_frequency: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous 7-day exercise frequency in range [1, 100]. training_volume: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous 7-day exercise volume in range [1, 100]. type: object title: PublicActivityContributors description: Object defining activity score contributors. PublicDailyActivity: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. active_calories: type: integer title: '' description: Active calories expended in kilocalories. average_met_minutes: type: number title: '' description: Average MET minutes. class_5_min: anyOf: - type: string - type: 'null' title: '' description: '5-minute activity classification for the period where every character corresponds to: ''0'' = non wear ''1'' = rest ''2'' = inactive ''3'' = low activity ''4'' = medium activity ''5'' = high activity Example: "001233334555524001".' contributors: $ref: '#/components/schemas/PublicActivityContributors' title: '' description: Object containing activity score contributors. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the daily activity belong to. equivalent_walking_distance: type: integer title: '' description: Equivalent walking distance of energe expenditure in meters. high_activity_met_minutes: type: integer title: '' description: The total METs of each minute classified as high activity. high_activity_time: type: integer title: '' description: The total time in seconds of each minute classified as high activity. inactivity_alerts: type: integer title: '' description: Number of inactivity alerts received. low_activity_met_minutes: type: integer title: '' description: The total METs of each minute classified as low activity. low_activity_time: type: integer title: '' description: The total time in seconds of each minute classified as low activity. medium_activity_met_minutes: type: integer title: '' description: The total METs of each minute classified as medium activity. medium_activity_time: type: integer title: '' description: The total time in seconds of each minute classified as medium activity. met: $ref: '#/components/schemas/PublicSample' title: '' description: Sample containing METs. meters_to_target: type: integer title: '' description: Meters remaining to target. non_wear_time: type: integer title: '' description: Ring non-wear time in seconds. resting_time: type: integer title: '' description: Resting time in seconds. score: anyOf: - type: integer - type: 'null' title: '' description: Activity score in range [1, 100]. sedentary_met_minutes: type: integer title: '' description: Sedentary MET minutes. sedentary_time: type: integer title: '' description: Sedentary time in seconds. steps: type: integer title: '' description: Total number of steps taken. target_calories: type: integer title: '' description: Daily activity target in kilocalories. target_meters: type: integer title: '' description: Daily activity target in meters. timestamp: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp of the daily activity. total_calories: type: integer title: '' description: Total calories expended in kilocalories. type: object required: - id - meta - active_calories - average_met_minutes - contributors - day - equivalent_walking_distance - high_activity_met_minutes - high_activity_time - inactivity_alerts - low_activity_met_minutes - low_activity_time - medium_activity_met_minutes - medium_activity_time - met - meters_to_target - non_wear_time - resting_time - sedentary_met_minutes - sedentary_time - steps - target_calories - target_meters - timestamp - total_calories title: PublicDailyActivity description: Object defining a daily activity that is a 24-hour period starting at 4 a.m. x-cloud-only: true x-collection: publicdailyactivity x-owner: movement-squad PublicDailyCardiovascularAge: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the prediction belongs to. vascular_age: anyOf: - type: integer - type: 'null' title: '' description: Predicted vascular age in range [18, 100]. type: object required: - id - meta - day title: PublicDailyCardiovascularAge description: Daily Cardiovascular Age. x-cloud-only: true x-collection: publicdailycardiovascularage x-owner: health-squad PublicDailyReadiness: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. contributors: $ref: '#/components/schemas/PublicReadinessContributors' title: '' description: Contributors of the daily readiness score. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the daily readiness belongs to. score: anyOf: - type: integer - type: 'null' title: '' description: Daily readiness score. temperature_deviation: anyOf: - type: number - type: 'null' title: '' description: Temperature deviation in degrees Celcius. temperature_trend_deviation: anyOf: - type: number - type: 'null' title: '' description: Temperature trend deviation in degrees Celcius. timestamp: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp of the daily readiness. type: object required: - id - meta - contributors - day - timestamp title: PublicDailyReadiness description: Public object defining daily readiness. x-cloud-only: true x-collection: publicdailyreadiness x-owner: health-squad PublicDailySleep: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. contributors: $ref: '#/components/schemas/PublicSleepContributors' title: '' description: Contributors for the daily sleep score. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the daily sleep belongs to. score: anyOf: - type: integer - type: 'null' title: '' description: Daily sleep score. timestamp: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp of the daily sleep. type: object required: - id - meta - contributors - day - timestamp title: PublicDailySleep description: Public object defining daily sleep. x-cloud-only: true x-collection: publicdailysleep x-owner: health-squad PublicDailySpO2: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. breathing_disturbance_index: anyOf: - type: integer - type: 'null' title: '' description: Breathing Disturbance Index (BDI) calculated using detected SpO2 drops from timeseries. Values should be in range [0, 100] day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the spo2 values belong to. spo2_percentage: anyOf: - $ref: '#/components/schemas/PublicSpo2AggregatedValues' - type: 'null' title: '' description: The daily SpO2 percentage value aggregates. Sourced from SpO2 percentage timeseries values. type: object required: - id - meta - day title: PublicDailySpO2 description: Daily SpO2 (Oxygen saturation). x-cloud-only: true x-collection: publicdailyspo2 x-owner: health-squad PublicDailyStress: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the daily stress belongs to. day_summary: anyOf: - $ref: '#/components/schemas/PublicDailyStressSummary' - type: 'null' title: '' description: Stress summary of full day. recovery_high: anyOf: - type: integer - type: 'null' title: '' description: Time spent in a high recovery zone (bottom quartile data) in seconds. stress_high: anyOf: - type: integer - type: 'null' title: '' description: Time spent in a high stress zone (top quartile of data) in seconds. type: object required: - id - meta - day title: PublicDailyStress description: Daily stress. x-cloud-only: true x-collection: publicdailystress x-owner: wellbeing-squad PublicDailyStressSummary: type: string enum: - restored - normal - stressful title: PublicDailyStressSummary description: Possible public daily stress summary types. PublicHeartRateRow: properties: timestamp: $ref: '#/components/schemas/UtcDateTime' title: '' description: Timestamp of the discrete sample. timestamp_unix: type: integer title: '' description: Timestamp of the discrete sample as unix time in milliseconds. bpm: type: integer title: '' description: Heart rate as beats per minute. source: $ref: '#/components/schemas/PublicHeartRateSource' title: '' description: Source of the sample. type: object required: - timestamp - timestamp_unix - bpm - source title: PublicHeartRateRow description: Heart rate sample x-cloud-only: true x-collection: publicheartrate x-owner: health-squad PublicHeartRateSource: type: string enum: - awake - workout - rest - sleep - live - session title: PublicHeartRateSource description: Possible heart rate sources. PublicInterbeatIntervalRow: properties: timestamp: $ref: '#/components/schemas/UtcDateTime' title: '' description: Timestamp of the discrete sample. timestamp_unix: type: integer title: '' description: Timestamp of the discrete sample as unix time in milliseconds. ibi: type: integer title: '' description: Time between two consecutive beats of the heart, in milliseconds. Maximum value limited to 2000ms. validity: type: integer title: '' description: 'Validation classification: 1=Good,2=Bad,3=Corrected,-1/-2=Gap, 0=Raw(Uncorrected). The validity indicates whether the data in this row is trustworthy. Gap: indicates that there was no available ppg signal in the past seconds, which makes it impossible to compute the IBI for this row. Corrected: In rare cases the ring algorithm produces artifacts that can be corrected during post-processing. An example is the ring algo generating two IBI events when there should be a single one. If the IBI value was fixed in post-processing, it will have this validity classification. If the IBI value was not fixed, it will have the Raw classification.' type: object required: - timestamp - timestamp_unix - ibi - validity title: PublicInterbeatIntervalRow description: Discrete interbeat interval x-cloud-only: true x-collection: publicinterbeatinterval x-owner: app-platform PublicModifiedSleepModel: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. average_breath: anyOf: - type: number - type: 'null' title: '' description: Average breathing rate during sleep as breaths/minute. average_heart_rate: anyOf: - type: number - type: 'null' title: '' description: 'Average heart rate during sleep as beats/minute. NOTE: this is the average calculated by ecore (based on 30-second samples) which is different from what is shown in the app. The app shows the average of aggregated 5-minute heart rate samples.' average_hrv: anyOf: - type: integer - type: 'null' title: '' description: Average heart rate variability during sleep. awake_time: anyOf: - type: integer - type: 'null' title: '' description: Duration spent awake in seconds. bedtime_end: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Bedtime end of the sleep. bedtime_start: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Bedtime start of the sleep. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the sleep belongs to. deep_sleep_duration: anyOf: - type: integer - type: 'null' title: '' description: Duration spent in deep sleep in seconds. efficiency: anyOf: - type: integer - type: 'null' title: '' description: Sleep efficiency rating in range [1, 100]. heart_rate: anyOf: - $ref: '#/components/schemas/PublicSample' - type: 'null' title: '' description: Object containing heart rate samples. hrv: anyOf: - $ref: '#/components/schemas/PublicSample' - type: 'null' title: '' description: Object containing heart rate variability samples. latency: anyOf: - type: integer - type: 'null' title: '' description: Sleep latency in seconds. This is the time it took for the user to fall asleep after going to bed. light_sleep_duration: anyOf: - type: integer - type: 'null' title: '' description: Duration spent in light sleep in seconds. low_battery_alert: type: boolean title: '' description: Flag indicating if a low battery alert occurred. lowest_heart_rate: anyOf: - type: integer - type: 'null' title: '' description: 'Lowest heart rate during sleep. NOTE: this is the value calculated by ecore (based on 30-second samples) which is different from what is shown in the app. The app shows the minimum of aggregated 5-minute heart rate samples.' movement_30_sec: anyOf: - type: string - type: 'null' title: '' description: '30-second movement classification for the period where every character corresponds to: ''1'' = no motion, ''2'' = restless, ''3'' = tossing and turning ''4'' = active Example: "1143222134".' period: type: integer title: '' description: ECore sleep period identifier. readiness: anyOf: - $ref: '#/components/schemas/PublicReadiness' - type: 'null' title: '' description: Object containing the readiness details. readiness_score_delta: anyOf: - type: integer - type: 'null' title: '' description: Effect on readiness score caused by this sleep period. rem_sleep_duration: anyOf: - type: integer - type: 'null' title: '' description: Duration spent in REM sleep in seconds. restless_periods: anyOf: - type: integer - type: 'null' title: '' description: Number of restless periods during sleep. sleep_algorithm_version: anyOf: - $ref: '#/components/schemas/PublicSleepAlgorithmVersion' - type: 'null' title: '' description: Version of the sleep algorithm used to calculate the sleep data. sleep_analysis_reason: anyOf: - $ref: '#/components/schemas/PublicSleepAnalysisReason' - type: 'null' title: '' description: The reason for the creation or update of the latest version of this sleep. sleep_phase_30_sec: anyOf: - type: string - type: 'null' title: '' description: '30-second sleep phase classification for the period where every character corresponds to: ''1'' = deep sleep, ''2'' = light sleep, ''3'' = REM sleep ''4'' = awake. Example: "444423323441114".' sleep_phase_5_min: anyOf: - type: string - type: 'null' title: '' description: '5-minute sleep phase classification for the period where every character corresponds to: ''1'' = deep sleep, ''2'' = light sleep, ''3'' = REM sleep ''4'' = awake. Example: "444423323441114".' sleep_score_delta: anyOf: - type: integer - type: 'null' title: '' description: Effect on sleep score caused by this sleep period. time_in_bed: type: integer title: '' description: Duration spent in bed in seconds. total_sleep_duration: anyOf: - type: integer - type: 'null' title: '' description: Total sleep duration in seconds. type: anyOf: - $ref: '#/components/schemas/PublicSleepType' - type: 'null' title: '' description: Type of the sleep period. ring_id: anyOf: - type: string - type: 'null' title: Ring Id description: Encrypted identifier of the ring that produced this sleep data. app_sleep_phase_5_min: anyOf: - type: string - type: 'null' title: App Sleep Phase 5 Min description: "\n 5-minute sleep phase classification for the period\ \ aligned with what is shown in the app\n where every character\ \ corresponds to:\n '1' = deep sleep,\n '2' = light sleep,\n\ \ '3' = REM sleep\n '4' = awake.\n Example: \"444423323441114\"\ .\n NOTE: This field will be removed in the future after a transition\ \ period.\n " type: object required: - id - meta - bedtime_end - bedtime_start - day - low_battery_alert - period - time_in_bed title: PublicModifiedSleepModel x-cloud-only: true x-collection: publicsleepmodel x-owner: health-squad PublicMomentMood: type: string enum: - bad - worse - same - good - great title: PublicMomentMood description: Possible Moment moods. PublicMomentType: type: string enum: - breathing - meditation - nap - relaxation - rest - body_status title: PublicMomentType description: Possible Moment types. PublicReadiness: properties: contributors: $ref: '#/components/schemas/PublicReadinessContributors' title: '' description: Contributors of the readiness score. score: anyOf: - type: integer - type: 'null' title: '' description: Readiness score in range [1, 100]. temperature_deviation: anyOf: - type: number - type: 'null' title: '' description: Temperature deviation in degrees Celcius. temperature_trend_deviation: anyOf: - type: number - type: 'null' title: '' description: Temperature trend deviation in degrees Celcius. type: object required: - contributors title: PublicReadiness description: Object defining readiness. PublicReadinessContributors: properties: activity_balance: anyOf: - type: integer - type: 'null' title: '' description: Contribution of cumulative activity balance in range [1, 100]. body_temperature: anyOf: - type: integer - type: 'null' title: '' description: Contribution of body temperature in range [1, 100]. hrv_balance: anyOf: - type: integer - type: 'null' title: '' description: Contribution of heart rate variability balance in range [1, 100]. previous_day_activity: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous day's activity in range [1, 100]. previous_night: anyOf: - type: integer - type: 'null' title: '' description: Contribution of previous night's sleep in range [1, 100]. recovery_index: anyOf: - type: integer - type: 'null' title: '' description: Contribution of recovery index in range [1, 100]. resting_heart_rate: anyOf: - type: integer - type: 'null' title: '' description: Contribution of resting heart rate in range [1, 100]. sleep_balance: anyOf: - type: integer - type: 'null' title: '' description: Contribution of sleep balance in range [1, 100]. sleep_regularity: anyOf: - type: integer - type: 'null' title: '' description: Contribution of sleep regularity in range [1, 100]. type: object title: PublicReadinessContributors description: Object defining readiness score contributors. PublicRestModeEpisode: properties: tags: items: type: string type: array title: '' description: Tags selected for the episode. timestamp: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp indicating when the episode occurred. type: object required: - tags - timestamp title: PublicRestModeEpisode description: Object defining a public Rest Mode episode. PublicRestModePeriod: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. end_day: anyOf: - $ref: '#/components/schemas/ISODate' - type: 'null' title: '' description: End date of rest mode. end_time: anyOf: - $ref: '#/components/schemas/LocalizedDateTime' - type: 'null' title: '' description: Timestamp when rest mode ended. episodes: items: $ref: '#/components/schemas/PublicRestModeEpisode' type: array title: '' description: Collection of episodes during rest mode, consisting of tags. start_day: $ref: '#/components/schemas/ISODate' title: '' description: Start date of rest mode. start_time: anyOf: - $ref: '#/components/schemas/LocalizedDateTime' - type: 'null' title: '' description: Timestamp when rest mode ended. type: object required: - id - meta - episodes - start_day title: PublicRestModePeriod description: Rest mode episode information. x-cloud-only: true x-collection: publicrestmodeperiod x-owner: health-squad PublicRingBatteryLevelRow: properties: timestamp: $ref: '#/components/schemas/UtcDateTime' title: '' description: Timestamp of the discrete sample. timestamp_unix: type: integer title: '' description: Timestamp of the discrete sample as unix time in milliseconds. charging: anyOf: - type: boolean - type: 'null' title: '' description: Flag indicating if the ring was charging. in_charger: anyOf: - type: boolean - type: 'null' title: '' description: Flag indicating if the ring was in charger. level: type: integer title: '' description: Ring battery level percentage. These values are within [0, 100]. type: object required: - timestamp - timestamp_unix - level title: PublicRingBatteryLevelRow description: Object defining a ring battery level event. x-cloud-only: true x-collection: publicringbatterylevel x-owner: app-platform PublicRingColor: type: string enum: - brushed_silver - glossy_black - glossy_gold - glossy_white - gucci - matt_gold - rose - silver - stealth_black - titanium - titanium_and_gold - cloud - petal - midnight - tide title: PublicRingColor description: Possible ring colors. PublicRingConfiguration: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. color: anyOf: - $ref: '#/components/schemas/PublicRingColor' - type: 'null' title: '' description: Color of the ring. design: anyOf: - $ref: '#/components/schemas/PublicRingDesign' - type: 'null' title: '' description: Design of the ring. firmware_version: anyOf: - type: string - type: 'null' title: '' description: Firmware version of the ring. hardware_type: anyOf: - $ref: '#/components/schemas/PublicRingHardwareType' - type: 'null' title: '' description: Hardware type of the ring. set_up_at: anyOf: - $ref: '#/components/schemas/UtcDateTime' - type: 'null' title: '' description: UTC timestamp indicating when the ring was set up. size: anyOf: - type: integer - type: 'null' title: '' description: US size of the ring. type: object required: - id - meta title: PublicRingConfiguration description: Ring configuration. x-cloud-only: true x-collection: publicringconfiguration x-owner: app-platform PublicRingDesign: type: string enum: - heritage - balance - balance_diamond - horizon - ceramic title: PublicRingDesign description: Possible ring designs. PublicRingHardwareType: type: string enum: - gen1 - gen2 - gen2m - gen3 - gen4 title: PublicRingHardwareType description: Possible ring hardware types. PublicSample: properties: interval: type: number title: '' description: Interval in seconds between the sampled items. items: $ref: '#/components/schemas/Array_Union_float__NoneType__Bits64_' title: '' description: Recorded sample items. timestamp: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp when the sample recording started. type: object required: - interval - items - timestamp title: PublicSample description: Object defining a recorded sample. PublicSession: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. day: $ref: '#/components/schemas/ISODate' title: '' description: The date when the session occurred. end_datetime: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp indicating when the Moment ended. heart_rate: anyOf: - $ref: '#/components/schemas/PublicSample' - type: 'null' title: '' description: Recorded heart rate samples during the Moment. heart_rate_variability: anyOf: - $ref: '#/components/schemas/PublicSample' - type: 'null' title: '' description: Recorded heart rate variability samples during the Moment. mood: anyOf: - $ref: '#/components/schemas/PublicMomentMood' - type: 'null' title: '' description: User-selected mood for the Moment. motion_count: anyOf: - $ref: '#/components/schemas/PublicSample' - type: 'null' title: '' description: Recorded motion count samples during the Moment. start_datetime: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp indicating when the Moment ended. type: $ref: '#/components/schemas/PublicMomentType' title: '' description: Type of the Moment. type: object required: - id - meta - day - end_datetime - start_datetime - type title: PublicSession description: Public model defining a recorded Session. x-cloud-only: true x-collection: publicsession x-owner: health-squad PublicSleepAlgorithmVersion: type: string enum: - v1 - v2 title: PublicSleepAlgorithmVersion description: 'Oura Sleep Staging Algorithms. v1 = original aka legacy aka OSSA 1.0, v2 = latest sleep algorithm' PublicSleepAnalysisReason: type: string enum: - foreground_sleep_analysis - bedtime_edit title: PublicSleepAnalysisReason description: Possible sleep analysis reasons. PublicSleepContributors: properties: deep_sleep: anyOf: - type: integer - type: 'null' title: '' description: Contribution of deep sleep in range [1, 100]. efficiency: anyOf: - type: integer - type: 'null' title: '' description: Contribution of sleep efficiency in range [1, 100]. latency: anyOf: - type: integer - type: 'null' title: '' description: Contribution of sleep latency in range [1, 100]. rem_sleep: anyOf: - type: integer - type: 'null' title: '' description: Contribution of REM sleep in range [1, 100]. restfulness: anyOf: - type: integer - type: 'null' title: '' description: Contribution of sleep restfulness in range [1, 100]. timing: anyOf: - type: integer - type: 'null' title: '' description: Contribution of sleep timing in range [1, 100]. total_sleep: anyOf: - type: integer - type: 'null' title: '' description: Contribution of total sleep in range [1, 100]. type: object title: PublicSleepContributors description: Object defining sleep score contributors. PublicSleepTime: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. day: $ref: '#/components/schemas/ISODate' title: '' description: Corresponding day for the sleep time. optimal_bedtime: anyOf: - $ref: '#/components/schemas/PublicSleepTimeWindow' - type: 'null' title: '' description: Optimal bedtime. recommendation: anyOf: - $ref: '#/components/schemas/PublicSleepTimeRecommendation' - type: 'null' title: '' description: Recommended action for bedtime. status: anyOf: - $ref: '#/components/schemas/PublicSleepTimeStatus' - type: 'null' title: '' description: Sleep time status; used to inform sleep time recommendation. type: object required: - id - meta - day title: PublicSleepTime description: Suggested bedtime for the user. x-cloud-only: true x-collection: publicsleeptime x-owner: app-platform PublicSleepTimeRecommendation: type: string enum: - improve_efficiency - earlier_bedtime - later_bedtime - earlier_wake_up_time - later_wake_up_time - follow_optimal_bedtime title: PublicSleepTimeRecommendation description: Possible public SleepTime recommendation. PublicSleepTimeStatus: type: string enum: - not_enough_nights - not_enough_recent_nights - bad_sleep_quality - only_recommended_found - optimal_found title: PublicSleepTimeStatus description: Possible public SleepTime status. PublicSleepTimeWindow: properties: day_tz: type: integer title: '' description: Timezone offset in second from GMT of the day end_offset: type: integer title: '' description: End offset from midnight in second start_offset: type: integer title: '' description: Start offset from midnight in second type: object required: - day_tz - end_offset - start_offset title: PublicSleepTimeWindow description: Object defining sleep time window PublicSleepType: type: string enum: - deleted - sleep - long_sleep - late_nap - rest title: PublicSleepType description: 'Possible sleep period types. ''deleted'' = deleted sleep by user. ''sleep'' = user confirmed sleep / nap, min 15 minutes, max 3 hours, contributes to daily scores ''late_nap'' = user confirmed sleep / nap, min 15 minutes, ended after sleep day change (6 pm), contributes to next days daily scores ''long_sleep'' = sleep that is long enough (>3h) to automatically contribute to daily scores ''rest'' = Falsely detected sleep / nap, rejected in confirm prompt by user' PublicSpo2AggregatedValues: properties: average: type: number title: '' description: Average of spo2. type: object required: - average title: PublicSpo2AggregatedValues description: Object defining public spo2 aggregated values. PublicVO2Max: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. day: $ref: '#/components/schemas/ISODate' title: '' description: Day that the estimate belongs to. timestamp: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp indicating when the estimate was created. vo2_max: type: integer title: '' description: VO2 max value. type: object required: - id - meta - day - timestamp - vo2_max title: PublicVO2Max description: VO2Max estimate. x-cloud-only: true x-collection: publicvo2max x-owner: health-squad PublicWorkout: properties: id: type: string minLength: 1 title: '' description: Unique identifier of the object. meta: $ref: '#/components/schemas/Metadata' title: '' description: Meta data of the object. activity: type: string title: '' description: Type of the workout activity. calories: anyOf: - type: number - type: 'null' title: '' description: Energy burned in kilocalories during the workout. day: $ref: '#/components/schemas/ISODate' title: '' description: Day when the workout occurred. distance: anyOf: - type: number - type: 'null' title: '' description: Distance traveled in meters during the workout. end_datetime: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp indicating when the workout ended. intensity: $ref: '#/components/schemas/PublicWorkoutIntensity' title: '' description: Intensity of the workout. label: anyOf: - type: string - type: 'null' title: '' description: User-defined label for the workout. source: $ref: '#/components/schemas/PublicWorkoutSource' title: '' description: Possible workout sources. start_datetime: $ref: '#/components/schemas/LocalizedDateTime' title: '' description: Timestamp indicating when the workout started. type: object required: - id - meta - activity - day - end_datetime - intensity - source - start_datetime title: PublicWorkout description: Public model for Workout. x-cloud-only: true x-collection: publicworkout x-owner: movement-squad PublicWorkoutIntensity: type: string enum: - easy - moderate - hard title: PublicWorkoutIntensity description: Possible workout intensities. PublicWorkoutSource: type: string enum: - manual - autodetected - confirmed - workout_heart_rate title: PublicWorkoutSource description: Possible workout sources. ResilienceContributors: properties: sleep_recovery: type: number title: Sleep Recovery description: 'Sleep recovery contributor to the resilience score. Range: [0, 100]' daytime_recovery: type: number title: Daytime Recovery description: 'Daytime recovery contributor to the resilience score. Range: [0, 100]' stress: type: number title: Stress description: 'Stress contributor to the resilience score. Range: [0, 100]' type: object required: - sleep_recovery - daytime_recovery - stress title: ResilienceContributors TagModel: properties: id: type: string title: Id day: type: string format: date title: Day description: Day that the note belongs to. text: anyOf: - type: string - type: 'null' title: Text description: Textual contents of the note. timestamp: $ref: '#/components/schemas/LocalDateTime' description: Timestamp of the note. tags: items: type: string type: array title: Tags description: Selected tags for the tag. type: object required: - id - day - text - timestamp - tags title: TagModel description: 'A TagModel maps to an ASSANote. An ASSANote in ExtAPIV2 is called a Tag A TagModel will be populated by data from an ASSANote The fields in the TagModel map to fields in an ASSANote' TimeSeriesResponseDict: properties: data: items: additionalProperties: true type: object type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data title: TimeSeriesResponseDict TimeSeriesResponse_PublicHeartRateRow_: properties: data: items: $ref: '#/components/schemas/PublicHeartRateRow' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data title: TimeSeriesResponse[PublicHeartRateRow] TimeSeriesResponse_PublicInterbeatIntervalRow_: properties: data: items: $ref: '#/components/schemas/PublicInterbeatIntervalRow' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data title: TimeSeriesResponse[PublicInterbeatIntervalRow] TimeSeriesResponse_PublicRingBatteryLevelRow_: properties: data: items: $ref: '#/components/schemas/PublicRingBatteryLevelRow' type: array title: Data next_token: anyOf: - type: string - type: 'null' title: Next Token type: object required: - data title: TimeSeriesResponse[PublicRingBatteryLevelRow] UpdateWebhookSubscriptionRequest: properties: verification_token: type: string title: Verification Token callback_url: anyOf: - type: string - type: 'null' title: Callback Url event_type: anyOf: - $ref: '#/components/schemas/WebhookOperation' - type: 'null' data_type: anyOf: - $ref: '#/components/schemas/ExtApiV2DataType' - type: 'null' type: object required: - verification_token title: UpdateWebhookSubscriptionRequest UtcDateTime: type: string ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError WebhookOperation: type: string enum: - create - update - delete title: WebhookOperation WebhookSubscriptionModel: properties: id: type: string format: uuid4 title: Id callback_url: type: string title: Callback Url event_type: $ref: '#/components/schemas/WebhookOperation' data_type: $ref: '#/components/schemas/ExtApiV2DataType' expiration_time: type: string format: date-time title: Expiration Time type: object required: - id - callback_url - event_type - data_type - expiration_time title: WebhookSubscriptionModel