Curvestone

Quickstart

Submit your first job in under 5 minutes.

Prerequisites

You need an API key from the Curvestone Console. Keys starting with cs_live_ target production; cs_test_ keys target the sandbox.

1

Set your API key

Export your key as an environment variable. Both SDKs read it automatically.

terminal
bash
export CURVESTONE_API_KEY='cs_live_xxxxxxxxxxxx'
2

Install the SDK

Pick your language. Both libraries ship with full type definitions.

terminal
bash
pip install curvestone
3

Submit your first job

Submit documents and run a mortgage compliance job. The agent resolves the correct skills, processes the documents, and returns a structured result.

check.py
python
from curvestone import Agent
agent = Agent() # reads CURVESTONE_API_KEY from env
result = agent.check(
case_type="residential_mortgage",
depth="full_check",
documents=[
open("fact_find.pdf", "rb"),
open("suitability_letter.pdf", "rb"),
],
reference="CASE-2026-00451",
)
print(f"Triage: {result.triage}") # green | amber | red
print(f"Job ID: {result.id}")
print(f"Time: {result.processing_time}")
4

Read the results

The response includes a top-level triage, the checks that ran, and any findings that need attention.

response.json
json
1{
2 "id": "job_7kTx9mNpQ2",
3 "type": "check",
4 "status": "completed",
5 "triage": "amber",
6 "reference": "CASE-2026-00451",
7 "processing_time": "147s",
8 "checks": [
9 { "name": "Suitability of Advice", "triage": "green" },
10 { "name": "Income Verification", "triage": "green" },
11 { "name": "Affordability Assessment", "triage": "amber" },
12 { "name": "Product Selection", "triage": "green" },
13 { "name": "Disclosure & Consent", "triage": "green" },
14 { "name": "Debt Consolidation Rationale", "triage": "amber" },
15 { "name": "Total Cost Comparison", "triage": "green" }
16 ],
17 "findings": [
18 {
19 "severity": "amber",
20 "skill": "Affordability Assessment",
21 "finding": "Affordability buffer within 2% of threshold"
22 }
23 ]
24}

Understanding triage

The top-level triage reflects the worst-case outcome across all executed checks. A single amber skill produces an overall amber result.

GreenAll clear. No issues found.
AmberReview needed. Findings require attention.
RedFail. Escalation required.