curl --request GET \
--url https://api.byblend.com/api/v1/exceptions/{exception_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.byblend.com/api/v1/exceptions/{exception_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.byblend.com/api/v1/exceptions/{exception_id}', 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.byblend.com/api/v1/exceptions/{exception_id}",
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://api.byblend.com/api/v1/exceptions/{exception_id}"
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://api.byblend.com/api/v1/exceptions/{exception_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.byblend.com/api/v1/exceptions/{exception_id}")
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": "0227d1e5-ba9a-42b5-8fe2-38882aa65708",
"entity_type": "order",
"entity_id": "b658f16f-819c-4503-aede-bd555fc4ebfb",
"exception_reason": "address",
"exception_reason_display": "Address Update Required",
"exception_description": "Address could not be verified by the carrier",
"is_active": true,
"is_customer_resolvable": true,
"expires_at": null,
"created_at": "2026-09-30T17:12:00",
"resolved_at": null,
"resolution_reason": null,
"annotation_id": "7d0f2a8c-8b4e-4c2e-9f1d-3a6b5c4d2e10",
"responses": [
{
"id": "5b1f7f0e-2f6c-4c1e-9a55-0f3f4b0c9a21",
"exception_id": "0227d1e5-ba9a-42b5-8fe2-38882aa65708",
"text": "The patient's corrected address is on the order now.\n\n[Response from: Charlie Customer]",
"created_at": "2026-09-30T18:04:00",
"author": {
"first_name": "Charlie",
"last_name": "Customer",
"type": "customer"
}
}
]
}Get an exception
Retrieve a single exception on a stuck order or prescription. Use the exception_id from the order.stuck webhook.
curl --request GET \
--url https://api.byblend.com/api/v1/exceptions/{exception_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.byblend.com/api/v1/exceptions/{exception_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.byblend.com/api/v1/exceptions/{exception_id}', 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.byblend.com/api/v1/exceptions/{exception_id}",
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://api.byblend.com/api/v1/exceptions/{exception_id}"
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://api.byblend.com/api/v1/exceptions/{exception_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.byblend.com/api/v1/exceptions/{exception_id}")
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": "0227d1e5-ba9a-42b5-8fe2-38882aa65708",
"entity_type": "order",
"entity_id": "b658f16f-819c-4503-aede-bd555fc4ebfb",
"exception_reason": "address",
"exception_reason_display": "Address Update Required",
"exception_description": "Address could not be verified by the carrier",
"is_active": true,
"is_customer_resolvable": true,
"expires_at": null,
"created_at": "2026-09-30T17:12:00",
"resolved_at": null,
"resolution_reason": null,
"annotation_id": "7d0f2a8c-8b4e-4c2e-9f1d-3a6b5c4d2e10",
"responses": [
{
"id": "5b1f7f0e-2f6c-4c1e-9a55-0f3f4b0c9a21",
"exception_id": "0227d1e5-ba9a-42b5-8fe2-38882aa65708",
"text": "The patient's corrected address is on the order now.\n\n[Response from: Charlie Customer]",
"created_at": "2026-09-30T18:04:00",
"author": {
"first_name": "Charlie",
"last_name": "Customer",
"type": "customer"
}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier for the exception
Query Parameters
Include the exception's responses (oldest first) as responses
Response
Successful response with exception details
Unique identifier for the exception. Sent as exception_id in the order.stuck and order.stuck_response webhooks, where id is the order or prescription instead.
"0227d1e5-ba9a-42b5-8fe2-38882aa65708"
Whether the exception is on an order or on a prescription
order, prescription "order"
ID of the order or prescription the exception is on
"b658f16f-819c-4503-aede-bd555fc4ebfb"
Why the order or prescription is stuck
prescriber_data, patient_data, clinical_issue, patient_readiness, prescription_expired, prescription_missing, no_fills_remaining, order_data, address, order_too_early, duplicate_active_order "address"
Human-readable version of exception_reason
"Address Update Required"
Detail from Blend on what is needed
"Address could not be verified by the carrier"
true while the exception is blocking fulfillment; false once resolved
true
Whether supplying data from your side is expected to clear the exception
true
For time-based exceptions (e.g. too early to fill), when the exception resolves on its own
null
"2026-09-30T17:12:00"
null
Why the exception was resolved
null
ID of the exception's discussion thread
"7d0f2a8c-8b4e-4c2e-9f1d-3a6b5c4d2e10"
Responses on the exception, oldest first. Only present when include_responses=true.
Show child attributes
Show child attributes