Get a document
curl --request GET \
--url https://sacra.com/api/v1/documents/{document_slug}/ \
--header 'Authorization: <api-key>'import requests
url = "https://sacra.com/api/v1/documents/{document_slug}/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://sacra.com/api/v1/documents/{document_slug}/', 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://sacra.com/api/v1/documents/{document_slug}/",
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: <api-key>"
],
]);
$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://sacra.com/api/v1/documents/{document_slug}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sacra.com/api/v1/documents/{document_slug}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sacra.com/api/v1/documents/{document_slug}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"type": "company",
"slug": "cursor",
"title": "Cursor",
"last_publication_date": "2025-02-04T00:00:00-04:56",
"metadata": {
"total_sections": 6,
"reading_time": 7,
"has_images": true,
"total_elements": 53
},
"preview": {
"title": "Cursor",
"image": "https://sacra-logos.s3.us-east-2.amazonaws.com/company_logos/2318.png?v=91c4de07",
"description": "Cursor is an AI-powered code editor that helps developers write, edit, and automate coding tasks with built-in AI assistance."
},
"pdf_url": "https://sacra.com/f/3qM9xK2pR7vT8nL4cYwJ6aH1uB5dZ0eQ",
"web_url": "https://sacra.com/c/cursor/",
"content": {
"sections": [
{
"id": "revenue",
"type": "section",
"title": "Revenue",
"level": 1,
"elements": [
{
"text": "Revenue",
"type": "heading2",
"spans": []
},
{
"id": "Z6LHi5bqstJ9-O2A",
"type": "image",
"url": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress",
"dimensions": {
"width": 840,
"height": 856
},
"srcset": {
"small": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress&w=400",
"medium": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress&w=800",
"large": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress&w=1200",
"original": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress"
},
"caption": "Image for Revenue"
},
{
"text": "Sacra estimates that Cursor hit $100M in annual recurring revenue (ARR) at the end of 2024, up 9,900% YoY from $1M in 2023.",
"type": "paragraph",
"spans": []
}
],
"prev_section": null,
"next_section": "product"
}
],
"table_of_contents": [
{
"id": "revenue",
"title": "Revenue",
"level": 1,
"subsections": []
},
{
"id": "product",
"title": "Product",
"level": 1,
"subsections": []
},
{
"id": "competition",
"title": "Competition",
"level": 1,
"subsections": [
{
"id": "github-microsoft-bundlenomics",
"title": "GitHub + Microsoft bundlenomics",
"level": 2
},
{
"id": "shift-from-tools-to-agents",
"title": "Shift from tools to agents",
"level": 2
}
]
}
]
}
}Documents
Get document detail - Documents API
Retrieve one document’s full content by slug.
GET
/
api
/
v1
/
documents
/
{document_slug}
/
Get a document
curl --request GET \
--url https://sacra.com/api/v1/documents/{document_slug}/ \
--header 'Authorization: <api-key>'import requests
url = "https://sacra.com/api/v1/documents/{document_slug}/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://sacra.com/api/v1/documents/{document_slug}/', 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://sacra.com/api/v1/documents/{document_slug}/",
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: <api-key>"
],
]);
$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://sacra.com/api/v1/documents/{document_slug}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sacra.com/api/v1/documents/{document_slug}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sacra.com/api/v1/documents/{document_slug}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"type": "company",
"slug": "cursor",
"title": "Cursor",
"last_publication_date": "2025-02-04T00:00:00-04:56",
"metadata": {
"total_sections": 6,
"reading_time": 7,
"has_images": true,
"total_elements": 53
},
"preview": {
"title": "Cursor",
"image": "https://sacra-logos.s3.us-east-2.amazonaws.com/company_logos/2318.png?v=91c4de07",
"description": "Cursor is an AI-powered code editor that helps developers write, edit, and automate coding tasks with built-in AI assistance."
},
"pdf_url": "https://sacra.com/f/3qM9xK2pR7vT8nL4cYwJ6aH1uB5dZ0eQ",
"web_url": "https://sacra.com/c/cursor/",
"content": {
"sections": [
{
"id": "revenue",
"type": "section",
"title": "Revenue",
"level": 1,
"elements": [
{
"text": "Revenue",
"type": "heading2",
"spans": []
},
{
"id": "Z6LHi5bqstJ9-O2A",
"type": "image",
"url": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress",
"dimensions": {
"width": 840,
"height": 856
},
"srcset": {
"small": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress&w=400",
"medium": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress&w=800",
"large": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress&w=1200",
"original": "https://images.prismic.io/sacra/Z6LHi5bqstJ9-O2A_cursorRevenue.png?auto=format,compress"
},
"caption": "Image for Revenue"
},
{
"text": "Sacra estimates that Cursor hit $100M in annual recurring revenue (ARR) at the end of 2024, up 9,900% YoY from $1M in 2023.",
"type": "paragraph",
"spans": []
}
],
"prev_section": null,
"next_section": "product"
}
],
"table_of_contents": [
{
"id": "revenue",
"title": "Revenue",
"level": 1,
"subsections": []
},
{
"id": "product",
"title": "Product",
"level": 1,
"subsections": []
},
{
"id": "competition",
"title": "Competition",
"level": 1,
"subsections": [
{
"id": "github-microsoft-bundlenomics",
"title": "GitHub + Microsoft bundlenomics",
"level": 2
},
{
"id": "shift-from-tools-to-agents",
"title": "Shift from tools to agents",
"level": 2
}
]
}
]
}
}The document slug is the only supported direct document lookup. Read the
The response contains the document’s full content, sections, table of contents,
metadata, preview information, and delivery URLs.
slug
field from an item returned by List documents,
then pass it in the URL path:
curl -H "Authorization: Token YOUR_API_KEY" \
"https://sacra.com/api/v1/documents/kraken-at-1-5b-up-128-yoy/"
Authorizations
Authenticate using one of two formats:
- Organization/user token:
Token <your-token> - Stytch JWT:
Bearer <your-jwt>
Path Parameters
URL-friendly document slug (lowercase, hyphen-separated). e.g. cursor, kraken-at-1-5b-up-128-yoy.
Response
One of market, company, interview.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I