curl --request GET \
--url https://www.getprescience.com/api/partner/v1/plans/{planId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.getprescience.com/api/partner/v1/plans/{planId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.getprescience.com/api/partner/v1/plans/{planId}', 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://www.getprescience.com/api/partner/v1/plans/{planId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.getprescience.com/api/partner/v1/plans/{planId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.getprescience.com/api/partner/v1/plans/{planId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.getprescience.com/api/partner/v1/plans/{planId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "diamond",
"name": "Prescience Diamond",
"description": "The richest coverage, with the lowest member out-of-pocket costs.",
"benefits": {
"member_coinsurance_pct": 0,
"hsa_eligible": true,
"features": [
{
"title": "Advanced blood testing",
"description": "Included through Prescience Foresight, with clinician-guided follow-up."
},
{
"title": "Genetic testing",
"description": "Included when clinically appropriate, with results translated into a personal care plan."
},
{
"title": "24/7 care companion",
"description": "Crystal helps members find care, understand costs, and get answers before a bill arrives."
},
{
"title": "Preventive health programs",
"description": "Access to Prescience Foresight programs, including metabolic health and connected-device support, subject to eligibility."
},
{
"title": "GLP-1s for all indications",
"description": "Covered for every indication, not only diabetes."
},
{
"title": "HSA-eligible",
"description": "Pairs with a health savings account for pre-tax saving on care."
},
{
"title": "Wearable included",
"description": "Every member gets a wearable at no extra cost."
},
{
"title": "Fully managed setup",
"description": "Prescience runs plan setup, enrollment and payroll syncing."
}
]
},
"member_terms": "The lowest member out-of-pocket costs. Deductible and out-of-pocket maximums are set per group: a quote has them as deductible_cents and oop_max_cents.",
"employer_contribution": {
"min_pct": 50,
"max_pct": 100
},
"logos": {
"plan": "https://www.getprescience.com/img/prescience-mark.png",
"wordmark": "https://www.getprescience.com/img/prescience-wordmark.svg"
},
"selling_guide": {
"url": "https://www.getprescience.com/api/partner/v1/mcp/skill",
"markdown_url": "https://www.getprescience.com/api/partner/v1/mcp/skill?format=md"
},
"disclaimers": [
"Final plan documents govern. Benefit details are confirmed during onboarding."
]
}{
"error": "invalid_request",
"message": "<string>",
"details": [
{
"field": "zip",
"message": "zip must be a 5-digit ZIP code",
"index": 7
}
]
}Get a plan (brokers)
The static details of one plan for a broker key: diamond or value. A quote has each group’s numbers; this has what the plan is, and it is the same for every group, so cache it. Other partner types get 404.
curl --request GET \
--url https://www.getprescience.com/api/partner/v1/plans/{planId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.getprescience.com/api/partner/v1/plans/{planId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.getprescience.com/api/partner/v1/plans/{planId}', 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://www.getprescience.com/api/partner/v1/plans/{planId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.getprescience.com/api/partner/v1/plans/{planId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.getprescience.com/api/partner/v1/plans/{planId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.getprescience.com/api/partner/v1/plans/{planId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "diamond",
"name": "Prescience Diamond",
"description": "The richest coverage, with the lowest member out-of-pocket costs.",
"benefits": {
"member_coinsurance_pct": 0,
"hsa_eligible": true,
"features": [
{
"title": "Advanced blood testing",
"description": "Included through Prescience Foresight, with clinician-guided follow-up."
},
{
"title": "Genetic testing",
"description": "Included when clinically appropriate, with results translated into a personal care plan."
},
{
"title": "24/7 care companion",
"description": "Crystal helps members find care, understand costs, and get answers before a bill arrives."
},
{
"title": "Preventive health programs",
"description": "Access to Prescience Foresight programs, including metabolic health and connected-device support, subject to eligibility."
},
{
"title": "GLP-1s for all indications",
"description": "Covered for every indication, not only diabetes."
},
{
"title": "HSA-eligible",
"description": "Pairs with a health savings account for pre-tax saving on care."
},
{
"title": "Wearable included",
"description": "Every member gets a wearable at no extra cost."
},
{
"title": "Fully managed setup",
"description": "Prescience runs plan setup, enrollment and payroll syncing."
}
]
},
"member_terms": "The lowest member out-of-pocket costs. Deductible and out-of-pocket maximums are set per group: a quote has them as deductible_cents and oop_max_cents.",
"employer_contribution": {
"min_pct": 50,
"max_pct": 100
},
"logos": {
"plan": "https://www.getprescience.com/img/prescience-mark.png",
"wordmark": "https://www.getprescience.com/img/prescience-wordmark.svg"
},
"selling_guide": {
"url": "https://www.getprescience.com/api/partner/v1/mcp/skill",
"markdown_url": "https://www.getprescience.com/api/partner/v1/mcp/skill?format=md"
},
"disclaimers": [
"Final plan documents govern. Benefit details are confirmed during onboarding."
]
}{
"error": "invalid_request",
"message": "<string>",
"details": [
{
"field": "zip",
"message": "zip must be a 5-digit ZIP code",
"index": 7
}
]
}Authorizations
Partner API key. psk_test_<32 hex> for test mode, psk_live_<32 hex> for live mode. Store them in your secrets manager on issue. Live keys are shown once; the scoped partner portal can show an active sandbox key again.
Path Parameters
diamond, value Response
The plan.
diamond, value One plain line on what the plan is.
Show child attributes
Show child attributes
How the member cost-sharing reads. The amounts for a group are in its quote (member_deductible, member_oop_max).
Show child attributes
Show child attributes
The share of premium an employer may pay.
Show child attributes
Show child attributes
The selling skill: a zip for Agent Skills, and the SKILL.md.
Show child attributes
Show child attributes