Base URL
https://os.caugia.com
Endpoints
Try it now
Hit the live API directly from this page. Responses are not cached for try-it-now requests.
/api/sophie/v1/knowledge-statsStatystyki wiedzy (GET)/api/sophie/v1/resolveRozwiaz token cytatu (POST)Body zapytania
/api/sophie/v1/previewPodglad archetypu (POST)Body zapytania
/api/sophie/v1/leaderboard?days=7&limit=5Ranking (GET)Cookbook
Six worked examples covering the typical integration patterns. Copy, paste, run.
1. Resolve a citation token (cURL)
Sophie emitted [framework:porter_5_forces] in a chat - resolve it to a hover card.
curl -s https://os.caugia.com/api/sophie/v1/resolve \
-H "Content-Type: application/json" \
-d '{"tokens":[{"type":"framework","slug":"porter_5_forces"}]}'bash
2. Preview an archetype (cURL)
Get the structured citation block Sophie would emit for SaaS B2B + pricing_governance.
curl -s https://os.caugia.com/api/sophie/v1/preview \
-H "Content-Type: application/json" \
-d '{"vertical":"saas_b2b","archetype_id":"pricing_governance"}'bash
3. Fetch the 7-day leaderboard (cURL)
Top 5 cited entities over the last 7 days.
curl -s "https://os.caugia.com/api/sophie/v1/leaderboard?days=7&limit=5"
bash
4. Knowledge stats (JavaScript)
Display "Sophie knows X frameworks" on a marketing site.
const r = await fetch('https://os.caugia.com/api/sophie/v1/knowledge-stats');
const stats = await r.json();
console.log(`Sophie cites ${stats.total} entities (${stats.frameworks} frameworks, ${stats.papers} papers, ${stats.blogs} essays).`);javascript
5. Batch resolve from a Sophie response (JavaScript)
Scan a chat string for citations, batch-resolve them in one call.
const text = await sophieChat(); // e.g. "...as [framework:jobs_to_be_done] suggests..."
const tokens = [...text.matchAll(/\[(framework|paper|blog):([a-z0-9_-]+)\]/g)]
.map(m => ({ type: m[1], slug: m[2] }));
const r = await fetch('https://os.caugia.com/api/sophie/v1/resolve', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ tokens }),
});
const { resolved } = await r.json();
const cards = new Map(resolved.map(e => [`${e.type}:${e.slug}`, e]));javascript
6. Free-text preview from a Slack bot (JavaScript)
Pass a natural-language constraint, let Sophie guess the archetype.
const r = await fetch('https://os.caugia.com/api/sophie/v1/preview', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
vertical: 'dtc',
free_text: 'meta CAC up 40% MoM, creative refresh stalled',
}),
});
const preview = await r.json();
return preview.framework_applications.slice(0, 3);javascript
Rate limits + caching
GET endpoints are cached 60 seconds at the edge with stale-while-revalidate. POST endpoints are not cached. Soft limit: 60 requests per minute per IP. Hard limit: 600 requests per minute. Webhooks and high-volume use cases should email api@caugia.com.
OpenAPI spec
Machine-readable spec at /api/sophie/openapi.json. Drop into Swagger, Postman, or your preferred client generator.
/api/sophie/openapi.json ->