
apidays London 2026 · OpenAPI track
Kin Lane — API Evangelist
1 October 2026 · Convene Sancroft
2021 with a flashlight. 2026 with the catalog.
The map03 / 28| 2021 | Aug 2026 (abstract) | Today | |
|---|---|---|---|
| Providers | 14 | 7,012 | 7,606 |
| As-published OpenAPIs | a few dozen | 15,722 | 24,801 |
Distinct provider x- extensions | ~50 | 1,637 | 2,249 |
| Uses | — | 440,422 | 594,748 |
Stripped before counting: 27,239 HTTP header names that sit where an extension key would, and 5,169 uses of our own markers (42 names).
The map04 / 28Named for a job: 1,847 names. Named for an owner: 402 names carrying 277,485 uses — 47% of all usage. Bars are square-root scaled.
The map05 / 28# the whole process
1 markdown file
1 pull requestSDK generators, documentation platforms and gateways — how one company's words end up in thousands of other companies' contracts.
Part one · The vocabularies that spread07 / 28x-codeSamples: - lang: cURL source: curl -X POST https://api.anrok.com/v1/seller/…
x-codeSamples is in the registry. x-internal — the visibility key 75 providers depend on — is not.
Part one · The vocabularies that spread08 / 28x-speakeasy-name-override: listApplications x-speakeasy-unknown-values: allow # 5,167 uses
Part one · The vocabularies that spread09 / 28x-ms-pageable: nextLinkName: nextLink # 9,578 uses x-ms-long-running-operation: true x-ms-examples: { … } # 11,673 uses
Part one · The vocabularies that spread10 / 28x-amazon-apigateway-integration: uri: arn:aws:apigateway:us-east-1:lambda:path/… arn:aws:lambda:us-east-1:••••••••••••: function:contract-positions/invocations httpMethod: POST
Part one · The vocabularies that spread11 / 28x-readme: code-samples: - language: java install: <dependency><groupId>com.asana</groupId>…
Part one · The vocabularies that spread12 / 28x-stoplight: id: 8v9on8n2939z2
Part one · The vocabularies that spread13 / 28x-stainless-const: true # OpenAI · Groq · Together AI · Cloudflare # SambaNova · Fireworks · Portkey
Part one · The vocabularies that spread14 / 28x-mint: href: /reference/generate-from-template-v2
Part one · The vocabularies that spread15 / 28x-fern-sdk-group-name: forms x-fern-sdk-method-name: list # client.forms.list()
Part one · The vocabularies that spread16 / 28x-tyk-api-gateway: info: { name, state } server: { listenPath, authentication } upstream: { url, rateLimit } middleware: { global, operations }
Sixteen companies. No coordination. By the end of this part, one key means five different things.
Part two · The vocabulary being invented for agents18 / 28| Aug 19 | Today | |
|---|---|---|
| Agent tool-surface keys | 13 | 24 |
| Providers using them | 10 | 16 |
| Share of providers | 0.14% | 0.21% |
Everyone generates MCP servers from OpenAPI — Speakeasy, Stainless, Kong, Apigee, Postman, Zuplo. Almost nobody tells the generator anything.
Part two · The vocabulary being invented for agents19 / 28x-wistia-mcp-annotations: idempotent_hint: true idempotent_hint_justification: Re-sending the same update with identical attributes leaves the resource in the same state…
Part two · The vocabulary being invented for agents20 / 28# Windmill, Algolia x-mcp-tool: true # apis.io, API Evangelist (me) x-mcp-tool: find_artifacts
Part two · The vocabulary being invented for agents21 / 28/purchasereceives: x-mcp-group: - Purchase Receives
Part two · The vocabulary being invented for agents22 / 28x-ctctmcp-tool-desc: >
…default to a polished, production-ready HTML
marketing email, not a schema-valid stub. Treat
any included HTML example as the minimum visual
quality bar…
Part two · The vocabulary being invented for agents23 / 28x-moe-mcp: expose: { external: true, internal: true } tool_description: | Typical agent flow: 1. Call list_offerings 2. Pick the offering ID from the results 3. Call update_offering with that ID
Part two · The vocabulary being invented for agents24 / 28x-mcp-server: name: zuplo-docs version: 1.0.0 tools: - name: search-zuplo-docs
Part two · The vocabulary being invented for agents25 / 28operationId: getDeals x-tool-description: Retrieves paginated active deals… x-token-cost: 10
Part two · The vocabulary being invented for agents26 / 28| Demodesk | x-mcp: {enabled: true, toolName: users_get_me, title: Get current user} | expose, named, with a human title |
| Eon | x-mcp: true | expose |
| Ripio | x-mcp: {enabled: false} | do not expose |
| Dolby | x-mcp: {description: …, destructiveHint: true} | describe, warn — or {expose: false} |
| Redocly | x-mcp: {protocolVersion: …, servers: [ … ]} | where the server is |
x-mcp is truthy. {enabled: false} is a non-empty object. Ripio's hidden operation ships.
27 / 28
Rate this session
Kin Lane — API Evangelist
apis.io/extensions · apievangelist.com · [email protected]

Rate this session