Your OpenAPI spec, all the way to production.
A docs site, SDKs in ten languages, an MCP server for agents, and monitoring that tells you when those SDKs break in production. One spec generates all four and keeps them current.
Upload a spec once. Ship four products
Docs, SDKs, monitoring and agent tools. Each one stands on its own. They just happen to be better together.
- input
Your spec
Any format: OpenAPI, Swagger, Postman or AsyncAPI, JSON or YAML. Normalised to OpenAPI 3.1.
Docs site
Written, edited, published
SDKs · 10 languages
Tuned to your house style
Observability
What breaks, and why
MCP server
Your API as agent tools
Four products, one platform
API Studio
Docs from your spec
Documentation your readers actually finish. Generated from the spec, edited by you, published to your own domain.
Explore API StudioSDK Studio
Ten languages, zero forks
Idiomatic client libraries in 10 languages. Configure them, don't fork them. Auto-publish to every registry.
Explore SDK StudioMonitoring
Errors traced to a commit
What breaks, and why. Errors grouped and traced to a commit, from your SDKs or your own backend.
Explore MonitoringMCP
Your API as agent tools
Your API becomes context and callable tools for Claude, Cursor, and any MCP client.
Explore MCPDocs worth reading, from the spec you already have
AI writes the first draft for every endpoint. You edit it like a document. Nobody has to open the YAML.
- Three-column endpoint pages with schema trees that open a level at a time
- Live “try it” playground on every endpoint
- MDX guides alongside the generated reference
- Custom domains and white-label on every tier, so it stays your brand
Ten languages, built to your conventions
Rename methods, exclude endpoints, pick your HTTP engine and folder structure. Then let it publish itself.
- Per-language config for namespaces, pagination, idempotency and code style
- Custom hooks you write, compiled into the client
- Auto-publish to npm, PyPI, Maven, crates.io, RubyGems and more
- Build history so you can see exactly what shipped and when
Find out what breaks before your customers tell you
Two ways in: flip it on and the telemetry compiles into your generated SDKs, or drop the standalone package straight into your backend. Either way, there's no agent to deploy and nothing to instrument.
Logs
Query structured events directly by level, route, status code or release.
Issues
Errors grouped by fingerprint, each with the function and file that threw it.
Traces
One request end to end across client, server, cache, database and queue, with the slow span called out.
Service map
Every service, the calls between them, and the error rate on each edge.
N+1 queries
The same query fired in a loop, found for you and counted across traces.
Uptime
Synthetic probes on a schedule, with the run history behind every endpoint.
Alerts
Fire on burn rate and regressions, so a single stray 500 never wakes anyone.
Security
Credentials and identifiers are redacted client side before an event leaves your process, then again at ingest.
Monitoring is off by default and switches on from the dashboard. Credentials and direct identifiers, from tokens to email, phone and IP, are redacted on the client side, before an event leaves your process, then again at ingest. Personal context waits on your app's consent, under a pre-signed GDPR Article 28 DPA.
See MonitoringStop agents from hallucinating your API
MCP is how an agent reaches something it was never trained on. Without it, Claude or Cursor integrates your API from memory. With it, one command turns your project into a server they connect to. Then they list your real endpoints and call them.
- Seven documentation tools to search, read and navigate your docs
- One callable tool per endpoint, so the agent can hit your API for real
- Curated by SDK Studio, so your exclusion list becomes the agent's permission list
- One line to install:
npx @octri/mcp, with nothing to host
Is your spec ready for code generation?
Paste your OpenAPI URL and get a score out of 10, on the same rules the SDK Studio runs. You see every missing schema, undeclared path parameter and awkward method name, before anyone generates a client from it.
An example audit runs alongside: a readiness score of 6.8 out of 10 across 24 operations, with the rules the spec passed and failed scrolling past it.
What the fourteen rules check, and what each one costs a generated SDK.
Change one. All four follow
Deprecate an endpoint in API Studio and the SDKs mark the method, the agent tools stop offering it, and monitoring shows you who still calls it. Add a language, cut a release, push a new spec: the same thing happens. There is one source underneath all four, so there is never a second place to go and update.
Everyone else stopsat “here's your SDK.”
That's the moment your code leaves your visibility. It runs on someone else's machine, fails on someone else's machine, and you hear about it in a support ticket three days later.
From spec to shipped in an afternoon
The whole pipeline from one OpenAPI spec: API documentation, client libraries in ten languages, an MCP server and production monitoring.
Connect your spec
Upload a file or link a GitHub repo. Coming from Postman or AsyncAPI? We translate it.
Review the draft
AI writes docs for every endpoint. Edit anything, publish when it reads right.
Pick your languages
Configure the SDKs, flip on monitoring, build. They publish themselves.
Push to repository
Every spec change reruns the whole pipeline. Docs, SDKs, agent tools, all in sync.
One spec, ten client libraries
Every client is generated from the same OpenAPI document and published to the registry its own users already install from.
TypeScript
Publishes to npm with the type definitions generated from your spec. fetch or axios.
Python
Publishes to PyPI. Async first, with optional sync variants and a choice of data model.
Go
Distributed by git tag, so go get resolves it straight from your repository. Standard library HTTP.
Java
Publishes to Maven Central, signed, under a groupId on a domain you own.
Dart
Publishes to pub.dev, for Dart and Flutter alike.
Ruby
Publishes to RubyGems, with the class-style client Ruby callers expect.
PHP
Publishes to Packagist, so Composer installs it like every other dependency.
Rust
Publishes to crates.io, and full doc comments become the rustdoc your users read on docs.rs.
Swift
Distributed by git tag and resolved by Swift Package Manager. No registry account.
Kotlin
Publishes to Maven Central. OkHttp or Ktor, whichever your team already runs.
Already on something else?
We read your existing config and bring it across: navigation, custom pages, SDK settings and all. You don't start from a blank project.
See how Octri comparesSimple, combined pricing
Docs, SDKs and monitoring in one plan. Extra SDK languages are a flat add-on.
Extra languages are a flat $50/mo. Save 15% annually.
For side projects and first APIs.
For indie devs shipping real APIs.
For scaling products that need more.
Unlimited scale with SLA guarantees.
| Feature | Free$0/mo | Starter$49/mo | Growth$99/mo | Business$249/mo | EnterpriseCustom |
|---|---|---|---|---|---|
| SDK languages included | 1 | 2 | 4 | All 10 | Unlimited |
| Additional languages | No | +$50/mo each | +$50/mo each | Included | Custom |
| API endpoints | 50 | 100 | 300 | 600 | Unlimited |
| AI credits / mo | 100 one-time | 1,000 | 2,500 | 5,000 | Custom |
| Monitoring ingress / mo | 100 MB | 1 GB | 5 GB | 20 GB | Custom |
| AI-enhanced docs + chat | Yes | Yes | Yes | Yes | Yes |
| GitHub sync | Yes | Yes | Yes | Yes | Yes |
| Custom domain | Yes | Yes | Yes | Yes | Yes |
| Versioning | No | No | Yes | Yes | Yes |
| Custom code & components | No | No | Yes | Yes | Yes |
| White-label | No | No | No | Yes | Yes |
| SDK CDN hosting + auto-publish | No | No | No | Yes | Yes |
| SSO / SAML | No | No | No | No | Yes |
| Support | Community | Priority | Priority | Dedicated |
Notes from building it
What we learn shipping specs, SDKs and telemetry, written up properly.
Questions
Plans, spec changes, editing the generated docs and SDKs, training data and self-hosting.
No. Plans are not per-product, so you can leave one switched off and turn it on months later without redoing anything you have already set up.





