curl --request GET \
--url https://enterprise.tavrn.ai/v2/retrieval-requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://enterprise.tavrn.ai/v2/retrieval-requests"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://enterprise.tavrn.ai/v2/retrieval-requests")
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{
"results": [
{
"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",
"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
}
],
"next": "https://enterprise.tavrn.ai/v2/retrieval-requests?limit=20&cursor=next_cursor",
"previous": null,
"scan_until": "2026-10-08T12:00:00.000Z",
"next_public_updated_since": "2026-10-08T11:58:00.000Z"
}{
"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"
}
}List retrieval requests
List your organization’s retrieval requests. Use public_updated_since and include=details for incremental reconciliation. Follow next URLs unchanged, including after an empty page, and save next_public_updated_since only after processing the final page. This returns current state, not an event history or deletion feed. Omit mutable status, stage, and case filters for a complete sync. Ordinary listing remains available without public_updated_since.
curl --request GET \
--url https://enterprise.tavrn.ai/v2/retrieval-requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://enterprise.tavrn.ai/v2/retrieval-requests"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://enterprise.tavrn.ai/v2/retrieval-requests")
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{
"results": [
{
"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",
"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
}
],
"next": "https://enterprise.tavrn.ai/v2/retrieval-requests?limit=20&cursor=next_cursor",
"previous": null,
"scan_until": "2026-10-08T12:00:00.000Z",
"next_public_updated_since": "2026-10-08T11:58:00.000Z"
}{
"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_...
Query Parameters
Maximum number of results
1 <= x <= 100Pagination cursor
Filter by coarse retrieval status
received, processing, action_required, completed, cancelled Filter by lifecycle stage. Accepts a single stage or a comma-separated list (e.g. request_sent,acknowledged). May be combined with status.
Filter by case ID
Exclusive creation timestamp lower bound (ISO 8601). May be combined with created_before.
Exclusive creation timestamp upper bound. May be combined with created_after.
Inclusive lower bound for retrieval changes included in incremental polling. Start with the epoch for an initial full sync, then use the prior completed round's next_public_updated_since. Do not derive it from your clock or event timestamps.
Include timeline, pending client action, and document metadata in each result. Without it, returns summaries.
details Response
Successful response
Show child attributes
Show child attributes
"https://enterprise.tavrn.ai/v2/retrieval-requests?limit=20&cursor=next_cursor"
null
Upper time bound for this polling round. Present only with public_updated_since; do not use it as the next checkpoint.
"2026-10-08T12:00:00.000Z"
Checkpoint returned only on the final incremental page, including an empty final page. Save after processing every page and use it as the next public_updated_since. Results can repeat across rounds.
"2026-10-08T11:58:00.000Z"