LAPIS
LAPIS (Lightweight API Specification for Intelligent Systems) is a compact, LLM-native API description format authored by Daniel Garcia (cr0hn). It is designed as the format you convert your OpenAPI specifications to when the consumer is a Large Language Model rather than a code generator or human reader. By replacing JSON/YAML structural overhead with a function-signature syntax, indentation-based sections, and centralized definitions for errors, webhooks, rate limits, and workflows, a typical LAPIS document carries the same semantic information as its OpenAPI source while consuming roughly 70-80 percent fewer tokens. LAPIS is not a runtime format and does not replace MCP, function calling, or OpenAPI itself - it is an intermediate representation optimized for AI agents that need to reason about an API inside a constrained context window.
Limited machine-readable signal and partial portal coverage — documentation a human can read, but little a machine or agent can consume without scraping.
API Evangelist profiles LAPIS the way a machine reads it — 33 machine-readable artifacts across 1 API, pulled from the provider's own public surface and indexed so a developer, an analyst, or an AI agent can evaluate it against every other provider on the network.
Every provider in the network is reduced to the same set of machine-readable artifacts — OpenAPI contracts, event specifications, GraphQL schemas, runnable collections, pricing and rate-limit signals, security posture, OAuth scopes, and the agent surfaces (MCP servers and skills) that let software drive the API on its own. We profile them because the interface is the part of a company you can actually inspect: it is a truer signal of what a provider does than any marketing page. From those artifacts we compute the Kin Score — LAPIS scores 33.9/100 (thin), with a separate agent-readiness read of 1/100 (human only). The full breakdown is below, followed by every artifact we hold — each card links through to its machine-readable definition on apis.io.
Kin Score
This is the API Evangelist rating — a single, repeatable read computed from the artifacts on this page. Green fill is points earned; the red track is points possible, so every bar shows earned-versus-possible at a glance. Every facet and dimension name is a link: it opens that measurement's page on APIs.io, where the rating runs across the whole catalog — the exact checks that feed it, how every profiled provider distributes on it, and who is at the top of it.
Put this on your own site. The badge is drawn live from LAPIS's current Kin Score — paste it once and it updates itself every time the score is recomputed. It follows your visitor's light or dark setting, and it links back here so anyone who sees it can read the full breakdown.
<!-- Kin Score · API Evangelist -->
<a href="https://providers.apievangelist.com/providers/lapis/"
title="LAPIS on API Evangelist — API profile and Kin Score">
<img src="https://apis.io/badge/lapis.svg"
alt="LAPIS Kin Score — API readiness rating by API Evangelist" width="150" height="150" loading="lazy">
</a>
[](https://providers.apievangelist.com/providers/lapis/)
<!-- Kin Score · API Evangelist -->
<a href="https://providers.apievangelist.com/providers/lapis/"
title="LAPIS on API Evangelist — API profile and Kin Score">
<img src="https://apis.io/badge/lapis/card.svg"
alt="LAPIS Kin Score — API readiness rating by API Evangelist" width="340" height="120" loading="lazy">
</a>
More shapes, themes and sizes → · Score as JSON · How badges work
How we profile LAPIS
Each block below is one kind of artifact we hold for LAPIS. For each we say what it is and why it earns a place in the profile, then list every one we've indexed — capped at two rows, scroll within the panel for the rest.
APIs 1
Each API is captured as its own OpenAPI definition — every operation, parameter, and response. This is the single most useful machine-readable description of what an API does, and it's what lets us score, lint, mock, and generate against it without asking the provider for anything.
Individual APIs this provider publishes, each with its own machine-readable definition.
LAPIS Specification
The LAPIS specification defines a token-minimal, LLM-native format for describing HTTP APIs. A LAPIS document is organized into up to seven indentation-based sections - [meta], ...
Features 13
The notable capabilities this provider advertises, captured as structured features so they can be searched and compared instead of read one landing page at a time.
Notable capabilities this provider offers.
Function-Signature Syntax for APIs
LAPIS uses operation headers shaped like function signatures (operation_name METHOD /path), input parameters prefixed with > and outputs prefixed with <, so an LLM reads each en...
Seven-Section Document Model
A LAPIS document is composed of up to seven sections in a fixed order - [meta], [types], [ops], [webhooks], [errors], [limits], and [flows] - with [meta] and [ops] required and ...
Centralized Error Definitions
Errors are declared once in [errors] using HTTP code plus a snake_case identifier, optionally bound to specific operations via @ops:name1,name2, eliminating the per-operation du...
First-Class Webhook Triggers
The [webhooks] section captures both the payload shape and the trigger condition (lines prefixed with !) that fires the event, giving an LLM the why of an event rather than only...
Structured Rate Limits and Quotas
The [limits] section expresses rate limits, quotas, body size caps, batch size caps, and tiered plan blocks as first-class declarative fields with scope annotations like @key, @...
Multi-Step Workflow Flows
The [flows] section describes how operations chain together using step1 -> step2 -> step3 notation, with branches (|), loops (*), waits (...(condition)), and inter-step data pas...
Field Versioning and Deprecation
Field-level @since:X.Y annotations let an LLM determine whether a given field exists at the API version declared in [meta], and @deprecated optionally followed by a quoted note ...
Operation Modifiers
Operations can carry +paginated, +deprecated, +idempotent, and +stream modifiers appended after the path, signaling pagination, retry safety, streaming response semantics, and d...
Inline Object Types
Types used by only a single operation can be inlined directly in the parameter list using {field: type, field: type} or [{field: type}] notation, avoiding pollution of [types] w...
70-80 Percent Token Reduction
For a representative mid-size API (11 operations, 8 types, 3 webhooks, 10 errors, limits, 4 flows), LAPIS measures roughly 1,500 tokens versus 6,500 for the equivalent OpenAPI Y...
Deterministic OpenAPI Conversion
Section 14 of the spec defines field-by-field rules for converting OpenAPI 3.x into LAPIS, covering info, servers, securitySchemes, components.schemas, paths, webhooks, x-rateLi...
Formal EBNF Grammar
The specification ships a simplified EBNF grammar covering all seven sections, type expressions, modifiers, annotations, comments, and primitive lexical tokens, providing a norm...
Bilingual Specification
The LAPIS specification is published in parallel English (spec.en.md) and Spanish (spec.es.md) editions, with matching walk-through examples (spec-example.en.md and spec-example...
Scroll within the panel for all 13 ·
Semantic Vocabularies 1
JSON-LD contexts give the data shared meaning across APIs. We profile them because semantics are what let a machine reconcile 'customer' here with 'customer' somewhere else.
JSON-LD contexts and semantic vocabularies used across these APIs.
Lapis Context
JSON-LDSpectral Rules 1
Governance rulesets we run against this provider's specs — the automated checks behind parts of the score. Profiling them makes the quality bar explicit and re-runnable, not a matter of opinion.
LAPIS API Rules
SPECTRALJSON Schema 1
Standalone JSON Schema definitions describe the data models behind the API. We profile them so the shapes are validatable on their own — useful long after a single request is forgotten.
Standalone JSON Schema definitions for this provider's data models.
LapisDocument
JSON SCHEMAJSON Structure 1
JSON Structure captures the data shapes in a form built for tooling — a complement to JSON Schema that keeps the model machine-legible.
JSON Structure definitions describing this provider's data shapes.
Lapis Document Structure
JSON STRUCTUREUse Cases 8
What developers actually build with this provider — captured so the catalogue answers 'what is this for', not just 'what does this expose'.
What developers build with this provider.
Reducing LLM Context Cost
Engineering teams whose AI features pass an OpenAPI specification into prompts on every call convert the spec to LAPIS once and pass the smaller LAPIS document instead, reducing...
Powering AI Coding Assistants
AI coding assistants that need to reason about a third-party API (generating client code, debugging a failing call, suggesting an endpoint) consume LAPIS as the API context laye...
Multi-Step API Agent Planning
AI agents executing multi-step API workflows (create customer, create invoice, send invoice, await payment webhook) load a LAPIS document with a populated [flows] section so the...
Webhook-Aware Integrations
Integration platforms that build webhook receivers use the [webhooks] section's trigger conditions (!) and headers (@header:X-Event-ID) to generate signature verification and ev...
Plan-Aware Rate Limit Enforcement
Client SDKs and gateway integrations consume the [limits] section to configure backoff, request-throttling, and quota tracking per plan tier (free, pro, enterprise) and per scop...
Specification Linting and Validation
Tooling vendors and platform teams enforce LAPIS-conformant documents by validating against the EBNF grammar in spec section 16, catching missing required sections, invalid type...
Cross-Provider API Comparison
Because LAPIS strips presentation overhead and centralizes errors, limits, and flows, two LAPIS documents from different providers can be diffed and compared more directly than ...
Onboarding Documentation for Internal APIs
Platform teams generate LAPIS from internal OpenAPI sources to provide on-call engineers and product stakeholders a quickly readable, function-signature view of the company's se...
Scroll within the panel for all 8 ·
Integrations 7
Pre-built integrations with other platforms tell you where this provider already fits in a stack.
Pre-built integrations with other platforms and tools.
OpenAPI 3.0 and 3.1
OpenAPI is the canonical source format for LAPIS. The lapis-spec Python tool ingests OpenAPI 3.0.x and 3.1.x in JSON or YAML, resolves $ref including circular references, flatte...
PyPI (lapis-spec)
The reference command-line converter is published to PyPI as lapis-spec and exposes a lapis console script. Installation is pip install lapis-spec or uv pip install lapis-spec, ...
Visual Studio Code
The LAPIS Language extension (publisher lapis-spec, identifier lapis-lang) provides syntax highlighting for .lapis files, including section headers, scalar types, modifiers, IO ...
Web Browser Converter
A static JavaScript single-page application at https://cr0hn.github.io/LAPIS/ runs the OpenAPI to LAPIS conversion entirely in the browser via converter.js, highlighter.js, and ...
MCP and Function Calling
LAPIS is positioned alongside (not as a replacement for) MCP and function calling. A LAPIS document is the context-layer description an LLM reads to understand an API; MCP serve...
Creative Commons Attribution 4.0
The specification text is licensed under CC BY 4.0, allowing adaptation, distribution, and commercial use provided attribution is given. The reference tooling (lapis-spec Python...
GitHub Pages
The browser-based converter is hosted on GitHub Pages from the cr0hn/LAPIS repository at https://cr0hn.github.io/LAPIS/, making it accessible without local installation or API k...
Scroll within the panel for all 7 ·
Resources
Every other property we hold for LAPIS — documentation, portals, status pages, policies, and corporate surface — grouped by the job it does, following the integrator's arc from getting started to running in production.
Get Started 3
Portal, sign-up, and the first successful call
Documentation 3
Reference material describing how the API behaves
Design & Contract 3
Pagination, idempotency, versioning, errors, and events
Build 11
SDKs, sample code, and the tooling you integrate with
Scroll within the panel for all 11 ·
Access & Security 2
Authentication, authorization, and security posture
Operate 4
Status, limits, changes, and where to get help
Commercial 1
Pricing, plans, and the legal terms of use
← All providers · Data indexed from github.com/api-evangelist/lapis · machine-readable index on apis.io
This is an independent, third-party profile of LAPIS, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.
The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.
Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.
info@apievangelist.com
·
Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and
you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.