Documentation Index Fetch the complete documentation index at: https://docs.venture.caplia.ai/llms.txt
Use this file to discover all available pages before exploring further.
By the end of this page, you’ll have:
✅ Minted a personal access token from your Caplia settings
✅ Hit /v1/health to confirm auth works
✅ Submitted a pitch deck via POST /v1/decks
✅ Polled the resulting job until the company appears with its CRI score
Total time: about three minutes. You’ll need a terminal with curl.
Step 1 - Create an API key
In the Caplia portal, go to Settings → API Keys → Create new key :
Give it a name (e.g. “CRM integration”, “Zapier test”)
Choose scope: pick write if you’re sending decks; read is enough for read-only integrations
Click Create
You’ll see the plaintext key exactly once - it looks like:
cap_inv_live_8H3jK9pQrM2nXz7vL4tBwY6cF1aRdNeS
Copy it somewhere safe. If you lose it, you’ll need to revoke and create a new one - Caplia never stores the plaintext.
Set it as an environment variable in your shell so the rest of this guide is copy-paste-able: export CAPLIA_KEY = cap_inv_live_8H3jK9pQrM2nXz7vL4tBwY6cF1aRdNeS
Step 2 - Confirm the key works
The /v1/health endpoint doesn’t require auth, but it’s a useful first check:
curl https://api.venture.caplia.ai/v1/health
{
"status" : "ok" ,
"version" : "v1"
}
Now try an authenticated request - list companies in your pipeline:
curl https://api.venture.caplia.ai/v1/companies \
-H "Authorization: Bearer $CAPLIA_KEY "
[
{
"id" : "5a1c..." ,
"name" : "Tesla" ,
"industry" : "Energy" ,
"stage" : "Series A" ,
...
},
...
]
If you see a 401, double-check the Authorization header - it should be Bearer cap_inv_live_... with a single space between.
Step 3 - Submit a pitch deck
This is the main “push deals in” flow. The deck goes through Caplia’s intake pipeline, gets text-extracted, the company is created, then CRI and thesis scores compute in the background.
curl -X POST https://api.venture.caplia.ai/v1/decks \
-H "Authorization: Bearer $CAPLIA_KEY " \
-F "file=@pitch.pdf" \
-F "company_name=Tesla" \
-F "company_url=https://tesla.com" \
-F "notes=Met them at YC demo day - interesting battery tech angle"
{
"job_id" : "intake-event-uuid-here" ,
"status" : "queued" ,
"poll_url" : "https://api.venture.caplia.ai/v1/jobs/intake-event-uuid-here"
}
The response comes back fast - the actual processing happens asynchronously. company_name, company_url, and notes are optional but help the worker create a cleaner company record.
The deck file must be a PDF, ≤ 50 MB. Decks submitted via the API auto-approve into your pipeline - the act of holding a scoped API key is sufficient trust.
Step 4 - Poll the job
The job moves through queued → processing → completed. Poll every 3 seconds:
curl https://api.venture.caplia.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $CAPLIA_KEY "
Early in the job lifecycle:
{
"job_id" : "..." ,
"status" : "queued" ,
"company_id" : null ,
"created_at" : "2026-05-12T10:32:00Z" ,
"completed_at" : null ,
"results" : null ,
"errors" : []
}
Once the company has been created (typically 10-30 seconds in):
{
"job_id" : "..." ,
"status" : "processing" ,
"company_id" : "5a1c..." ,
"results" : {
"company" : {
"id" : "5a1c..." ,
"name" : "Tesla" ,
"problem_statement" : "Affordable electric vehicles for mass adoption" ,
"industry" : "Energy" ,
"stage" : "Series A" ,
"website" : "https://tesla.com"
}
},
"errors" : []
}
When scoring completes (typically 1-2 minutes in):
{
"job_id" : "..." ,
"status" : "completed" ,
"completed_at" : "2026-05-12T10:33:14Z" ,
"results" : {
"company" : { /* ... */ },
"cri" : {
"score" : 78 ,
"scored_at" : "2026-05-12T10:33:01Z" ,
"domains" : [ /* ... */ ]
},
"thesis_matches" : [
{
"thesis_id" : "..." ,
"thesis_name" : "Climate Series A" ,
"score" : 0.74 ,
"scoring_status" : "scored"
}
]
},
"errors" : []
}
Surface results.company as soon as it appears so your users see something useful; layer in results.cri and results.thesis_matches as they land.
What’s next
Authentication details Key format, scopes, rotation, security best practices.
Full API reference Every endpoint, every parameter, with try-it-yourself examples.