Developer platform¶
The Venturi developer platform exposes the same attribution graph that powers the dashboard as a first-class, versioned API. Read attributed cost, energy, and carbon; create exports; manage budgets, API keys, and webhooks; and stream attribution events into your own tooling: all over a stable REST contract with typed SDKs, a sandbox, and a deprecation policy designed to operate for years without breaking downstream systems.
Every tenant runs on a dedicated data plane: inside your own cloud account when self-hosted, or operated single-tenant by Venturi on the SaaS tier (see Deployment modes). Every response is tenant-scoped, and no prompt or completion content is ever stored or returned: attribution results carry metadata, evidence, and confidence, never the underlying AI content.
What you can build¶
| Goal | Surface |
|---|---|
| Push AI inference events into the attribution pipeline | Ingestion API |
| Read attributed cost / energy / carbon for chargeback | REST API: GET /v1/attribution |
| Generate FOCUS-aligned chargeback exports | REST API: POST /v1/exports/focus |
| React to attribution, coverage, budget, and connector events | Webhooks |
| Ship integrations in TypeScript or Python | SDKs |
| Develop and test against synthetic data | Sandbox |
| Plan for limits, versions, and deprecations | Versioning & rate limits |
The surfaces¶
Venturi exposes three API surfaces from the same deployment host. Use the tenant data API for attributed results and exports, the product API for configuration and ingestion, and the partner API for partner-scoped integrations.
All three surfaces have a ≥12-month deprecation window. Product API operations are permission-scoped; Partner API tokens are partner-scoped.
| Surface | Audience | Base path |
|---|---|---|
| Tenant data API | Your engineers and FinOps teams | /v1 |
| Product API | Tenant admins and event producers | /api/v1 |
| Partner API | iPaaS / connector / marketplace partners | /api/partner/v1 |
Base URL
Examples use the placeholder https://<your-venturi-instance>. On the
SaaS tier, substitute https://; self-hosted,
substitute your own instance host. See
Deployment modes. Every path in these pages
is relative to that base.
Core principles¶
The developer platform is built on a small set of guarantees you can design against:
- Read-only by default. Connectors and integrations read; they never write to your AI systems. Attribution runs asynchronously, off the request path of your AI traffic. The optional drop-in proxy, which does sit in that path, runs the decision-time interceptor and fails open.
- Fail-open never blocks your AI. Venturi processing never blocks or fails AI traffic it has admitted: a slow or unavailable Venturi dependency means the request is forwarded unmodified. In Active (Gate) mode, Venturi issues a signed enforcement recommendation and your own enforcement point decides whether to apply it. Attribution that cannot be resolved is reported with its actual output state (see confidence and evidence) rather than guessed. Security-relevant operations (authentication, authorization, tenant isolation, exports, and billing) fail closed, so the drop-in proxy rejects a provider key that is not registered to your tenant before it forwards anything (see tenant admission).
- No content capture. Request and response bodies of your AI calls are never stored. Error and event payloads are scrubbed of any content keys.
- Every result is explainable. Attribution responses carry an evidence card: which pipeline stage produced the result, its confidence band, the evidence basis, the model version, the current degradation state, and data freshness.
- Stable for years. Within a major version no field is removed, renamed, retyped, or narrowed, and no closed enum loses a member. Breaking changes ship as a new major version served in parallel.
A first call¶
Every read is authenticated and tenant-scoped. The smallest useful call lists recent attribution records:
curl "https://<your-venturi-instance>/v1/attribution?limit=5" \
-H "Authorization: Bearer $VENTURI_TOKEN"
{
"data": [
{
"id": "attr_01HF8SNWNW4VMC42M411HGMRWC",
"invocation_id": "inv_01HF8YKE42NXAT95733Q9N16Q2",
"provider": "openai",
"served_model": "gpt-4o",
"cost_usd": "0.0142",
"output_state": "strongly_inferred",
"interpretation": {
"stage_origin": "stage_b",
"confidence": 0.91,
"confidence_band": "chargeback_ready",
"evidence_basis": "identity_resolved",
"model_version": "rail-2025.11",
"degradation_state": "none",
"freshness": "fresh",
"export_eligibility": "eligible"
}
}
],
"page": {
"next_cursor": "eyJzb3J0IjoiLWNyZWF0ZWRfYXQifQ.IrYusFGVqRpbbQNLuBAHozf0AEG04Xie",
"limit": 5,
"has_more": true
}
}
Continue to the REST API reference for authentication, scopes, pagination, idempotency, and the full error model.
Where to go next¶
- REST API: auth, scopes, pagination, errors, idempotency.
- Webhooks: events, signing, verification, retries.
- SDKs: TypeScript and Python clients.
- Sandbox: test mode against synthetic data.
- Versioning & rate limits: limits, versions, and deprecation.
Sign in to send feedback. Opens in a new tab.
Copy page details
Docs feedback: Developer platform
Page: https://docs.venturi.systems/developers/