curl --request GET \
--url https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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": "rr_abc123",
"order_number": "T-ABC-12345",
"case_id": "case_abc123",
"status": "processing",
"stage": "acknowledged",
"stage_label": "Request Acknowledged",
"patient": {
"name": "<string>",
"date_of_birth": "2023-12-25",
"address": "<string>",
"phone": "<string>",
"email": "jsmith@example.com",
"gender": "<string>",
"ssn": "<string>"
},
"facility": {
"name": "<string>",
"address_line1": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"zip_code": "<string>",
"phone": "<string>",
"fax": "<string>"
},
"documents_summary": {
"records_count": 2,
"invoices_count": 1
},
"created_at": "2025-02-01T12:50:00Z",
"updated_at": "2025-02-03T09:14:21Z",
"public_updated_at": "2026-10-08T12:00:00.000Z",
"requested_records": [
{
"type": "medical_records",
"custom_label": "<string>",
"deliverable_format": "itemized",
"service_start_date": "2023-12-25",
"service_end_date": "2023-12-25",
"requirements": [
"<string>"
]
}
],
"requestor_id": "111111111111111111111111",
"costs": {
"tavrn_credits_consumed": 1,
"tavrn_fee": 35,
"provider_fees": 85,
"total_cost": 120
},
"platform_url": "https://platform.tavrn.ai/cases/case_abc123?section=workflows%2Fretrieval-manager&view=detail&orderId=rr_abc123",
"action_required_reason": null,
"stage_description": "Your request is in progress with the provider. We follow up with them regularly and will post updates here.",
"timeline": [
{
"stage": "acknowledged",
"stage_label": "Correspondence Sent",
"state": "completed",
"occurred_at": "2025-02-02T10:30:00Z",
"description": "We've sent out your request via fax and will be following up with the provider to check in on progress.",
"checkpoints": [
{
"text": "Call completed at 2:14 PM to the facility.",
"occurred_at": "2025-02-01T19:14:00Z"
}
],
"action_request": {
"id": "car_abc123",
"status": "answered",
"description": "Please upload a signed HIPAA authorization dated within the last 12 months.",
"response_text": "Uploaded the updated authorization.",
"responded_at": "2025-02-03T16:05:00Z",
"has_attachment": true
}
}
],
"pending_action_request": {
"id": "car_abc123",
"description": "The provider's invoice of $85.00 exceeds your approval limit. Do you approve payment?",
"document": {
"file_name": "provider_invoice.pdf",
"file_size": 45123,
"file_type": "application/pdf",
"download_url": "https://s3.amazonaws.com/...",
"expires_in": 3600,
"expires_at": "2026-10-08T13:00:00.000Z"
}
},
"service_start_date": "2024-03-15",
"service_end_date": "2024-09-30",
"notes": null,
"documents": [
{
"id": "rrdoc_001",
"retrieval_request_id": "rr_abc123",
"category": "records",
"record_types": [
"medical_records"
],
"file_name": "example_general_hospital_records.pdf",
"file_size": 2456789,
"file_type": "application/pdf",
"page_count": 134,
"created_at": "2025-02-05T15:22:10Z",
"metadata": {
"provider_fee_amount": 85
}
}
],
"completed_at": null
}{
"error": {
"code": "validation_error",
"message": "The patient.date_of_birth field is required"
}
}{
"error": {
"code": "validation_error",
"message": "The patient.date_of_birth field is required"
}
}Get retrieval request
Retrieve current request details, including status, timeline, pending client action, documents, public_updated_at, and costs. Fetch details after an IDs-only webhook or to refresh costs; use incremental list polling for organization-wide reconciliation.
curl --request GET \
--url https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://enterprise.tavrn.ai/v2/retrieval-requests/{retrieval_request_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": "rr_abc123",
"order_number": "T-ABC-12345",
"case_id": "case_abc123",
"status": "processing",
"stage": "acknowledged",
"stage_label": "Request Acknowledged",
"patient": {
"name": "<string>",
"date_of_birth": "2023-12-25",
"address": "<string>",
"phone": "<string>",
"email": "jsmith@example.com",
"gender": "<string>",
"ssn": "<string>"
},
"facility": {
"name": "<string>",
"address_line1": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"zip_code": "<string>",
"phone": "<string>",
"fax": "<string>"
},
"documents_summary": {
"records_count": 2,
"invoices_count": 1
},
"created_at": "2025-02-01T12:50:00Z",
"updated_at": "2025-02-03T09:14:21Z",
"public_updated_at": "2026-10-08T12:00:00.000Z",
"requested_records": [
{
"type": "medical_records",
"custom_label": "<string>",
"deliverable_format": "itemized",
"service_start_date": "2023-12-25",
"service_end_date": "2023-12-25",
"requirements": [
"<string>"
]
}
],
"requestor_id": "111111111111111111111111",
"costs": {
"tavrn_credits_consumed": 1,
"tavrn_fee": 35,
"provider_fees": 85,
"total_cost": 120
},
"platform_url": "https://platform.tavrn.ai/cases/case_abc123?section=workflows%2Fretrieval-manager&view=detail&orderId=rr_abc123",
"action_required_reason": null,
"stage_description": "Your request is in progress with the provider. We follow up with them regularly and will post updates here.",
"timeline": [
{
"stage": "acknowledged",
"stage_label": "Correspondence Sent",
"state": "completed",
"occurred_at": "2025-02-02T10:30:00Z",
"description": "We've sent out your request via fax and will be following up with the provider to check in on progress.",
"checkpoints": [
{
"text": "Call completed at 2:14 PM to the facility.",
"occurred_at": "2025-02-01T19:14:00Z"
}
],
"action_request": {
"id": "car_abc123",
"status": "answered",
"description": "Please upload a signed HIPAA authorization dated within the last 12 months.",
"response_text": "Uploaded the updated authorization.",
"responded_at": "2025-02-03T16:05:00Z",
"has_attachment": true
}
}
],
"pending_action_request": {
"id": "car_abc123",
"description": "The provider's invoice of $85.00 exceeds your approval limit. Do you approve payment?",
"document": {
"file_name": "provider_invoice.pdf",
"file_size": 45123,
"file_type": "application/pdf",
"download_url": "https://s3.amazonaws.com/...",
"expires_in": 3600,
"expires_at": "2026-10-08T13:00:00.000Z"
}
},
"service_start_date": "2024-03-15",
"service_end_date": "2024-09-30",
"notes": null,
"documents": [
{
"id": "rrdoc_001",
"retrieval_request_id": "rr_abc123",
"category": "records",
"record_types": [
"medical_records"
],
"file_name": "example_general_hospital_records.pdf",
"file_size": 2456789,
"file_type": "application/pdf",
"page_count": 134,
"created_at": "2025-02-05T15:22:10Z",
"metadata": {
"provider_fee_amount": 85
}
}
],
"completed_at": null
}{
"error": {
"code": "validation_error",
"message": "The patient.date_of_birth field is required"
}
}{
"error": {
"code": "validation_error",
"message": "The patient.date_of_birth field is required"
}
}Authorizations
API key authentication. Use format: Authorization: Bearer tavrn_sk_live_...
Path Parameters
Retrieval request ID
Response
Successful response
Unique retrieval request identifier
"rr_abc123"
Human-readable order number, or null when unavailable.
"T-ABC-12345"
Associated case ID
"case_abc123"
Coarse public retrieval status. completed and cancelled are terminal. A non-terminal request with an unanswered action request (a timeline action_request with status awaiting_response) is always action_required.
received, processing, action_required, completed, cancelled "processing"
Lifecycle stage shown on the Tavrn platform dashboard.
submitted, locating_contact, contact_found, request_sent, confirming_receipt, acknowledged, invoice_received, action_required, completed, cancelled "acknowledged"
Human-readable label for stage, as shown on the Tavrn platform dashboard
"Request Acknowledged"
Patient fields returned by retrieval GET and list responses.
Show child attributes
Show child attributes
Facility fields returned by retrieval GET and list responses. Name and address fields may be null, and phone or fax may be omitted.
Show child attributes
Show child attributes
Counts records and provider invoices; excludes cost summaries.
Show child attributes
Show child attributes
"2025-02-01T12:50:00Z"
"2025-02-03T09:14:21Z"
Timestamp for public request changes, including status, action requests, and documents. Costs may change without advancing it. Use the final list checkpoint, not this field, for incremental polling. May be null.
"2026-10-08T12:00:00.000Z"
The record lines that were requested from the facility
Show child attributes
Show child attributes
Selected Requestor profile ID. A null read value uses the default profile. Omitting Requestor fields on creation also uses the default.
^[a-fA-F0-9]{24}$"111111111111111111111111"
Current request costs, returned by the get endpoint only. Amounts are in USD, not cents. Costs can change after completion without advancing public_updated_at or producing a webhook; fetch the request again when you need current costs. A documents_available event is sent when a provider invoice becomes downloadable.
Show child attributes
Show child attributes
Deep link to this retrieval request on the Tavrn platform dashboard; null when the request has no linked case
"https://platform.tavrn.ai/cases/case_abc123?section=workflows%2Fretrieval-manager&view=detail&orderId=rr_abc123"
Sub-reason when status is action_required; null otherwise
payment_needed, contact_missing, request_issue, other null
Plain-language sentence for the current stage, as shown on the Tavrn platform dashboard. Null when there is nothing to show yet.
"Your request is in progress with the provider. We follow up with them regularly and will post updates here."
Ordered lifecycle of the request as rendered on the Tavrn platform dashboard. The standard steps (submitted, locating_contact, contact_found, request_sent, confirming_receipt, acknowledged, completed) always appear, each with a state of completed, current, pending or skipped. Conditional stages (invoice_received, action_required, cancelled) appear only when they occurred, so a stage may be absent, and action_required repeats once per action request. Returned by GET and by list with include=details; omitted from summary list results.
Show child attributes
Show child attributes
The open action request your firm needs to answer with Respond to action request; null when there is none. Returned by the get endpoint and list with include=details.
Show child attributes
Show child attributes
"2024-03-15"
"2024-09-30"
null
Available retrieval documents, including cost_summary for completed requests with finalized billing. Returned by GET and list results with include=details.
Show child attributes
Show child attributes
Completion timestamp (null until terminal)
null