FluentEDI Meta API

Finding your way around

Operations 7

GET /v1/tool/search Find the right tool for a task by describing it in plain language #
POST /v1/tool/search Find the right tool for a task by describing it in plain language #
GET /v1/tool/describe Get the full parameter schema and worked examples for one tool #
POST /v1/tool/describe Get the full parameter schema and worked examples for one tool #
GET /v1/tool/call Invoke any tool by name, including ones not in the default listing #
POST /v1/tool/call Invoke any tool by name, including ones not in the default listing #
POST /v1/batch Run up to 20 tool calls in a single request #

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/fluentedi-meta-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

fluentedi-meta-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: FluentEDI Meta API
  version: 1.1.0
  summary: Deterministic tools for AI agents. No key, no signup, no SDK.
  description: 'A public HTTP API of deterministic tools for the work a language model cannot do reliably by reasoning: knowing the current time in any timezone and whether an instant falls inside a window, exact arithmetic, hashing and signature verification, canonicalizing and content-addressing JSON, repairing malformed JSON and pinpointing where it broke, querying and diffing structured data, parsing CSV correctly, converting units, colours and currencies at live ECB rates, testing regular expressions…'
  license:
    name: Free to use
    identifier: MIT
servers:
- url: https://fluentedi.com
tags:
- name: Meta
  description: Finding your way around
paths:
  /v1/tool/search:
    get:
      operationId: tool_search_get
      summary: Find the right tool for a task by describing it in plain language
      description: 'Searches every tool by name, summary, description and keywords, and returns the closest matches with their endpoints and parameters. Use this instead of loading the whole catalogue: describe the job ("check whether a shipment is late", "fix broken JSON", "validate a barcode check digit") and call what comes back. Each result says why it matched, so a wrong match is obvious rather than plausible.'
      tags:
      - Meta
      parameters:
      - name: q
        in: query
        required: true
        description: What you are trying to do, in plain language.
        schema:
          description: What you are trying to do, in plain language.
          type: string
          maxLength: 300
          examples:
          - check if a date falls inside a shipping window
      - name: limit
        in: query
        required: false
        description: Maximum matches to return.
        schema:
          description: Maximum matches to return.
          type: integer
          default: 5
          minimum: 1
          maximum: 25
      - name: detail
        in: query
        required: false
        description: Include full parameter schemas and worked examples for each match.
        schema:
          description: Include full parameter schemas and worked examples for each match.
          type: boolean
          default: false
      responses:
        '200':
          description: Tool result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  result:
                    type: object
                    description: Tool-specific result payload.
        '400':
          description: Invalid input. The body carries the parameter schema and working examples.
    post:
      operationId: tool_search_post
      summary: Find the right tool for a task by describing it in plain language
      description: 'Searches every tool by name, summary, description and keywords, and returns the closest matches with their endpoints and parameters. Use this instead of loading the whole catalogue: describe the job ("check whether a shipment is late", "fix broken JSON", "validate a barcode check digit") and call what comes back. Each result says why it matched, so a wrong match is obvious rather than plausible.'
      tags:
      - Meta
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  description: What you are trying to do, in plain language.
                  type: string
                  maxLength: 300
                  examples:
                  - check if a date falls inside a shipping window
                limit:
                  description: Maximum matches to return.
                  type: integer
                  default: 5
                  minimum: 1
                  maximum: 25
                detail:
                  description: Include full parameter schemas and worked examples for each match.
                  type: boolean
                  default: false
              required:
              - q
              additionalProperties: false
      responses:
        '200':
          description: Tool result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  result:
                    type: object
                    description: Tool-specific result payload.
        '400':
          description: Invalid input. The body carries the parameter schema and working examples.
  /v1/tool/describe:
    get:
      operationId: tool_describe_get
      summary: Get the full parameter schema and worked examples for one tool
      description: 'Returns everything needed to call a tool correctly: its complete JSON Schema, every parameter with type and default, and examples known to work. Pair it with tool.search — search to find the name, describe to learn the shape, then call. This exists so the catalogue does not have to be loaded into context up front.'
      tags:
      - Meta
      parameters:
      - name: name
        in: query
        required: true
        description: Tool name, e.g. "time.window". Underscores and slashes are accepted too.
        schema:
          description: Tool name, e.g. "time.window". Underscores and slashes are accepted too.
          type: string
          maxLength: 100
          examples:
          - time.window
      responses:
        '200':
          description: Tool result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  result:
                    type: object
                    description: Tool-specific result payload.
        '400':
          description: Invalid input. The body carries the parameter schema and working examples.
    post:
      operationId: tool_describe_post
      summary: Get the full parameter schema and worked examples for one tool
      description: 'Returns everything needed to call a tool correctly: its complete JSON Schema, every parameter with type and default, and examples known to work. Pair it with tool.search — search to find the name, describe to learn the shape, then call. This exists so the catalogue does not have to be loaded into context up front.'
      tags:
      - Meta
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: Tool name, e.g. "time.window". Underscores and slashes are accepted too.
                  type: string
                  maxLength: 100
                  examples:
                  - time.window
              required:
              - name
              additionalProperties: false
      responses:
        '200':
          description: Tool result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  result:
                    type: object
                    description: Tool-specific result payload.
        '400':
          description: Invalid input. The body carries the parameter schema and working examples.
  /v1/tool/call:
    get:
      operationId: tool_call_get
      summary: Invoke any tool by name, including ones not in the default listing
      description: Dispatches to any tool in the catalogue. Most clients cap how many tools they will hold at once — Cursor drops everything past roughly forty across all servers combined — so only a core set is listed by default. Everything else is reachable here. Find a name with tool.search, check its shape with tool.describe, then call it through this.
      tags:
      - Meta
      parameters:
      - name: tool
        in: query
        required: true
        description: Name of the tool to invoke.
        schema:
          description: Name of the tool to invoke.
          type: string
          maxLength: 100
          examples:
          - gs1.checkdigit
      - name: args
        in: query
        required: false
        description: Arguments for that tool.
        schema:
          description: Arguments for that tool.
          type: object
          default: {}
      responses:
        '200':
          description: Tool result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  result:
                    type: object
                    description: Tool-specific result payload.
        '400':
          description: Invalid input. The body carries the parameter schema and working examples.
    post:
      operationId: tool_call_post
      summary: Invoke any tool by name, including ones not in the default listing
      description: Dispatches to any tool in the catalogue. Most clients cap how many tools they will hold at once — Cursor drops everything past roughly forty across all servers combined — so only a core set is listed by default. Everything else is reachable here. Find a name with tool.search, check its shape with tool.describe, then call it through this.
      tags:
      - Meta
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tool:
                  description: Name of the tool to invoke.
                  type: string
                  maxLength: 100
                  examples:
                  - gs1.checkdigit
                args:
                  description: Arguments for that tool.
                  type: object
                  default: {}
              required:
              - tool
              additionalProperties: false
      responses:
        '200':
          description: Tool result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  result:
                    type: object
                    description: Tool-specific result payload.
        '400':
          description: Invalid input. The body carries the parameter schema and working examples.
  /v1/batch:
    post:
      operationId: batch
      summary: Run up to 20 tool calls in a single request
      description: Each call is executed independently; one failure does not abort the others.
      tags:
      - Meta
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - calls
              properties:
                calls:
                  type: array
                  maxItems: 20
                  items:
                    type: object
                    required:
                    - tool
                    properties:
                      tool:
                        type: string
                      args:
                        type: object
      responses:
        '200':
          description: One result object per call, in order.