Rest API
introduction the intelliprove api is organised around rest http //en wikipedia org/wiki/representational state transfer our api has predictable resource oriented urls, accepts json encoded https //en wikipedia org/wiki/json request bodies, returns json encoded http //www json org/ responses, and uses standard http response codes, authentication, and verbs https //engine intelliprove com examples post https //engine intelliprove com/v2/users get https //engine intelliprove com/v2/users if you're new to this developer portal, we recommend starting with the product documentation docid\ d z1x fglae 0r7hcnuth to get familiar with the main product concepts and functionalities to integrate the plug in into your platform and get started performing face scans docid\ mw6gpbzekcj lzrqjll , follow our getting started docid\ qghldn2mla8w9rpkeigwn guide authentication the intelliprove api supports both api keys and jwt action tokens to authenticate http requests all api requests must be made over https http //en wikipedia org/wiki/http secure calls made over plain http will fail authentication and permission roles are defined per resource the api key provides full access, while an action token provides a temporary form of authentication only compatible with a selection of the api endpoints refer to the table below for an overview api keys api keys are distributed when you sign up for a plan with intelliprove they can't be created manually upon agreement, you'll receive at least two api keys development api keys, which can be used during development, are aliased with a " dev" suffix alias api key (non working examples) company name dev kuswnp2vrgcfw8xpyjzeqdh et!n ms ucyaety3 company name fwebpz9ckakb7pnk\@vgtkqdjzfq u2g\@gzu z74x api keys should be provided using header based api key authentication http headers x api key \<your api key> your api keys carry many privileges and have no expiry date, so be sure to keep them secure ! do not share your secret api keys in publicly accessible areas such as github, client side code, and so forth u ser linking when using api keys some api resources are user specific, which means they are tied to a user docid\ biupvixvhltbukklr2ati when accessing these resources with api key authentication , you must explicitly specify which user the request should apply to this is done by providing the external user id in the request specify the external user id using a query parameter "\&external user id=\<your external user id>" or, specify external user id using a body parameter request body { "user external id" "\<your external user id>", } how to provide the external user id depends on the type of endpoint each endpoint clearly specifies whether it should be provided as query parameter or body parameter action tokens action tokens can be created using the intelliprove api with a valid api key use the create user action token docid\ biupvixvhltbukklr2ati endpoint to do this unlike api keys, user action tokens are always linked to a user docid\ biupvixvhltbukklr2ati , specified when creating the action token provide the action token in your request using the header based token authentication http headers authorization token \<action token for user> when to use action tokens are specifically designed to be used in frontend code, as they have restricted access and automatically expire after a predefined timespan however, they may also be used in backend code for certain usecases action tokens can be used for selected api endpoints — an overview can be found in the table under authentication docid\ biupvixvhltbukklr2ati when using an action token, the external user id should not be specified in the request anymore, since it is already embedded in the token when using action tokens, always created the token right before a user performs an action in your front end – hence the name action token this action token can be used while the user is performing the action (for example, consult the results of a face scan) if a user leaves a page and does another action, a new action token should be created authentication summary api key action token scope full access to all data limited access to user specific data lifetime and creation created when you sign up for a plan does not expire created by you using your api key expires after a few hours recommended to create and use within the scope of a user's action(s) on a page of your application usage used for m2m communication used for performing action induced by the frontend link to user link manually via external user id automatically linked, external user id should not be passed in the request localisation unit systems intelliprove supports both the metric and imperial unit system for displaying data to users all data is stored in the metric system but can be converted to the imperial unit system if desired the preference can be set for your entire account as a customer, or per user if no preference is set, all responses default to the metric unit system order of unit system selection setting preference the preferred account wide unit system setting can be communicated with your customer success manager a user's preferred unit system can be set using the users https //docs intelliprove com/technical docs/rest api#users endpoints errors in general, status codes in the 2xx range indicate success codes in the 4xx range indicate an error that failed given the information provided (e g , a required parameter was omitted or the request format is invalid, etc ) codes in the 5xx range indicate an error with intelliprove’s servers status code description 200 ok everything worked as expected 204 no content the request is correct, but there is no content to be returned 400 bad request the request was unacceptable 401 not authorized no valid authentication provided 403 forbidden invalid permissions to perform the request 404 not found the request resource or endpoint does not exist 422 unprocessable one or more fields in the request body are invalid 500, 502, 503 server errors something went wrong on our end the 4xx and 5xx errors can be handled programmatically and include an error description that briefly explains the error reported error format { "detail" "user not found!" } an exception is made for the 422 errors, which give detailed information on which request parameter failed the validation validation error format { "detail" \[ { "loc" \[ "body", "data" ], "msg" "field required", "type" "value error missing" } ] } users the user object a user is a unique end user accessing intelliprove's services through your platform or app each user must be created once, enabling intelliprove to track their face scans and build a personalized user health profile when creating a user, you choose your own external user id (referred to as "external user id") make sure it is an url encoded value once created, you can reference users by their external user id user object properties description user id uuid unique, intelliprove internal user id, assigned to each end user external user id nullable string the unique id you choose when creating an intelliprove user stored in your own backend and used when requesting user data referred to as external user id in the documentation customer read only string your company's name, which the end user is linked to birth date nullable date object date of birth in yyyy mm dd format sex nullable string enum sex at birth values "m", "f" language nullable string enum two letter language code values "en", "nl", "fr", "da", "sv" preferred unit system nullable string enum the preferred unit system for this user values "metric", "imperial" note on external user ids we do not store the values you provide for the external user id directly we only store a hashed version of the value you provided this "security first" approach is great for privacy and safety, but it does limit us from returning the value of external user id back to you so make sure that you use a unique and persisted value for the external user id that you provide the user's email address could be a good example of this the external user id can be changed after creating a user see update existing user docid\ biupvixvhltbukklr2ati { "tab" "examples", "url" "https //engine intelliprove com/v2/users", "name" "create new user", "method" "post", "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "your api key" } ], "bodydataparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "value" "brecht test", "" "required" }, { "name" "birth date", "kind" "optional", "type" "string", "description" "user birth date in yyyy mm dd notation", "value" "1997 11 03", "" "1997 11 03" }, { "name" "sex", "kind" "optional", "type" "string", "description" "sex at birth value (m or f)", "value" "m", "" "m" }, { "name" "language", "kind" "optional", "type" "string", "description" "two letter language code for preferred user language (default en)", "children" \[] }, { "name" "preferred unit system", "kind" "optional", "type" "string", "description" "the preferred unit system for this user \\"metric\\" or \\"imperial\\"", "" "the preferred unit system for this user \\"metric\\" or \\"imperial\\"" } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "xr rbdktj3tm9mpxetuj", "language" "201", "code" "{\n \\"user id\\" \\"df55e9ab 77b9 4b32 bd83 d76de23f6f3d\\",\n \\"customer\\" \\"\<your company name>\\",\n \\"external user id\\" \\"your user id\\",\n \\"birth date\\" \\"1964 01 12\\",\n \\"sex\\" \\"m\\",\n \\"language\\" \\"en\\",\n \\"preferred unit system\\" \\"imperial\\"\n}", "customlabel" "" }, { "id" "tbozok npo3vfdxlbbih9", "language" "401", "code" "{\n \\"detail\\" \\"missing or invalid authentication credentials \\"\n}", "customlabel" "" } ], "selectedlanguageid" "xr rbdktj3tm9mpxetuj" }, "examples" { "languages" \[ { "id" "tx21iy5fxprfpr243fmyk", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "tx21iy5fxprfpr243fmyk" }, "description" "create a new user with the provided user details ", "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" true, "autogeneratedanchorslug" "create new user", "legacyhash" "srijp7z3akuf huzkhylb" } the external user id parameter is your own unique id for the user the language parameter can be used to set the user's preferred language if it is, this language will be used as default language for that user, e g when displaying widgets or for a plug in docid\ wcs2y1mg2pqnl4r4mgg z component, without having to explictly provide it there anymore { "name" "get user details", "method" "get", "url" "https //engine intelliprove com/v2/users", "description" "get user details by user id or external user id ", "tab" "examples", "examples" { "languages" \[ { "id" "bj8ks 8 oqu8g1kvjv0ik", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "bj8ks 8 oqu8g1kvjv0ik" }, "results" { "languages" \[ { "id" "mexa4 txpzuv r bx741v", "language" "200", "code" "{\n \\"user id\\" \\"df55e9ab 77b9 4b32 bd83 d76de23f6f3d\\",\n \\"customer\\" \\"\<customer name>\\",\n \\"birth date\\" \\"1964 01 12\\",\n \\"sex\\" \\"m\\",\n \\"weight\\" {\n \\"value\\" 91,\n \\"unit\\" \\"kg\\"\n },\n \\"height\\" {\n \\"value\\" 183,\n \\"unit\\" \\"cm\\"\n },\n \\"hypertension\\" 1,\n \\"language\\" \\"en\\",\n \\"preferred unit system\\" \\"metric\\"\n}", "customlabel" "" }, { "id" " peprbnt2vyuklv8sr4hs", "language" "401", "code" "{\n \\"detail\\" \\"missing or invalid authentication credentials \\"\n}", "customlabel" "" } ], "selectedlanguageid" "mexa4 txpzuv r bx741v" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get user details", "legacyhash" "sosqsibk0hktsbii8bsdy" } { "name" "update existing user", "method" "put", "url" "https //engine intelliprove com/v2/users/\ user id", "description" "update a user's information all fields that are not provided in the body will be left unchanged ", "tab" "examples", "examples" { "languages" \[ { "id" "bj8ks 8 oqu8g1kvjv0ik", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "bj8ks 8 oqu8g1kvjv0ik" }, "results" { "languages" \[ { "id" "mexa4 txpzuv r bx741v", "language" "200", "code" "{\n \\"user id\\" \\"df55e9ab 77b9 4b32 bd83 d76de23f6f3d\\",\n \\"customer\\" \\"\<customer name>\\",\n \\"birth date\\" \\"1964 01 15\\",\n \\"sex\\" \\"f\\",\n \\"language\\" \\"nl\\",\n \\"preferred unit system\\" \\"metric\\"\n}", "customlabel" "" }, { "id" "2ynlhmc4b7yo8qe3utw3t", "language" "401", "code" "{\n \\"detail\\" \\"missing or invalid authentication credentials \\"\n}", "customlabel" "" } ], "selectedlanguageid" "mexa4 txpzuv r bx741v" }, "request" { "pathparameters" \[ { "name" "user id", "kind" "required", "type" "string", "description" "intelliprove internal user id obtain via 'get user details' endpoint ", "" "intelliprove internal user id obtain via 'get user details' endpoint " } ], "queryparameters" \[], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[ { "name" "external user id", "kind" "optional", "type" "string", "description" "external user id, chosen when creating the user", "" "optional" }, { "name" "birth date", "kind" "optional", "type" "string", "description" "user birth date in yyyy mm dd notation", "children" \[] }, { "name" "sex", "kind" "optional", "type" "string", "description" "sex at birth value (m or f)", "children" \[] }, { "name" "language", "kind" "optional", "type" "string", "description" "two letter language code for preferred user language (default en)", "children" \[] } ], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" false, "autogeneratedanchorslug" "update existing user", "legacyhash" "woukifraxsm hx5ftubtf" } you can obtain the intelliprove user id via the the 'get user details' api endpoint, providing your own unique id for the user via the external user id parameter { "tab" "examples", "url" "https //engine intelliprove com/v2/users/authenticate", "name" "create user action token", "method" "post", "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" } ], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "kctn4gzlot sdn t cyop", "code" "{\n \\"token\\" \\"\<action token>\\"\n}", "language" "201", "customlabel" "" }, { "id" "a5j1ma31hq8yya mchn3o", "language" "401", "code" "{\n \\"detail\\" \\"missing or invalid authentication credentials \\"\n}", "customlabel" "" } ], "selectedlanguageid" "kctn4gzlot sdn t cyop" }, "examples" { "languages" \[ { "id" "s0mcduwkinbnrg9pa thb", "code" "", "language" "json", "customlabel" "request body" } ], "selectedlanguageid" "s0mcduwkinbnrg9pa thb" }, "description" "create a new action token for a user based on the intelliprove user id or your own (external) user id ", "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" true, "autogeneratedanchorslug" "create user action token", "legacyhash" "mzkih1ci380ebuho46bao" } { "tab" "examples", "url" "https //engine intelliprove com/v2/users/", "name" "delete user", "method" "delete", "request" { "pathparameters" \[], "queryparameters" \[ { "name" "user id", "kind" "required", "type" "string", "description" "intelliprove internal user id obtain via 'get user details' endpoint ", "" "intelliprove internal user id obtain via 'get user details' endpoint " } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "kctn4gzlot sdn t cyop", "code" "", "language" "204", "customlabel" "" }, { "id" "3hfdvo9hjtkesgfjmuccr", "language" "401", "code" "{\n \\"detail\\" \\"missing or invalid authentication credentials \\"\n}", "customlabel" "" } ], "selectedlanguageid" "kctn4gzlot sdn t cyop" }, "examples" { "languages" \[ { "id" "s0mcduwkinbnrg9pa thb", "code" "", "language" "json", "customlabel" "request body" } ], "selectedlanguageid" "s0mcduwkinbnrg9pa thb" }, "description" "delete all user data, including user profiles and face scan results, based on the user id ", "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" false, "autogeneratedanchorslug" "delete user", "legacyhash" "an8xrbtqry7dtqwb2jrzi" } face scan to request a face scan url, the user performing the scan must be created with intelliprove this only needs to be done once for each user and can be done with the create new user docid\ biupvixvhltbukklr2ati api endpoint to create the user, you must provide a unique reference for the user as a query parameter external user id { "name" "get face scan url", "method" "get", "url" "https //engine intelliprove com/v2/userjourneys/scan", "description" "get the face scan url for a specific user based on the user id or external user reference ", "tab" "examples", "examples" { "languages" \[ { "id" "se4aed7spl3rfavynybk9", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "se4aed7spl3rfavynybk9" }, "results" { "languages" \[ { "id" "wzseovy zhyimuelnr d", "language" "200", "code" "\\"\<facescan url>\\"", "customlabel" "" }, { "id" "shm5uzeclvrg1hjjdzzbk", "language" "401", "code" "{\n \\"detail\\" \\"missing or invalid authentication credentials \\"\n}", "customlabel" "" } ], "selectedlanguageid" "wzseovy zhyimuelnr d" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" }, { "name" "language", "kind" "optional", "type" "string", "description" "two letter language code for overriding user level preferred language", "children" \[] }, { "name" "expire at", "kind" "optional", "type" "string", "description" "expiry datetime timestamp in iso format (e g 2025 04 01t00 00 00)", "" "expiry datetime timestamp in iso format (e g 2025 04 01t00 00 00)" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get face scan url", "legacyhash" "ewe zy3ib2roakf0oshx8" } note the url provided in the response may change over time this applies not only to the action token , which is unique for each request, but also to the subdomain, which may update with new versions of the plug in to prevent issues, avoid hardcoding any part of the url always use the full response url as provided additionally, ensure that your html security headers (e g , content security policy headers) allow all intelliprove com subdomains this is essential for the proper functioning of the intelliprove plug in and future updates please note that the language , when specified here, overrides the default language set for the user, specified when creating the user docid\ biupvixvhltbukklr2ati biomarkers { "name" "get face scan biomarkers", "method" "get", "url" "https //engine intelliprove com/v2/face scans/\ face scan id", "description" "get biomarkers for a specific face scan, using the face scan id ", "tab" "examples", "examples" { "languages" \[ { "id" "zxqm3vyigfrnc3vs3312k", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "zxqm3vyigfrnc3vs3312k" }, "results" { "languages" \[ { "id" "9bmcznqvm1yn2yyvkhgyu", "language" "200", "code" "{\n \\"face scan id\\" \\"ea23e5cd 22c8 1e54 bd82 e89de12a7e1b\\"\n \\"heart rate\\" 56,\n \\"respiratory rate\\" 12,\n \\"heart rate variability\\" 123,\n \\"resonant breathing score\\" 18,\n \\"systolic blood pressure\\" 128,\n \\"diastolic blood pressure\\" 77,\n \\"timestamp epoch\\" 1742919213,\n \\"timestamp\\" \\"2025 03 25t17 13 33 147258+01 00\\"\n}", "customlabel" "" } ], "selectedlanguageid" "9bmcznqvm1yn2yyvkhgyu" }, "request" { "pathparameters" \[ { "name" "face scan id", "kind" "required", "type" "string", "description" "face scan uuid", "children" \[] } ], "queryparameters" \[ { "name" "external user id", "kind" "optional", "type" "string", "description" "external user id, chosen when creating the user", "" "external user id" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "query parameter", "value" "queryparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get face scan biomarkers", "legacyhash" "d7vcqczbuze 0vvykn8ut" } { "name" "get multiple face scan biomarkers", "method" "get", "url" "https //engine intelliprove com/v2/face scans/", "description" "get the biomarkers from multiple face scans of a user by specifying start date, end date and count the user is specified through the action token ", "tab" "examples", "examples" { "languages" \[ { "id" "zxqm3vyigfrnc3vs3312k", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "zxqm3vyigfrnc3vs3312k" }, "results" { "languages" \[ { "id" "9bmcznqvm1yn2yyvkhgyu", "language" "200", "customlabel" "", "code" "\[\n {\n \\"face scan id\\" \\"ea23e5cd 22c8 1e54 bd82 e89de12a7e1b\\"\n \\"heart rate\\" 65,\n \\"respiratory rate\\" 12,\n \\"heart rate variability\\" 123,\n \\"resonant breathing score\\" 18,\n \\"systolic blood pressure\\" 128,\n \\"diastolic blood pressure\\" 77,\n \\"timestamp epoch\\" 1742919213,\n \\"timestamp\\" \\"2025 03 25t17 13 33 147258+01 00\\"\n },\n \n]" } ], "selectedlanguageid" "9bmcznqvm1yn2yyvkhgyu" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "start", "kind" "optional", "type" "string", "description" "start date, all returned face scans will be after this date time iso format", "" "start date, all returned face scans will be after this date time iso format" }, { "name" "end", "kind" "optional", "type" "string", "description" "end date, all returned face scans will be before this date time iso format", "" "end date, all returned face scans will be before this date time iso format" }, { "name" "order", "kind" "optional", "type" "string", "description" "order of the returned face scans 'asc' or 'desc' default 'asc'", "" "order of the returned face scans 'asc' or 'desc' default 'asc'" }, { "name" "count", "kind" "optional", "type" "string", "description" "max number of face scans to return defaults to 10 ", "" "max number of face scans to return defaults to 10 " }, { "name" "external user id", "kind" "optional", "type" "string", "description" "external user id, chosen when creating the user", "" "external user id" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "query parameter", "value" "queryparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get multiple face scan biomarkers", "legacyhash" "ujux3l ysmpdxtt1njkjs" } { "name" "get latest face scan biomarkers", "method" "get", "url" "https //engine intelliprove com/v2/face scans/latest", "description" "get the biomarkers from the latest face scan(s) of a user the user is specified through the action token the count can be specified to request more than one face scan ", "tab" "examples", "examples" { "languages" \[ { "id" "zxqm3vyigfrnc3vs3312k", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "zxqm3vyigfrnc3vs3312k" }, "results" { "languages" \[ { "id" "9bmcznqvm1yn2yyvkhgyu", "language" "200", "customlabel" "", "code" "\[\n {\n \\"face scan id\\" \\"ea23e5cd 22c8 1e54 bd82 e89de12a7e1b\\"\n \\"heart rate\\" 65,\n \\"respiratory rate\\" 12,\n \\"heart rate variability\\" 123,\n \\"resonant breathing score\\" 18,\n \\"systolic blood pressure\\" 128,\n \\"diastolic blood pressure\\" 77,\n \\"timestamp epoch\\" 1742919213,\n \\"timestamp\\" \\"2025 03 25t17 13 33 147258+01 00\\"\n },\n \n]" } ], "selectedlanguageid" "9bmcznqvm1yn2yyvkhgyu" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "count", "kind" "optional", "type" "string", "description" "last x number of measurements \ndefault = 1", "" "last x number of measurements \ndefault = 1" }, { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "query parameter", "value" "queryparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get latest face scan biomarkers", "legacyhash" "n leaubtadopssmmfyo4f" } metrics use this endpoint to get health metric data for users { "name" "health metrics", "method" "get", "url" "https //engine intelliprove com/v2/metrics", "description" "get the metrics for a single user ", "tab" "examples", "examples" { "languages" \[ { "id" "ly k8enkjy3xdfr9fl8n0", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "ly k8enkjy3xdfr9fl8n0" }, "results" { "languages" \[ { "id" "exkhp1cp6mnfc8lacxnpm", "language" "200", "code" "{\n \\"metrics\\" {\n \\"energy balance\\" {\n \\"score\\" 82 13,\n \\"confidence\\" 80 0\n },\n \\"general fitness\\" {\n \\"score\\" 71 08,\n \\"confidence\\" 60 0\n },\n \\"hypertension\\" {\n \\"score\\" 92 0,\n \\"confidence\\" 33 33\n },\n \\"mental health risk\\" {\n \\"score\\" 49 85,\n \\"confidence\\" 66 67\n },\n \\"mental stress\\" {\n \\"score\\" 86 56,\n \\"confidence\\" 70 0\n },\n \\"sleep quality\\" null\n },\n \\"last update\\" \\"2025 10 13t14 49 02 111245+02 00\\"\n}", "customlabel" "" }, { "id" "dag4prqg3ihndon3niidp", "language" "204", "code" "", "customlabel" "" }, { "id" "b3 mcfszqgfgf sxoc8o0", "language" "400", "code" "{\n \\"detail\\" \\"invalid uuid provided!\\"\n}", "customlabel" "" } ], "selectedlanguageid" "exkhp1cp6mnfc8lacxnpm" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "query parameter", "value" "queryparameters" }, "hastryitout" true, "autogeneratedanchorslug" "health metrics", "legacyhash" "wp0opbizxhp21hjzjtzsz" } all score and confidence values are percentages between 0 and 100, accurate to 2 decimal places if a metric is null , like sleep quality in the example above, no data is available for this user on this metric user health profiles get scores related to the different health topics docid\ z2qnaeg2ru 3t3hbhw8rh { "name" "get wellbeing scores", "method" "get", "url" "https //engine intelliprove com/v2/userprofiles/wellbeing", "description" "get all the wellbeing scores for a user a score is a value between 0 100, representing a percentage, per profile the user is specified through the action token ", "tab" "examples", "examples" { "languages" \[ { "id" "se4aed7spl3rfavynybk9", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "se4aed7spl3rfavynybk9" }, "results" { "languages" \[ { "id" "wzseovy zhyimuelnr d", "language" "200", "customlabel" "", "code" "{\n \\"mental\\" \<mental score>,\n \\"physical\\" \<physical score>,\n \\"energy sleep\\" \<energy sleep score>\n}" } ], "selectedlanguageid" "wzseovy zhyimuelnr d" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "query parameter", "value" "queryparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get wellbeing scores", "legacyhash" "kr4eerzywudoqsu5hptar" } important note on the scores a score around 50% means average for that user, taking into account their age and sex a score below 50% is considered below average, i e suboptimal a secore above 50% is considered above average, i e optimal take this into account when visualizing the scores in your app questions the following endpoints are related to questions regarding user details such as age, weight or sex these are used build an accurate baseline profile for each user and are essential for the calculation of metrics questions during the face scan allow the user to directly provide this information however, if you already have this information, you can provide it to us via the api the question will then not be asked in the face scan flow anymore refer to the plug in components docid\ djhyobp 3w 87jkk0o1ho documentation for more information { "name" "get all question lookup keys", "method" "get", "url" "https //engine intelliprove com/v2/questions/all", "description" "get a list of all supported question lookup keys ", "tab" "examples", "examples" { "languages" \[ { "id" "ly k8enkjy3xdfr9fl8n0", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "ly k8enkjy3xdfr9fl8n0" }, "results" { "languages" \[ { "id" "exkhp1cp6mnfc8lacxnpm", "language" "200", "customlabel" "", "code" "\[\n \\"height\\",\n \\"weight\\",\n \\"balance coordination\\",\n \\"hours sport week\\",\n \\"daily activities\\",\n \\"nightly wake ups\\",\n \\"feeling stressed last month\\",\n \\"struggling irritations last month\\",\n \\"things your way last month\\",\n \\"average sleep hours\\",\n \n]" } ], "selectedlanguageid" "exkhp1cp6mnfc8lacxnpm" }, "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get all question lookup keys", "legacyhash" "3ippdegg0h4lbuqgutkm2" } this endpoint returns all availble lookup keys and is not customer or user specific { "name" "save question answer", "method" "post", "url" "https //engine intelliprove com/v2/questions/answer", "description" "save an answer to a question for one of your users", "tab" "examples", "examples" { "languages" \[ { "id" "ly k8enkjy3xdfr9fl8n0", "language" "json", "code" "{\n \\"value\\" 24,\n \\"lookup key\\" \\"age\\",\n \\"timezone\\" \\"europe/brussels\\"\n}", "customlabel" "request body" } ], "selectedlanguageid" "ly k8enkjy3xdfr9fl8n0" }, "results" { "languages" \[ { "id" "exkhp1cp6mnfc8lacxnpm", "language" "201", "customlabel" "", "code" "{\n \\"lookup key\\" \\"age\\",\n \\"value\\" 24,\n \\"user id\\" \\"df55e9ab 77b9 4b32 bd83 d76de23f6f3d\\"\n}" } ], "selectedlanguageid" "exkhp1cp6mnfc8lacxnpm" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "user id", "kind" "optional", "type" "string", "description" "the uuid of the user you want to answer a question for", "" "optional" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" false, "autogeneratedanchorslug" "save question answer", "legacyhash" "ylc5gukpjfa93cue2fa9i" } the value field always expects an integer value for more information on the different lookup keys and possible values for each question, refer to the intelliprove admin tool { "name" "save multiple question answers", "method" "post", "url" "https //engine intelliprove com/v2/questions/answer/many", "description" "save an answer to a question for one of your users", "tab" "examples", "examples" { "languages" \[ { "id" "ly k8enkjy3xdfr9fl8n0", "language" "json", "code" "\[\n {\n \\"value\\" 24,\n \\"lookup key\\" \\"age\\",\n \\"timezone\\" \\"europe/brussels\\"\n },\n \n]", "customlabel" "request body" } ], "selectedlanguageid" "ly k8enkjy3xdfr9fl8n0" }, "results" { "languages" \[ { "id" "exkhp1cp6mnfc8lacxnpm", "language" "201", "customlabel" "", "code" "\[\n {\n \\"lookup key\\" \\"age\\",\n \\"value\\" 24,\n \\"user id\\" \\"df55e9ab 77b9 4b32 bd83 d76de23f6f3d\\"\n },\n \n]" } ], "selectedlanguageid" "exkhp1cp6mnfc8lacxnpm" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "user id", "kind" "required", "type" "string", "description" "the uuid of the user you want to answer a question for", "" "required" } ], "headerparameters" \[ { "name" "x api key", "kind" "optional", "type" "string", "description" "your api key", "" "your api key" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" false, "autogeneratedanchorslug" "save multiple question answers", "legacyhash" "bdi2fl5lu08q09vthmvep" } for more information on the different lookup keys and possible values , refer to the intelliprove admin tool dashboards these api endpoints provide easy ways to generate urls to personalised user dashboards each generated url includes a temporary, user specific access token that grants limited time access to the dashboard all the dashboard endpoints can only be accessed using the api key { "name" "get health dashboard url", "method" "post", "url" "https //engine intelliprove com/v2/dashboards/health", "description" "request a one time url for the users personal health dashboard by user id or external user id ", "tab" "examples", "examples" { "languages" \[ { "id" "ly k8enkjy3xdfr9fl8n0", "language" "json", "code" "{\n \\"external user id\\" \\"user email\@example com\\",\n \\"language\\" \\"en\\",\n \\"disabled sections\\" \[ \\"recommendations\\", \\"todos\\", \\"biomarkers\\", \\"metrics\\"] # pick what you want to disable\n}", "customlabel" "request body" } ], "selectedlanguageid" "ly k8enkjy3xdfr9fl8n0" }, "results" { "languages" \[ { "id" "exkhp1cp6mnfc8lacxnpm", "language" "201", "customlabel" "", "code" "\\"https //dashboard intelliprove com?action token=\<generated action token>\&language=en\\"" } ], "selectedlanguageid" "exkhp1cp6mnfc8lacxnpm" }, "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "your api key" } ], "bodydataparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" }, { "name" "language", "kind" "optional", "type" "string", "description" "two letter language code override default user language", "" "two letter language code override default user language" }, { "name" "disabled sections", "kind" "optional", "type" "array", "description" "add section ('main', 'metrics', 'biomarkers' or 'recommendations') to list to disable it default empty list ", "" "add section ('main', 'metrics', 'biomarkers' or 'recommendations') to list to disable it default empty list " } ], "formdataparameters" \[] }, "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" false, "autogeneratedanchorslug" "get health dashboard url", "legacyhash" "zyss10w38tgpfmpuiluqr" } recommendations these api endpoints allow you to get and manage your recommendations for your users { "name" "get recommendations for user", "method" "get", "url" "https //engine intelliprove com/v2/recommendations", "description" "get a list of your recommendations filtered for the specified user based on their intelliprove profile and health scans \nthis endpoint can be called with both api keys or using an action token ", "tab" "examples", "examples" { "languages" \[ { "id" "ly k8enkjy3xdfr9fl8n0", "language" "json", "code" "", "customlabel" "request body" } ], "selectedlanguageid" "ly k8enkjy3xdfr9fl8n0" }, "results" { "languages" \[ { "id" "exkhp1cp6mnfc8lacxnpm", "language" "200", "code" "{\n \\"recommendations\\" \[\n {\n \\"title\\" \\"get energized with partner\\",\n \\"description\\" \\"a descriptive text about your recommendation\\",\n \\"action url\\" \\"https //engine intelliprove com/v2/tracking/cnf0xxxxxxxxxxxx\\",\n \\"action text\\" \\"take me there\\",\n \\"image url\\" \\"https //cdn intelliprove com/customers/my customer/recommendations/some image name jpg\\",\n \\"related metric\\" \\"energy balance\\",\n \\"relevance\\" 1,\n \\"lookup key\\" \\"energy balance 1\\"\n },\n \n ]\n}", "customlabel" "" } ], "selectedlanguageid" "exkhp1cp6mnfc8lacxnpm" }, "request" { "pathparameters" \[], "queryparameters" \[ { "name" "external user id", "kind" "required", "type" "string", "description" "external user id, chosen when creating the user", "" "required" }, { "name" "language", "kind" "optional", "type" "string", "description" "two letter language code override default user language", "" "two letter language code override default user language" } ], "headerparameters" \[ { "name" "x api key", "kind" "required", "type" "string", "description" "your api key", "" "required" } ], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "header parameter", "value" "headerparameters" }, "hastryitout" true, "autogeneratedanchorslug" "get recommendations for user", "legacyhash" "xoaoxehuhjq9h7mzyf3a2" } the relevance property is a number starting from 1 relevance 1 is most relevant, 2 second, etc