Create a new user
curl --request POST \
--url https://api.onvy.health/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"language": "<string>",
"tz_offset": 123,
"firstname": "<string>",
"lastname": "<string>",
"measurement_unit": "metric",
"birthday": "2023-12-25",
"height": 123,
"weight": 123,
"thresholds": {
"ftp": 123,
"lthr": 123,
"mhr": 123
},
"location": {
"lat": 123,
"lon": 123
},
"coach_config": {
"enabled": true
}
}
'import requests
url = "https://api.onvy.health/users"
payload = {
"id": "<string>",
"language": "<string>",
"tz_offset": 123,
"firstname": "<string>",
"lastname": "<string>",
"measurement_unit": "metric",
"birthday": "2023-12-25",
"height": 123,
"weight": 123,
"thresholds": {
"ftp": 123,
"lthr": 123,
"mhr": 123
},
"location": {
"lat": 123,
"lon": 123
},
"coach_config": { "enabled": True }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
language: '<string>',
tz_offset: 123,
firstname: '<string>',
lastname: '<string>',
measurement_unit: 'metric',
birthday: '2023-12-25',
height: 123,
weight: 123,
thresholds: {ftp: 123, lthr: 123, mhr: 123},
location: {lat: 123, lon: 123},
coach_config: {enabled: true}
})
};
fetch('https://api.onvy.health/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onvy.health/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'language' => '<string>',
'tz_offset' => 123,
'firstname' => '<string>',
'lastname' => '<string>',
'measurement_unit' => 'metric',
'birthday' => '2023-12-25',
'height' => 123,
'weight' => 123,
'thresholds' => [
'ftp' => 123,
'lthr' => 123,
'mhr' => 123
],
'location' => [
'lat' => 123,
'lon' => 123
],
'coach_config' => [
'enabled' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.onvy.health/users"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"language\": \"<string>\",\n \"tz_offset\": 123,\n \"firstname\": \"<string>\",\n \"lastname\": \"<string>\",\n \"measurement_unit\": \"metric\",\n \"birthday\": \"2023-12-25\",\n \"height\": 123,\n \"weight\": 123,\n \"thresholds\": {\n \"ftp\": 123,\n \"lthr\": 123,\n \"mhr\": 123\n },\n \"location\": {\n \"lat\": 123,\n \"lon\": 123\n },\n \"coach_config\": {\n \"enabled\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.onvy.health/users")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"language\": \"<string>\",\n \"tz_offset\": 123,\n \"firstname\": \"<string>\",\n \"lastname\": \"<string>\",\n \"measurement_unit\": \"metric\",\n \"birthday\": \"2023-12-25\",\n \"height\": 123,\n \"weight\": 123,\n \"thresholds\": {\n \"ftp\": 123,\n \"lthr\": 123,\n \"mhr\": 123\n },\n \"location\": {\n \"lat\": 123,\n \"lon\": 123\n },\n \"coach_config\": {\n \"enabled\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onvy.health/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"language\": \"<string>\",\n \"tz_offset\": 123,\n \"firstname\": \"<string>\",\n \"lastname\": \"<string>\",\n \"measurement_unit\": \"metric\",\n \"birthday\": \"2023-12-25\",\n \"height\": 123,\n \"weight\": 123,\n \"thresholds\": {\n \"ftp\": 123,\n \"lthr\": 123,\n \"mhr\": 123\n },\n \"location\": {\n \"lat\": 123,\n \"lon\": 123\n },\n \"coach_config\": {\n \"enabled\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"language": "<string>",
"tz_offset": 123,
"firstname": "<string>",
"lastname": "<string>",
"measurement_unit": "metric",
"gender": "male",
"birthday": "2023-12-25",
"height": 123,
"weight": 123,
"thresholds": {
"ftp": 123,
"lthr": 123,
"mhr": 123
},
"location": {
"lat": 123,
"lon": 123
},
"coach_config": {
"enabled": true
},
"data_syncs": [
{
"data_type": "auth",
"sync_type": "historical",
"provider": "GARMIN",
"status": "pending",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}users
Create a new user
Create a new user in the system
POST
/
users
Create a new user
curl --request POST \
--url https://api.onvy.health/users \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"language": "<string>",
"tz_offset": 123,
"firstname": "<string>",
"lastname": "<string>",
"measurement_unit": "metric",
"birthday": "2023-12-25",
"height": 123,
"weight": 123,
"thresholds": {
"ftp": 123,
"lthr": 123,
"mhr": 123
},
"location": {
"lat": 123,
"lon": 123
},
"coach_config": {
"enabled": true
}
}
'import requests
url = "https://api.onvy.health/users"
payload = {
"id": "<string>",
"language": "<string>",
"tz_offset": 123,
"firstname": "<string>",
"lastname": "<string>",
"measurement_unit": "metric",
"birthday": "2023-12-25",
"height": 123,
"weight": 123,
"thresholds": {
"ftp": 123,
"lthr": 123,
"mhr": 123
},
"location": {
"lat": 123,
"lon": 123
},
"coach_config": { "enabled": True }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
language: '<string>',
tz_offset: 123,
firstname: '<string>',
lastname: '<string>',
measurement_unit: 'metric',
birthday: '2023-12-25',
height: 123,
weight: 123,
thresholds: {ftp: 123, lthr: 123, mhr: 123},
location: {lat: 123, lon: 123},
coach_config: {enabled: true}
})
};
fetch('https://api.onvy.health/users', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onvy.health/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'language' => '<string>',
'tz_offset' => 123,
'firstname' => '<string>',
'lastname' => '<string>',
'measurement_unit' => 'metric',
'birthday' => '2023-12-25',
'height' => 123,
'weight' => 123,
'thresholds' => [
'ftp' => 123,
'lthr' => 123,
'mhr' => 123
],
'location' => [
'lat' => 123,
'lon' => 123
],
'coach_config' => [
'enabled' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.onvy.health/users"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"language\": \"<string>\",\n \"tz_offset\": 123,\n \"firstname\": \"<string>\",\n \"lastname\": \"<string>\",\n \"measurement_unit\": \"metric\",\n \"birthday\": \"2023-12-25\",\n \"height\": 123,\n \"weight\": 123,\n \"thresholds\": {\n \"ftp\": 123,\n \"lthr\": 123,\n \"mhr\": 123\n },\n \"location\": {\n \"lat\": 123,\n \"lon\": 123\n },\n \"coach_config\": {\n \"enabled\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.onvy.health/users")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"language\": \"<string>\",\n \"tz_offset\": 123,\n \"firstname\": \"<string>\",\n \"lastname\": \"<string>\",\n \"measurement_unit\": \"metric\",\n \"birthday\": \"2023-12-25\",\n \"height\": 123,\n \"weight\": 123,\n \"thresholds\": {\n \"ftp\": 123,\n \"lthr\": 123,\n \"mhr\": 123\n },\n \"location\": {\n \"lat\": 123,\n \"lon\": 123\n },\n \"coach_config\": {\n \"enabled\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onvy.health/users")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"language\": \"<string>\",\n \"tz_offset\": 123,\n \"firstname\": \"<string>\",\n \"lastname\": \"<string>\",\n \"measurement_unit\": \"metric\",\n \"birthday\": \"2023-12-25\",\n \"height\": 123,\n \"weight\": 123,\n \"thresholds\": {\n \"ftp\": 123,\n \"lthr\": 123,\n \"mhr\": 123\n },\n \"location\": {\n \"lat\": 123,\n \"lon\": 123\n },\n \"coach_config\": {\n \"enabled\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"language": "<string>",
"tz_offset": 123,
"firstname": "<string>",
"lastname": "<string>",
"measurement_unit": "metric",
"gender": "male",
"birthday": "2023-12-25",
"height": 123,
"weight": 123,
"thresholds": {
"ftp": 123,
"lthr": 123,
"mhr": 123
},
"location": {
"lat": 123,
"lon": 123
},
"coach_config": {
"enabled": true
},
"data_syncs": [
{
"data_type": "auth",
"sync_type": "historical",
"provider": "GARMIN",
"status": "pending",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
OAuth bearer token for Health API authentication
Body
application/json
User creation data
User ID (customer-provided, unique per project)
User's preferred language
Timezone offset in seconds
Preferred measurement unit system
Available options:
metric, imperial Available options:
male, female, other Height in cm
Weight in kg
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
User created successfully
User ID (customer-provided, unique per project)
User's preferred language
Timezone offset in seconds
Preferred measurement unit system
Available options:
metric, imperial Available options:
male, female, other Height in cm
Weight in kg
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?