Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/jaxon-ai:jaxon-ai-operations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Agent API — REST door Operations API
description: 'Formal policy results over a claim dictionary: every assertion in a ruleset, with what the engine concluded about it. One engine sits behind this door and an MCP door, and both return identical bytes. This service never calls an LLM: extraction happens on your model, against the prompt pack this API generates. DSAIL ruleset grammar (v1.3), the subset this service compiles to SMT:
version 1.3; -- optional; 1.2 and 1.3 are accepted
declare as boolean; -- a yes/no claim
declare as numeric; -- a number; units go on literals (below)
declare as enum ["a","b"]; -- ORDERED vocabulary (comparable with )
declare as enum {"a","b"}; -- UNORDERED vocabulary (== and != only)
declare local as boolean; -- rule-local; NOT a claim, never extracted
assert { }; -- the rule. Holds => compliant. assert [pessimistic] { ... }; -- unknown-resolution policy:
-- optimistic | pessimistic | neutral
Enum members are double-quoted strings. Every statement ends with a semicolon. You do not write `let` bindings for claim values — this service injects them
from the claim dictionary you submit to check. Literals:
numbers 42 3.5 0.05
with a unit 3000 "mi" 25000 "USD" 0 "USD"
-- a number followed by the unit as a QUOTED string. A bare
-- unit word is a syntax error: 3000 mi fails to parse. booleans True False
-- capitalised. Lowercase true and false are read as
-- identifiers and fail as undefined variables. enum members "low" "high" -- double-quoted strings
Expressions:
comparison == != >= (thresholds are STRICT: > means
strictly greater, NOT at-or-above. Write >= if you mean at-or-above. Equality is ==, not =.)
arithmetic + - * / %
LOGIC IS FUNCTION-STYLE, NOT INFIX. There is no `and`/`or`/`not` keyword:
And(a, b, ...) Or(a, b, ...) Not(a)
Xor(a, b) Implies(a, b) If(cond, a, b)
conditional IF THEN [ELSE ] END
CASE OF "x": , "y": , DEFAULT: END
quantifiers ForAll(x in s, p) Exists(x in s, p)
AtLeast(n, x in s, p) AtMost(n, x in s, p)
ExactlyOne(x in s, p) CountWhere(x in s, p)
sets IsMember(v, s) IsSubset(a, b)
Union(a, b) Intersect(a, b) Difference(a, b)
What a check answers. Every assertion gets its own result, and that is the
whole answer:
TRUE the assertion holds
FALSE the assertion is violated
UNKNOWN a claim it needs was submitted as unknown, or is unconstrained
AMBIGUOUS reserved. It means an assertion''s evidence contradicted
itself, which needs several answers for one claim. A claim
dictionary holds exactly one value per claim, so no check
submitted to this service produces it. Handle the word if you
switch on results; there is no input that triggers it. There is no combined verdict, no severity and no ranking. What a violated
assertion should cost — a refusal, a human review, a note in a file — is a
decision for the system reading the result, and this service does not make it. Host annotations. These are ordinary DSAIL comments, invisible to the compiler,
read by this service. Every one of them describes a CLAIM — what to ask for it
and what a valid answer looks like. None of them decides an outcome:
// @ask What is ...? -- the question shown to an extractor
// @context -- extra context for the extractor
// @range 0..100 -- numeric bounds, enforced at check time
// @unit USD -- expected unit for a numeric claim
@effect, @effect-default and @consistency are NOT recognised. A ruleset
carrying one does not compile. Rule descriptions. Directly above every assert, with no blank line between,
write what the rule requires in plain words as an ordinary comment block (no
@ tag). The review widget shows it as the rule''s description and a person
edits it there, so it must say what the assert beneath it actually checks. dsail_compile over MCP refuses an assert that has none, naming its line. Worked example:
version 1.3;
// @ask loanAmount What is the loan principal, in USD? // @unit loanAmount USD
// @range loanAmount 0..100000000
declare loanAmount as numeric;
// @ask hasAppraisal Does the file contain a completed appraisal?'
version: 1.1.1
tags:
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://artifacts.apis.io/jaxon-ai/openapi/jaxon-ai-operations-api-openapi.yml