Build integrations on a CRM that ships like Stripe.
First-class REST API. Scoped keys with usage analytics + rate limits + idempotency.
Signed webhooks over 20+ event types with delivery inspector, test-send, replay.
Official SDKs for Node/TypeScript, Python, and PHP. OpenAPI 3.1, Scalar interactive docs,
Postman, and an llms.txt doc your AI tools can consume in one shot.
Apache-2.0 SDKs · v1 stable · Victor drafts your receiver code if you ask
npm install @cortova/sdk
import { Cortova } from '@cortova/sdk';
const ah = new Cortova({ apiKey: process.env.CORTOVA_API_KEY });
for await (const lead of ah.leads.iter()) {
console.log(lead.companyName);
}
Official SDKs in every popular stack
Auto-paginating iterators, typed responses, zero runtime dependencies beyond your language's stdlib.
Node.js / TypeScript
Auto-paginating async iterators on every list resource. First-class TypeScript types.
npm install @cortova/sdk
npmjs.com/package/@cortova/sdk →
Python
Generator-based iterators with cursor handling. httpx-backed. Python 3.9+.
pip install cortova
pypi.org/project/cortova →
PHP
PSR-4 autoloading, PHP 8.1+, curl-based. Generators walk pagination cursors for you.
composer require cortova/sdk
packagist.org/packages/cortova/sdk →
Built like the developer tools you already love
Scoped API keys
Least-privilege scopes per key (read:companies, write:leads, …). Per-key rate limits, IP allowlist, and a daily usage rollup with top-endpoints + error count.
Signed webhooks · 20+ events
Stripe-style v2 signature (t=<unix>,v1=<hex>) defends against replay. Per-delivery inspector with payload + response body. Test-send, one-click replay, and secret rotation.
AI integration assistants
Chat with Victor to design an integration end-to-end. Paste a failure for an instant diagnosis. Auto-generate a receiver in Node, Python, or PHP. Auto-pick the minimum scope set.
Cursor pagination + idempotency
?after=/?limit= with opaque cursors. Idempotency-Key on every POST — retries replay the cached response for 24 hours. ETag/If-None-Match on GETs.
Sparse fieldsets
Ask for just what you need. ?fields=id,name,amount strips the response to those keys — works on every endpoint.
llms.txt for AI tooling
A single Markdown doc at /api/llms.txt describes every endpoint, scope, and webhook event with sample payloads. Drop the URL into Cursor / Claude Code / ChatGPT — your AI gets the whole API surface in one shot.
Every piece of the surface, linked
Build your integration in minutes, not weeks.
Start a free trial, grab an API key, and ship.
Start free trial Browse the API