Skip to main content
A cobbled path curving away between old stone walls.
Developers

The Fidget Labs API

EU AI Act risk classification, over REST and MCP. No authentication, no API key, and nothing stored.

What this is

We build agent-ready systems for other organisations. This is ours. The classification engine behind our free EU AI Act Risk Check is exposed as a callable endpoint, so an agent can answer a regulatory scoping question without a person filling in a form.

It takes a description of how an organisation builds or uses AI and returns which risk tiers of Regulation (EU) 2024/1689 apply, the deadline and maximum penalty for each, and whether the organisation leans provider or deployer.

Results are informational and not legal advice. Every response carries a disclaimer field saying so. Pass it on.

No authentication, nothing stored

There is no API key to request and no account to create. Both endpoints are read-only and stateless: no submission is written to a database, emailed, or attached to a CRM record. That is what makes it safe to leave open, and it is why you can call it from an agent without a credential exchange.

There is no published rate limit today. Both endpoints are pure computation over the request body, so they are cheap to serve, and we would rather not invent a number we are not enforcing. Be reasonable. If you are planning sustained volume, say hello first, and we will agree a limit rather than discover one.

Classify a use

POST /api/v1/eu-ai-act/classify

curl -X POST https://fidgetlabs.io/api/v1/eu-ai-act/classify \
  -H 'Content-Type: application/json' \
  -d '{
    "size": "100_1000",
    "industry": "hr_staffing",
    "role": "director",
    "transparencyInteraction": "yes",
    "transparencyContent": "no",
    "roleSignal": "builder",
    "aiFrequency": "daily",
    "annexDomains": ["employment"],
    "biometricUse": "no",
    "prohibited": []
  }'

Every field is required except industryOther. The two array fields accept an empty array, which means none of the listed options apply. Call GET /api/v1/eu-ai-act/questions for the wording of each question and every permitted value.

Errors

Everything under /api/v1 answers in JSON, including 404s and 405s. Branch on code, which is stable. The message may be reworded.

{
  "error": {
    "code": "invalid_answers",
    "message": "One or more answers are missing or not a permitted value.",
    "hint": "Check fieldErrors for the specific fields.",
    "fieldErrors": {
      "aiFrequency": "Invalid option: expected one of ..."
    }
  }
}

MCP server

The same two capabilities over the Model Context Protocol, at https://fidgetlabs.io/api/mcp. Streamable HTTP, no auth. Tools: classify_eu_ai_act_risk and get_eu_ai_act_questions.

{
  "mcpServers": {
    "fidget-labs": {
      "type": "http",
      "url": "https://fidgetlabs.io/api/mcp"
    }
  }
}

Reading the site as data

Pages whose content is structured data also answer to Accept: text/markdown. Ask for markdown at a higher q-value than HTML and you get markdown, with Vary: Accept on the response. Pages written directly as components stay HTML and point at llms.txt in a Link header, because a hand-maintained markdown twin would go stale and we would rather tell you that than pretend.

curl -H 'Accept: text/markdown;q=1.0, text/html;q=0.5' https://fidgetlabs.io/
Garden pathway through vine-covered trellis - representing growth and new possibilities

Ready to accelerate your digital transformation?

Let's discuss how we can help you build a composable, future-proof digital ecosystem that delights your customers.