Aperio

Documentation

Aperio platform

Aperio is a free, open-source API platform: interactive documentation, linting, mocks, and version diffs for OpenAPI and Swagger — designed as a modern alternative to paid docs products.

Platform overview

Aperio is intentionally a free engine (not a paid multi-tenant portal). You own the OpenAPI file; use playground, embed, or self-host to publish. See How to publish.

API Reference

Renders OpenAPI 3.x / Swagger into a three-pane experience: navigation (endpoints, models, security), documentation, and a sticky request client.

  • ⌘K command palette & method filters
  • Focused or classic scroll layouts
  • Try-it-out with Bearer / API key / Basic
  • Custom headers, env vars {{KEY}}, history
  • 10 code languages + export JSON/YAML
  • Deep links via #operationId

Playground

Paste JSON/YAML, upload a file, fetch a public URL (via proxy), or edit live. Recent specs stay in your browser only.

Linter

Scores specs 0–100 (grade A–F). Rules cover servers, operationIds, summaries, tags, responses, path parameters, security schemes, and schema hygiene.

POST /api/lint
{ "openapi": "<json or yaml string>" }

Mock

Matches method + path against your document and returns example bodies from OpenAPI media types / schemas.

POST /api/mock
{
  "openapi": { ... },
  "method": "GET",
  "path": "/pets/1"
}

Diff

Load a baseline and an updated document. Aperio reports added, removed, and changed operations, schemas, and servers.

Embed

Chrome-less reference for product docs:

<iframe
  src="https://aperio-nine.vercel.app/embed?url=https://YOUR/openapi.json"
  style="width:100%;height:80vh;border:0"
/>

Or ?sample=petstore for the built-in demo.

Self-hosting

git clone https://github.com/sachinkr7368/aperio.git
cd aperio && npm install
npm run dev     # local
npm run build && npm start
# or: npx vercel

No environment variables required for the free default setup.

FAQ

Is Aperio free?

Yes. MIT licensed, no signup wall, full feature set on the Community tier.

Do you store my specs?

Paste/upload stay in the browser. URL fetch and mock/lint APIs process requests ephemerally — no account database.

How is this different from a docs-only UI?

Aperio pairs the reference with lint, mock, and diff so you can improve and ship APIs — not only render them.