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-doc-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: 3.2.0
info:
title: FluentEDI Doc 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: Doc
description: Documents (PDF, Word, Excel)
paths:
/v1/doc/extract:
get:
operationId: doc_extract_get
summary: Extract the text of a PDF, Word, Excel or other document as markdown or plain…
description: 'Converts a document to markdown or plain text: pass a public URL or the file itself as base64, and get back the content with headings, tables and lists preserved, at a fraction of the tokens that rendered pages cost. Use it when a harness has no native reader for the format — .docx, .xlsx, .odt and .numbers rarely have one — when a document is only a URL away, or when a long PDF''s text matters and its layout does not. Handles PDF (.pdf), Word (.docx), Excel (.xlsx, .xlsm, .xlsb, .xls), OpenDocument (.odt, .ods), Apple Numbers, CSV, HTML, XML, and plain-text formats such as .txt and .md. The format is detected from magic bytes, not trusted from the file name, so a PDF served from a .php URL still converts. Two honest limits: a scanned PDF with no text layer has nothing to extract (this is conversion, not OCR), and legacy binary .doc and .ppt files are not readable — resave them as .docx or .pptx. Images are refused rather than described. Documents up to 10 MB.'
tags:
- Doc
parameters:
- name: url
in: query
required: false
description: Public URL of the document to fetch and convert.
schema:
description: Public URL of the document to fetch and convert.
type: string
maxLength: 4000
examples:
- https://arxiv.org/pdf/1706.03762
- name: base64
in: query
required: false
description: 'The file content as base64 (or a data: URI) instead of a URL, for documents not publicly reachable. Up to 10 MB decoded.'
schema:
description: 'The file content as base64 (or a data: URI) instead of a URL, for documents not publicly reachable. Up to 10 MB decoded.'
type: string
default: ''
maxLength: 14000000
- name: filename
in: query
required: false
description: Original file name, e.g. "report.docx". Only needed when the format cannot be detected from the URL or the bytes.
schema:
description: Original file name, e.g. "report.docx". Only needed when the format cannot be detected from the URL or the bytes.
type: string
default: ''
maxLength: 300
- name: format
in: query
required: false
description: 'Output style: markdown keeps headings, tables and lists; text strips them.'
schema:
description: 'Output style: markdown keeps headings, tables and lists; text strips them.'
type: string
enum:
- markdown
- text
default: markdown
- name: max_chars
in: query
required: false
description: Truncate the extracted content beyond this many characters.
schema:
description: Truncate the extracted content beyond this many characters.
type: integer
default: 200000
minimum: 100
maximum: 2000000
- name: timeout_ms
in: query
required: false
description: Fetch timeout in milliseconds when url is used.
schema:
description: Fetch timeout in milliseconds when url is used.
type: integer
default: 15000
minimum: 1000
maximum: 30000
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: doc_extract_post
summary: Extract the text of a PDF, Word, Excel or other document as markdown or plain…
description: 'Converts a document to markdown or plain text: pass a public URL or the file itself as base64, and get back the content with headings, tables and lists preserved, at a fraction of the tokens that rendered pages cost. Use it when a harness has no native reader for the format — .docx, .xlsx, .odt and .numbers rarely have one — when a document is only a URL away, or when a long PDF''s text matters and its layout does not. Handles PDF (.pdf), Word (.docx), Excel (.xlsx, .xlsm, .xlsb, .xls), OpenDocument (.odt, .ods), Apple Numbers, CSV, HTML, XML, and plain-text formats such as .txt and .md. The format is detected from magic bytes, not trusted from the file name, so a PDF served from a .php URL still converts. Two honest limits: a scanned PDF with no text layer has nothing to extract (this is conversion, not OCR), and legacy binary .doc and .ppt files are not readable — resave them as .docx or .pptx. Images are refused rather than described. Documents up to 10 MB.'
tags:
- Doc
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
url:
description: Public URL of the document to fetch and convert.
type: string
maxLength: 4000
examples:
- https://arxiv.org/pdf/1706.03762
base64:
description: 'The file content as base64 (or a data: URI) instead of a URL, for documents not publicly reachable. Up to 10 MB decoded.'
type: string
default: ''
maxLength: 14000000
filename:
description: Original file name, e.g. "report.docx". Only needed when the format cannot be detected from the URL or the bytes.
type: string
default: ''
maxLength: 300
format:
description: 'Output style: markdown keeps headings, tables and lists; text strips them.'
type: string
enum:
- markdown
- text
default: markdown
max_chars:
description: Truncate the extracted content beyond this many characters.
type: integer
default: 200000
minimum: 100
maximum: 2000000
timeout_ms:
description: Fetch timeout in milliseconds when url is used.
type: integer
default: 15000
minimum: 1000
maximum: 30000
required: []
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.