GET /api/documents/{doc_id}
Returns a document’s metadata plus every insight extracted from it. Use this for deep research after POST /api/insights/search has returned a relevant doc_id.
Authentication
X-API-Key: alch_YOUR_KEY
Path parameters
| Parameter | Type | Description |
|---|---|---|
doc_id | string | Document identifier from search results or GET /api/documents. |
Response 200
{
"document": {
"doc_id": "doc_01jww8y2hp6e3uaq",
"document_url": "https://www.sec.gov/Archives/edgar/data/831259/000083125926000021/a1q2026exhibit991.htm",
"article_title": "Freeport Reports First-Quarter 2026 Results",
"summary": "Freeport reported Q1 2026 net income of $881 million ($0.61/share), driven by higher copper and gold prices...",
"source_name": "SEC",
"authors": [],
"published_date": "2026-04-09",
"extracted_at": "2026-04-09T15:02:00Z",
"extraction_status": "complete",
"ingested_at": "2026-04-09T14:58:00Z"
},
"insights": [
{
"insight_id": "ins_01jwx9z3kq7f4vbr",
"title": "Grasberg Block Cave ramp-up delayed by ore loading modifications",
"insight": "PTFI commenced phased ramp-up of Grasberg Block Cave Production Blocks 2 and 3 in March 2026 but encountered a significant increase in wet drawpoints, limiting near-term production to approximately 60% of capacity. 2026 sales estimates were reduced from 3.4 billion to 3.1 billion pounds of copper.",
"excerpts": [
"During initial ramp-up activities in Production Blocks 2 and 3, PTFI encountered changes in operating conditions at the Grasberg Block Cave underground mine, resulting in a significant increase in the ratio of wet drawpoints."
]
},
{
"insight_id": "ins_01jwxa...",
"title": "Committee broadly comfortable with current policy stance",
"insight": "Meeting participants broadly agreed that the current policy rate remained appropriate given incoming data, though several noted growing confidence in the inflation trajectory.",
"excerpts": [
"Participants broadly agreed that the current stance of monetary policy remained appropriate..."
]
}
]
}
document fields
| Field | Type | Description |
|---|---|---|
doc_id | string | Document identifier |
document_url | string | URL to the primary source |
article_title | string | Document title |
summary | string | Brief summary |
source_name | string | Publishing organization |
published_date | string | null | Publication date |
extraction_status | string | "complete" when all insights have been extracted |
insights fields
| Field | Type | Description |
|---|---|---|
insight_id | string | Unique insight identifier |
title | string | Short title for the insight |
insight | string | The extracted finding as a complete statement |
excerpts | string[] | Verbatim source quotes that support the insight |
Error 404
{
"detail": "Document not found"
}
Examples
curl "https://api.askalchemist.com/api/documents/doc_01jww8y2hp6e3uaq" \
-H "X-API-Key: alch_YOUR_KEY"
import httpx
resp = httpx.get(
"https://api.askalchemist.com/api/documents/doc_01jww8y2hp6e3uaq",
headers={"X-API-Key": "alch_YOUR_KEY"},
)
data = resp.json()
print(data["document"]["article_title"])
for i in data["insights"]:
print(f" • {i['title']}: {i['insight'][:100]}...")
const res = await fetch(
"https://api.askalchemist.com/api/documents/doc_01jww8y2hp6e3uaq",
{ headers: { "X-API-Key": "alch_YOUR_KEY" } }
);
const { document, insights } = await res.json();