Get document details
curl --request GET \
--url http://localhost:8000/v1/documents/{document_id} \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8000/v1/documents/{document_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8000/v1/documents/{document_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_PORT => "8000",
CURLOPT_URL => "http://localhost:8000/v1/documents/{document_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 := "http://localhost:8000/v1/documents/{document_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("http://localhost:8000/v1/documents/{document_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8000/v1/documents/{document_id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created_at": "2025-11-27T10:30:00Z",
"document_id": "6789def0-abcd-4567-ef01-23456789abcd",
"file_size_bytes": 1234567,
"latest_job": {
"created_at": "2025-11-27T10:30:00Z",
"document_id": "6789def0-abcd-4567-ef01-23456789abcd",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"processing_completed_at": "2025-11-27T10:30:45Z",
"processing_time_seconds": 45.2,
"status": "completed"
},
"page_count": 12,
"total_jobs": 2,
"vault_uri": "gs://docintel-vault-prod/tenant-123/2025/550e8400.pdf"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}documents
Get document details
Get details of a specific document.
Returns document metadata, storage information, and the latest extraction job status.
Returns: DocumentDetailResponse with document details and latest job info.
Raises: HTTPException 404: Document not found
GET
/
v1
/
documents
/
{document_id}
Get document details
curl --request GET \
--url http://localhost:8000/v1/documents/{document_id} \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8000/v1/documents/{document_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8000/v1/documents/{document_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_PORT => "8000",
CURLOPT_URL => "http://localhost:8000/v1/documents/{document_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 := "http://localhost:8000/v1/documents/{document_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("http://localhost:8000/v1/documents/{document_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8000/v1/documents/{document_id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"created_at": "2025-11-27T10:30:00Z",
"document_id": "6789def0-abcd-4567-ef01-23456789abcd",
"file_size_bytes": 1234567,
"latest_job": {
"created_at": "2025-11-27T10:30:00Z",
"document_id": "6789def0-abcd-4567-ef01-23456789abcd",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"processing_completed_at": "2025-11-27T10:30:45Z",
"processing_time_seconds": 45.2,
"status": "completed"
},
"page_count": 12,
"total_jobs": 2,
"vault_uri": "gs://docintel-vault-prod/tenant-123/2025/550e8400.pdf"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API Key authentication. Format: dk_test_ or dk_live_
Path Parameters
Document ID
Response
Document details with latest job info
Response for document detail (GET /v1/documents/{id}).
Unique identifier for the document
GCS path to the document in Cold Vault
Document creation timestamp (ISO 8601)
Total number of extraction jobs for this document
Document file size in bytes
Number of pages in the document
Most recent extraction job details
Show child attributes
Show child attributes
Example:
{
"created_at": "2025-11-27T10:30:00Z",
"document_id": "6789def0-abcd-4567-ef01-23456789abcd",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"processing_completed_at": "2025-11-27T10:30:45Z",
"processing_time_seconds": 45.2,
"status": "completed"
}