Machine registers
What an agent or a generator reads before its first call, with no key. Each register is a row of the operation registry, served by every brand. Every value below is lingua's.
magic values: none
GET /:service.json service.quote live Read a Service as JSON, keyless; past the buyer key's cap, the checkout offer.
POST /:service/waitlist service.waitlist live Join the waitlist of a Service that takes no orders yet: the next a not_live answer names.
GET /.well-known/agents.json brand.card live The brand's agent card: its Services, its access ladder, tools, links and probes.
GET /openapi.json brand.openapi live Every operation, as OpenAPI 3.1, with its webhooks.
GET /llms.txt brand.llms live What an agent reads first: the Services, and every operation.
GET /manifest.json brand.manifest live Every Service, as the manifest.
GET /pricing brand.pricing live The pricing document: calls are free, and only an order charges, at its Service's price. Every price, and the buyer key's hard ceiling.
GET /verify/suite.json brand.verify live The brand's conformance suite: one case per operation row, live credential and magic value, with its auth, audience, replay and next cases, over HTTP and MCP. services.dev verify runs it.| Register | Route | For | What in your Services shapes it |
|---|---|---|---|
openapi.json | GET /openapi.json | a generator: every operation as OpenAPI 3.1, with webhooks | each Service's input, as its order route's body |
llms.txt | GET /llms.txt | an agent: the Services, how to order, and every operation | each Service's name, description, price sentence and human sentence, and an order it can send |
agents.json | GET /.well-known/agents.json | an agent: the access ladder, links, probes and tools | your Services and their order tools |
/pricing | GET /pricing | anyone: every price, and the buyer key's cap as hardCeiling | each Service's price |
manifest.json | GET /manifest.json | the CLI, the SDK generator and diff: every Service, whole | every key of every Service |
llms-full.txt | GET /llms-full.txt | an agent: every docs page in one file | your generated docs |
.md twins | every page's URL plus .md | an agent: each page as Markdown | your generated docs |
family.json | GET /family.json | an agent: the sibling brands one door links | your brands |
magic values: none
$ curl http://localhost:8787/openapi.json
openapi 3.1.0
info "lingua" · version 2026-10-25
paths 87
components securitySchemes (1), schemas (5)
webhooks 58: job.ordered, step.committed, step.skipped, job.paused, job.delivered, job.sent_back, job.accepted, job.canceled, job.ended, job.at_risk, job.late, policy.set, signal.raised, outcome.reported, charge.held, charge.collected, charge.earned, charge.released, charge.voided, charge.refunded, submission.sent, receipt.accepted, receipt.rejected, receipt.timed_out, ask.opened, item.done, ask.reminded, ask.done, ask.expired, ask.voided, ask.relinked, grant.given, grant.expired, grant.revoked, thread.posted, message.sent, consent.given, clock.opened, clock.noticed, clock.escalated, clock.ack_due, clock.ack_missed, clock.ran, clock.moved, clock.due, clock.satisfied, clock.rolled, clock.recurred, clock.acked, clock.chosen, clock.assigned, clock.outlived, subscription.created, subscription.renewed, subscription.minted, allowance.used, allowance.exceeded, subscription.canceled| Generated from | Shows as |
|---|---|
| each operation row | one path item, operationId the row's id, its answers narrowed to the row's codes |
| the buyer's events | webhooks, one per event |
| the credentials | securitySchemes, a bearer key |
| every write | an Idempotency-Key header parameter |
| the version | info.version, and a Services-Version header parameter |
| below | one path item and one webhook, whole |
magic values: none
$ curl http://localhost:8787/openapi.json # one path item and one webhook, whole
{
"openapi": "3.1.0",
"info": {
"title": "lingua",
"version": "2026-10-25",
"description": "lingua's API: one operation per row of its contract. A list answers OK or EMPTY in its type, a price OFFER and a no BLOCKED, and every no is the one error shape."
},
"paths": {
"/jobs/{id}/accept": {
"post": {
"operationId": "job.accept",
"summary": "Accept a delivered job. It is final; a job nobody accepts is final 7 days after delivery.",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,magic values: none
$ curl http://localhost:8787/llms.txt
# lingua
> lingua sells Certified Translation, Store Listing, Translated Summary and Translation. Order over MCP at http://localhost:8787/mcp or HTTP; every price is at http://localhost:8787/pricing.
## Certified Translation
A translated document with its certificate. $189 per job, within 3 days, charged on delivery. A sworn translator in the job's country signs before the certify step.
MCP: order_certified_translation at http://localhost:8787/mcp
```
curl http://localhost:8787/jobs -H 'content-type: application/json' -d '{"service":"certified-translation","document":{"url":"https://example.com/document.pdf","name":"document.pdf"},"to":"fr","country":"FR","max_usd":189,"key":"any-string-you-choose"}'
```
## Store Listing
Your app store listing, written for each language you sell in. $29 per job, within 48 hours, charged on delivery. AI delivers every job.magic values: none
$ curl http://localhost:8787/.well-known/agents.json
# access.ladder: each rung, what it holds, its status, and how many operations it can call
anonymous nothing live 14 Read the card, the prices, the docs and each Service as JSON, and join a waitlist.
identified sk_test_ live 37 Order, read, wait, accept, send back and cancel in the sandbox; run test clocks; watch events.
verified sk_live_ live 35 The same calls, with real money: a person verified the key and set its cap at checkout.
delegated dlg_ live 31 Act for a party, scoped by Service and time: order within its cap, answer and upload on their asks, read their jobs.
# access.auth
{
"scheme": "bearer",
"header": "Authorization: Bearer <key>",
"test_key": "sk_test_7Hq2",
"localhost": "a call with no key uses the test key"
}
# links
{
"mcp": "http://localhost:8787/mcp",| See | |
|---|---|
| Credentials | every credential, and what each can call |
magic values: none
$ curl http://localhost:8787/pricing
{
"model": "free",
"charges": "orders",
"says": "Every call is free. Only an order charges, at its price, once its record holds what the price releases on. Past the buyer key's cap, an order gets the OFFER.",
"hardCeiling": 500,
"unit": "usd-per-buyer-key",
"offers": [
{
"id": "order_certified_translation",
"usd": 189,
"per": "job",
"charged": "on delivery",
"sentence": "$189 per job, within 3 days, charged on delivery."
},
{
"id": "order_store_listing",
"usd": 29,magic values: none
$ curl http://localhost:8787/manifest.json
brand lingua
version 2026-10-25
keys brand, version, services, tools, portals, rendered, fold
services certified-translation, store-listing, translated-summary, translation
# services[translation], key by key
id "translation"
name "Translation"
description "Translation: send a document and a language; get a document back."
input {"type":"object","properties":{"document":{"type":"object","properties":{"url":{"type":"string",…
output {"type":"object","properties":{"document":{"type":"object","properties":{"url":{"type":"string",…
deliver [{"step":"draft","by":"ai","brief":"services/translation.md"}]
review "adversarial"
human {"sentence":"AI delivers every job."}
price {"per":"job","cents":4900,"within":"48h","ai_cap":"20%","final_after":"7d","charged":"on deliver…
surfaces {"site":"/translation","route":"POST /jobs {\"service\":\"translation\"}","tool":"order_translat…| See also | |
|---|---|
| Your API | the routes, and the keyless first call |
| Answers | what every call answers |
| The manifest | every key of a Service, as the manifest writes it |