Europaeuropa.eu

ScoredOct 23, 2026, 01:50 AM

Europa's API program has a solid foundation in API design and agent understanding, but partners and their agents face significant friction at every stage of onboarding and runtime operation. The two most urgent gaps are a complete absence of self-service onboarding infrastructure — no portal, no quickstart, no changelog — and missing operational reliability signals (idempotency, rate-limit headers, pagination) that will cause AI agents to produce duplicate writes, get throttled silently, and read unbounded datasets.

API DesignA clean, typed, well-governed API contract agents can reason about1 pass4 warn0 fail76B
SignalPointsFindingsRationale
warnSchema coverage & depthvia sdk23.2/252 of 76 public signatures use loose types (anyTypeRatio=0.026). Investigated: sdk 93%, spec 75%.
Fix: Replace any/unknown/object/dict/**kwargs in public params and return types with named or primitive types.
Typed, complete request/response schemas are what make agent function-calling possible.
warnMachine-readable, versioned contractvia spec21.9/25The API sets a version ("5.3.13") but exposes no versioning scheme in the URL, a header, or the media type, so an agent can't pin to a specific version. Investigated: spec 88%, docs 75%, cli 75%.
Fix: Pick a versioning scheme (URL path /v1/, Accept: application/vnd.x+json, or a version header) and apply it consistently.
A current OpenAPI version with a declared versioning scheme lets agents reason about the contract.
passSecurity & governance hygienevia spec15/15No credential-shaped strings detected in spec. Investigated: spec 100%, sdk 100%, wellknown 0%.No leaked secrets, no critical lint violations, no OWASP API Top-10 spec smells, and a published vulnerability-disclosure channel.
warnAuth declared & discoverablevia spec6.3/25The spec declares no authentication scheme, so an agent can't tell how to authenticate a request. Investigated: spec 25%, docs 25%, cli 0%.
Fix: Declare an authentication scheme and apply it globally or on every operation that requires credentials.
Agents can only call an API when they can determine its auth posture — a declared scheme, or an explicit statement that none is required.
warnExample coveragevia sdk5/10README is present but has no runnable quickstart. Investigated: sdk 50%, spec 0%, cli 0%.
Fix: Add a runnable quickstart (install + first authenticated call) to the README.
Examples carry shape semantics schemas under-specify — for humans and agents alike.
Developer ExperienceThe context both developers and agents need to integrate fast — onboarding, code samples, complete descriptions and worked examples1 pass0 warn3 fail45F
SignalPointsFindingsRationale
passDescription completenessvia spec15/1594% of operations and parameters carry substantive descriptions (51 of 55 ops, 155 of 163 params), the main semantic cue an agent relies on. Investigated: spec 100%, sdk 100%.Complete descriptions are the context humans and agents need to use endpoints.
failSelf-service developer portalvia docs0/29No self-service signup detected — no signup link on the homepage or docs, and no conventional signup path (/signup, /sign-up, /register, /get-started, /console/signup, /dashboard/signup, /try, /try-free, /free, /free-trial, /start, /start-free, /join, /create-account, /account/signup, /auth/signup, /users/sign_up) resolved — so an agent can't onboard on its own. Investigated: docs 0%.
Fix: Publish a public signup endpoint and link it from your homepage/docs to compress time-to-first-call.
A first call without a human in the loop — self-serve credentials, a free tier, or an API that needs none.
failQuickstart presentvia docs0/25No quickstart or getting-started page found at the conventional docs paths, so new developers and agents have no obvious first step. Investigated: docs 0%.
Fix: Publish a single-page quickstart that goes from zero to a first successful API call.
A quickstart is the fastest path from landing page to first successful call.
failChangelog publishedvia spec0/13No changelog link or mention appears in the spec, so an agent can't tell what changed before something breaks. Investigated: spec 0%, docs 0%.
Fix: Publish a structured changelog (e.g., /changelog.json or releases.atom) and reference it in info or externalDocs.
A published changelog lets partners track changes without surprise.
naCode samples in docs—/18No surface produced evidence for this capability in this run.Multi-language samples shorten time-to-first-call.
Agent DiscoveryPartners and their agents can find your APIs — llms.txt, registries, crawlable and reachable docs2 pass1 warn1 fail73B
SignalPointsFindingsRationale
passDocs reachable, not hard auth-gatedvia docs30/30All 1 pages are publicly accessible. Investigated: docs 100%.Agents can only index and fetch docs they can reach — past auth gates and over correct HTTP semantics.
passRegistry & SDK presencevia docs28/28Indexed on Context7 (ec-europa/europa-component-library, 2259 snippets). Investigated: docs 100%, sdk 100%, cli 0%.Listing in MCP registries and publishing SDKs puts the API where agents and their tooling look.
warnCrawlable / AEOvia wellknown9/12Sitemap has 12 entries but no lastmod values, so crawlers can't tell what changed recently. Investigated: wellknown 75%.
Fix: Add accurate <lastmod> values to sitemap entries — AI-powered search uses them to prioritize crawling.
Bots allowed plus a fresh sitemap make docs findable by agent crawlers.
failllms.txt present, valid & comprehensivevia docs0/30No llms.txt found at any candidate location (https://docs.ted.europa.eu/api/latest/index.html/llms.txt, https://docs.ted.europa.eu/llms.txt, https://docs.ted.europa.eu/docs/llms.txt). Investigated: docs 0%, sdk 0%.A valid, comprehensive llms.txt is the machine-readable entry point for agents.
Agent UnderstandingAgents can correctly interpret your APIs — machine-readable errors, consistent descriptions, structured data, parseable docs3 pass1 warn1 fail89A
SignalPointsFindingsRationale
passMachine-readable errors (RFC 9457)via docs28/28Only 3 distinct 4xx/5xx error codes are documented (plus 0 catch-all "default" responses), so an agent has limited failure branching. Investigated: docs 100%, spec 50%, cli 0%.RFC 9457 problem details and a documented error-code inventory let agents parse failures without burning tokens.
passOperation purpose clarityvia sdk25/25Surface uses a single dominant casing convention (camelCase). Investigated: sdk 100%, spec 75%.Agents select the right endpoint from its summary + operationId; clear, named operations make tool-selection reliable — the strongest driver of correct tool choice.
passAgent-navigable, token-efficient docsvia docs22/22All 1 pages contain server-rendered content. Investigated: docs 100%.Server-rendered, clean, small-footprint docs are what an agent can cheaply fetch and parse correctly.
warnAgent instructions file (AGENTS.md)via sdk5/10No agents.md or skill.md context file found (nice-to-have for agent operation). Investigated: sdk 50%, cli 0%, wellknown 0%.
Fix: Add an agents.md or skill.md describing how an agent should use this SDK (auth setup, key operations, gotchas).
An AGENTS.md gives coding agents explicit setup, auth, and usage instructions to interpret and operate the API — beyond llms.txt's link index.
failDescription consistency across surfaces0/7Mean pairwise description similarity across 2 surfaces (spec, sdk) is 0% (threshold 35% for full credit).
Fix: Align the API description across spec, docs, and SDK so an agent reading any one surface gets the same story.
Every surface tells the same story about what the product is.
naDocs structured data—/8No surface produced evidence for this capability in this run.Structured data (JSON-LD/schema.org) on docs pages gives agents an unambiguous parse target and is what answer engines cite. Detected on the JS-rendered head (Firecrawl) for a bounded page budget, so JS-injected JSON-LD is now caught; pages we can't render are excluded rather than failed.
Agent UsabilityAgents have the context to use your APIs reliably, not just find them1 pass1 warn3 fail47F
SignalPointsFindingsRationale
passSandbox separationvia sdk20/20Sandbox environments are exposed (sandbox). Investigated: sdk 100%, spec 0%, docs 0%.An isolated environment lets agents exercise destructive operations safely.
warnRunnable collection with test scriptsvia sdk4.5/9README is present but has no runnable quickstart. Investigated: sdk 50%, platform 0%.
Fix: Add a runnable quickstart (install + first authenticated call) to the README.
A public, maintained collection with assertions is runnable truth agents validate against.
failIdempotency documentedvia spec0/27Only 0% of mutating operations (0 of 28) document idempotency, so an agent's retries can create duplicate writes. Investigated: spec 0%, docs 0%, sdk 0%, cli 0%.
Fix: Agents retry on failure; without idempotency, retries create duplicates. Document Idempotency-Key on every POST/PUT/PATCH/DELETE.
Documented idempotency lets agents retry safely.
failRate-limit signalingvia spec0/22No rate-limit response headers are documented, so an agent can't tell when it is approaching a limit and will get throttled. Investigated: spec 0%, docs 0%.
Fix: Add x-ratelimit-* response headers and document retry-after semantics.
Machine-readable rate-limit headers let agents throttle adaptively.
failPagination documented & consistentvia spec0/22The 3 list endpoint(s) expose no pagination parameters, forcing an agent into all-or-nothing reads. Investigated: spec 0%, docs 0%.
Fix: Add pagination parameters (cursor / offset+limit) to all list endpoints.
Consistent, documented pagination lets agents traverse collections.
Resources Discovered

The public resources we found for Europa — the evidence behind the score. All discovered from public sources; nothing here requires access to your systems.

Agent hintsContext7 (2,259)
APIs analyzed2 — hub-search, European Parliament Open Data API
Want to improve your results?