# DocQuery > DocQuery is a universal document-to-API platform. Upload spreadsheets, PDFs, > contracts, invoices, or any document; an AI engine extracts structured > relational tables; you link them with foreign keys; and DocQuery serves them > as REST, GraphQL, and MCP APIs. The product turns scattered files (Excel, CSV, PDF, Word, Markdown, JSON, images, scanned forms) **and live Airtable bases** into a queryable relational backend with three parallel API surfaces: - **REST** with OpenAPI 3.1: per-table CRUD, filtering, pagination, and relation expansion via `include=`. - **GraphQL** (Absinthe-based): workspace-aware schema with nested relations and typed mutations. - **MCP** (Model Context Protocol): JSON-RPC 2.0 endpoint exposing tools, resources, and prompts to any MCP-aware AI agent (Claude, Cursor, etc.). ## Input sources - File upload: CSV, TSV, JSON, Markdown, plain text. PDF, Excel, Word on the roadmap. - Paste content: same formats, pasted directly into a textarea. - **Airtable**: connect a base by Personal Access Token (PAT). DocQuery walks Airtable's pagination, extracts every record, infers column types (number / boolean / date / string), and stores the Airtable record id as the primary key. Re-pull on demand to refresh. Each user gets a free workspace on signup. Plans: - Free: 5 documents, 10,000 rows, basic extraction. - Starter ($29/mo): 50 documents, 250,000 rows, live sync, full APIs. - Pro ($79/mo): unlimited (fair use), advanced OCR + LLM, RLS, priority. - Enterprise: custom SLAs, on-prem, dedicated parsing models. ## Marketing pages - [Landing](/): product overview, hero, how-it-works, triple-API, use cases. - [Features](/features): detailed feature list with examples. - [How it works](/how-it-works): six-step walkthrough + worked example. - [Pricing](/pricing): plans, FAQ. - [About](/about): company beliefs and contact. - [Privacy Policy](/privacy) - [Terms of Service](/terms) ## Product surfaces (require account) - /dashboard — workspace overview - /documents — upload + list source documents - /tables — extracted relational tables - /relations — foreign-key canvas - /api-docs — REST + GraphQL + MCP try-it console - /chat — AI chat backed by the workspace's tables - /billing — plan + Stripe customer portal - /workspaces — multi-workspace settings - /account — email + password settings ## Public APIs (require workspace API key as Bearer token) - `GET /api/v1/tables` — list tables in the workspace. - `GET /api/v1/tables/:slug/rows?include=col` — filter + expand relations. - `POST /api/v1/graphql` — Absinthe GraphQL endpoint. - `POST /api/v1/mcp` — Model Context Protocol JSON-RPC. - `GET /api/v1/openapi.json` — OpenAPI 3.1 spec for the workspace. - `GET /api/v1/docs` — Redoc-rendered HTML viewer (auth required). ## For AI agents Point your MCP-capable client at `/api/v1/mcp` with header `Authorization: Bearer `. The server implements `initialize`, `tools/list`, `tools/call`, `resources/list`, `resources/read`, `prompts/list`, `prompts/get`. Tools: `list_tables`, `list_relations`, `query_table`. Resources: `docquery://schema` and `docquery://tables/`. ## Source & status - Built on Phoenix LiveView + SQLite, source-deployed via systemd + Cloudflare Tunnel. - AI extraction powered by a state-of-the-art LLM with structured outputs. - Stripe-backed subscriptions; webhook signature verification built in.