Bindler Ai Act Classify API

The Ai Act Classify API from Bindler — 1 operation(s) for ai act classify.

Operations 3

GET /ai-act-classify Classify one AI system under the EU AI Act, query parameters #
POST /ai-act-classify Classify one AI system under the EU AI Act #
OPTIONS /ai-act-classify CORS preflight for the AI Act endpoint #

Work with this as data

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/bindler-co:bindler-co-ai-act-classify-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 Specification

bindler-co-ai-act-classify-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bindler Ai Act Classify API
  version: 1.0.0
  description: 'Three regulation calculators as JSON endpoints: EU AI Act classification (Regulation (EU) 2024/1689), CBAM certificate cost 2026 to 2034 (Regulation (EU) 2023/956) and the UAE Corporate Tax computation (Federal Decree-Law No. 47 of 2022). Same code as the free browser tools at bindler.co, generated from them at every build. Free tier: 25 calls a day per IP, no account. Unlimited: $19 a month key from Gumroad. Facts only, the instrument cited in every response; not legal or tax advice. Docs: https://bindler.co/api/'
  contact:
    name: Bindler
    url: https://bindler.co/api/
    email: bindler540@gmail.com
servers:
- url: https://bindler.co/api/v1
security:
- ApiKey: []
- ApiKeyQuery: []
- {}
tags:
- name: Ai Act Classify
paths:
  /ai-act-classify:
    get:
      summary: Classify one AI system under the EU AI Act, query parameters
      operationId: aiActClassifyGet
      description: The same classifier as POST, with every field sent as a query parameter instead of a JSON body. Omitted fields take their defaults.
      parameters:
      - name: name
        in: query
        required: false
        description: Label for the AI system, free text up to 120 characters, echoed back in the input block; it does not change the classification. Default Unnamed system.
        schema:
          type: string
      - name: scope
        in: query
        required: false
        description: 'Whether the system is in scope under Article 2: not military or national security only, not research only, not personal non-professional use. Default Yes; No returns Out of scope.'
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: role
        in: query
        required: false
        description: 'Your role in the value chain (Article 3), which selects the obligation set: Provider (Article 16), Deployer (Articles 26 and 27), Importer or Distributor (Articles 23 and 24). Default Provider.'
        schema:
          type: string
          enum:
          - Provider
          - Deployer
          - Importer
          - Distributor
      - name: prohib
        in: query
        required: false
        description: The Article 5 prohibited practice the system falls under, such as 5(1)(c) Social scoring; a prefix is enough. Default None. Any practice returns PROHIBITED, banned since 2 February 2025.
        schema:
          type: string
      - name: annex
        in: query
        required: false
        description: Annex III entry such as 4(a)
        schema:
          type: string
      - name: prof
        in: query
        required: false
        description: Whether the system performs profiling of natural persons. An Annex III system that profiles is high-risk and cannot rely on the Article 6(3) exemption. Default Yes.
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: ex
        in: query
        required: false
        description: 'Whether the Article 6(3) exemption is claimed: narrow procedural task, improving the result of prior human work, pattern detection without replacing human assessment, or a preparatory task. Default No.'
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: a61
        in: query
        required: false
        description: 'Whether the system is a safety component of an Annex I product subject to third-party conformity assessment (Article 6(1)): high-risk, applying from 2 August 2027. Default No.'
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: gpai
        in: query
        required: false
        description: Whether this is a general-purpose AI model (Article 3(63)), which brings the Article 53 duties and Article 55 where systemic risk is presumed. Default No.
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: a50
        in: query
        required: false
        description: 'Whether an Article 50 transparency case applies: the system interacts with people, generates synthetic audio, image, video or text, does emotion recognition or biometric categorisation, or produces deep fakes. Default No. On its own it returns Limited risk (transparency); on a high-risk system it adds the Article 50 duties to the obligation set.'
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: pre
        in: query
        required: false
        description: 'Whether the system was placed on the market before 2 August 2026, which moves the date the duties apply under the Article 111 transitional rules: a high-risk system only on a significant change in design after that date (Article 111(2)), a general-purpose AI model from 2 August 2027 (Article 111(3)). Default No.'
        schema:
          type: string
          enum:
          - 'Yes'
          - 'No'
      - name: turnover
        in: query
        required: false
        description: Worldwide annual turnover in EUR, optional, used only for the fine ceiling in Article 99, which is the higher of the fixed amount and the percentage of turnover.
        schema:
          type: number
      responses:
        '200':
          description: Classification, obligations, applies_from, max_fine_eur, input, basis and docs.
          content:
            application/json:
              schema:
                type: object
                description: The classification result. Every call returns all seven keys.
                properties:
                  input:
                    type: object
                    description: 'The normalised inputs the classification ran on, echoed back. Keys: name, role, scope, gpai, annex, prohib, a61, prof, ex, a50, pre and turn. Yes/No fields are normalised to Yes or No, annex and prohib to a full Annex III or Article 5 entry, and turnover is echoed as the number turn.'
                    properties: {}
                    additionalProperties: true
                  classification:
                    type: string
                    description: The risk class the Regulation puts the system in.
                    enum:
                    - Out of scope
                    - PROHIBITED (Article 5)
                    - High-risk
                    - General-purpose AI model
                    - Limited risk (transparency)
                    - Minimal risk
                  obligations:
                    type: string
                    description: The duties that follow from the class, with the article numbers, as one semicolon-separated sentence.
                  applies_from:
                    type: string
                    description: 'The date those duties start to apply for this system: 2 February 2025 for a prohibited practice, 2 August 2025 or 2 August 2027 for a general-purpose model, 2 August 2026 or 2 August 2027 for high-risk, the Article 111(2) significant-change wording for a system on the market before 2 August 2026, or n/a when out of scope.'
                  max_fine_eur:
                    type: number
                    description: 'The Article 99 ceiling in EUR: the higher of the fixed amount (35 million for a prohibited practice, 15 million otherwise) and the percentage of worldwide turnover (7 percent or 3 percent). Zero where no fine attaches, that is out of scope and minimal risk.'
                  basis:
                    type: string
                    description: The instrument and articles the answer rests on, with the note that it is not legal advice.
                  docs:
                    type: string
                    description: Link to the documentation section for this endpoint, https://bindler.co/api/#ai-act-classify
        '400':
          description: 'Bad request: the body was not valid JSON, or annex or prohib was sent with a value that matches no entry. The allowed list is returned with the error in the second case.'
          content:
            application/json:
              schema:
                type: object
                description: Error body returned for an unusable request.
                properties:
                  error:
                    type: string
                    description: 'What was wrong: send JSON or query parameters, or that annex or prohib must be one of the listed entries.'
                  allowed:
                    type: array
                    description: Every accepted value for the field that failed, the Annex III entries for annex or the Article 5 practices for prohib. Present only on that error.
                    items:
                      type: string
        '401':
          description: 'Missing or invalid key: a value shaped like a Gumroad licence key was sent in x-api-key or ?key= and Gumroad did not verify it (refunded, charged back or cancelled purchases count as invalid).'
          content:
            application/json:
              schema:
                type: object
                description: Error body returned when the presented licence key does not verify.
                properties:
                  error:
                    type: string
                    description: Always the text invalid key.
                    enum:
                    - invalid key
                  docs:
                    type: string
                    description: Link to the API documentation page, https://bindler.co/api/
        '429':
          description: 'Free tier exhausted: more than 25 active minutes of calls from this IP in the current UTC day, and no verified key was sent. Send a key to remove the limit.'
          headers:
            x-ratelimit-limit:
              description: The free tier ceiling, the string 25.
              schema:
                type: string
            x-ratelimit-remaining:
              description: Remaining free calls, the string 0 on this response.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                description: Error body returned when the free per-IP allowance is spent.
                properties:
                  error:
                    type: string
                    description: Explains the free tier ceiling and how to send a key.
                  docs:
                    type: string
                    description: Link to the API documentation page, https://bindler.co/api/
      tags:
      - Ai Act Classify
    post:
      summary: Classify one AI system under the EU AI Act
      operationId: aiActClassify
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: Label for the AI system, free text up to 120 characters, echoed back in the input block; it does not change the classification. Default Unnamed system.
                  type: string
                scope:
                  description: 'Whether the system is in scope under Article 2: not military or national security only, not research only, not personal non-professional use. Default Yes; No returns Out of scope.'
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                role:
                  description: 'Your role in the value chain (Article 3), which selects the obligation set: Provider (Article 16), Deployer (Articles 26 and 27), Importer or Distributor (Articles 23 and 24). Default Provider.'
                  type: string
                  enum:
                  - Provider
                  - Deployer
                  - Importer
                  - Distributor
                prohib:
                  description: The Article 5 prohibited practice the system falls under, such as 5(1)(c) Social scoring; a prefix is enough. Default None. Any practice returns PROHIBITED, banned since 2 February 2025.
                  type: string
                annex:
                  type: string
                  description: Annex III entry such as 4(a)
                prof:
                  description: Whether the system performs profiling of natural persons. An Annex III system that profiles is high-risk and cannot rely on the Article 6(3) exemption. Default Yes.
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                ex:
                  description: 'Whether the Article 6(3) exemption is claimed: narrow procedural task, improving the result of prior human work, pattern detection without replacing human assessment, or a preparatory task. Default No.'
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                a61:
                  description: 'Whether the system is a safety component of an Annex I product subject to third-party conformity assessment (Article 6(1)): high-risk, applying from 2 August 2027. Default No.'
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                gpai:
                  description: Whether this is a general-purpose AI model (Article 3(63)), which brings the Article 53 duties and Article 55 where systemic risk is presumed. Default No.
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                a50:
                  description: 'Whether an Article 50 transparency case applies: the system interacts with people, generates synthetic audio, image, video or text, does emotion recognition or biometric categorisation, or produces deep fakes. Default No. On its own it returns Limited risk (transparency); on a high-risk system it adds the Article 50 duties to the obligation set.'
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                pre:
                  description: 'Whether the system was placed on the market before 2 August 2026, which moves the date the duties apply under the Article 111 transitional rules: a high-risk system only on a significant change in design after that date (Article 111(2)), a general-purpose AI model from 2 August 2027 (Article 111(3)). Default No.'
                  type: string
                  enum:
                  - 'Yes'
                  - 'No'
                turnover:
                  description: Worldwide annual turnover in EUR, optional, used only for the fine ceiling in Article 99, which is the higher of the fixed amount and the percentage of turnover.
                  type: number
            example:
              name: CV screening
              role: Provider
              annex: 4(a)
              turnover: 50000000
      responses:
        '200':
          description: Classification, obligations, applies_from, max_fine_eur, input, basis and docs.
          content:
            application/json:
              schema:
                type: object
                description: The classification result. Every call returns all seven keys.
                properties:
                  input:
                    type: object
                    description: 'The normalised inputs the classification ran on, echoed back. Keys: name, role, scope, gpai, annex, prohib, a61, prof, ex, a50, pre and turn. Yes/No fields are normalised to Yes or No, annex and prohib to a full Annex III or Article 5 entry, and turnover is echoed as the number turn.'
                    properties: {}
                    additionalProperties: true
                  classification:
                    type: string
                    description: The risk class the Regulation puts the system in.
                    enum:
                    - Out of scope
                    - PROHIBITED (Article 5)
                    - High-risk
                    - General-purpose AI model
                    - Limited risk (transparency)
                    - Minimal risk
                  obligations:
                    type: string
                    description: The duties that follow from the class, with the article numbers, as one semicolon-separated sentence.
                  applies_from:
                    type: string
                    description: 'The date those duties start to apply for this system: 2 February 2025 for a prohibited practice, 2 August 2025 or 2 August 2027 for a general-purpose model, 2 August 2026 or 2 August 2027 for high-risk, the Article 111(2) significant-change wording for a system on the market before 2 August 2026, or n/a when out of scope.'
                  max_fine_eur:
                    type: number
                    description: 'The Article 99 ceiling in EUR: the higher of the fixed amount (35 million for a prohibited practice, 15 million otherwise) and the percentage of worldwide turnover (7 percent or 3 percent). Zero where no fine attaches, that is out of scope and minimal risk.'
                  basis:
                    type: string
                    description: The instrument and articles the answer rests on, with the note that it is not legal advice.
                  docs:
                    type: string
                    description: Link to the documentation section for this endpoint, https://bindler.co/api/#ai-act-classify
        '400':
          description: 'Bad request: the body was not valid JSON, or annex or prohib was sent with a value that matches no entry. The allowed list is returned with the error in the second case.'
          content:
            application/json:
              schema:
                type: object
                description: Error body returned for an unusable request.
                properties:
                  error:
                    type: string
                    description: 'What was wrong: send JSON or query parameters, or that annex or prohib must be one of the listed entries.'
                  allowed:
                    type: array
                    description: Every accepted value for the field that failed, the Annex III entries for annex or the Article 5 practices for prohib. Present only on that error.
                    items:
                      type: string
        '401':
          description: 'Missing or invalid key: a value shaped like a Gumroad licence key was sent in x-api-key or ?key= and Gumroad did not verify it (refunded, charged back or cancelled purchases count as invalid).'
          content:
            application/json:
              schema:
                type: object
                description: Error body returned when the presented licence key does not verify.
                properties:
                  error:
                    type: string
                    description: Always the text invalid key.
                    enum:
                    - invalid key
                  docs:
                    type: string
                    description: Link to the API documentation page, https://bindler.co/api/
        '429':
          description: 'Free tier exhausted: more than 25 active minutes of calls from this IP in the current UTC day, and no verified key was sent. Send a key to remove the limit.'
          headers:
            x-ratelimit-limit:
              description: The free tier ceiling, the string 25.
              schema:
                type: string
            x-ratelimit-remaining:
              description: Remaining free calls, the string 0 on this response.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                description: Error body returned when the free per-IP allowance is spent.
                properties:
                  error:
                    type: string
                    description: Explains the free tier ceiling and how to send a key.
                  docs:
                    type: string
                    description: Link to the API documentation page, https://bindler.co/api/
      tags:
      - Ai Act Classify
    options:
      summary: CORS preflight for the AI Act endpoint
      operationId: aiActClassifyOptions
      description: Answers the browser preflight with the allowed origin, methods and headers, and no body.
      security: []
      responses:
        '204':
          description: CORS preflight answered with no body. The endpoint replies to OPTIONS before any key check or rate limiting.
          headers:
            access-control-allow-origin:
              description: Always the wildcard star, any origin may call.
              schema:
                type: string
            access-control-allow-methods:
              description: The methods allowed, the string GET, POST, OPTIONS.
              schema:
                type: string
            access-control-allow-headers:
              description: The headers allowed, content-type and x-api-key.
              schema:
                type: string
      tags:
      - Ai Act Classify
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Gumroad licence key for the product bindler-api, sent in the x-api-key header. Keys that do not match the four-group licence pattern are ignored and the call falls through to the free tier.
    ApiKeyQuery:
      type: apiKey
      in: query
      name: key
      description: The same Gumroad licence key passed as a query parameter instead of the header, accepted by every endpoint.