AI skills & agents
Give Claude, Cursor, ChatGPT and custom agents MessyAPI tools.
MessyAPI exposes eight high-level AI skills. An agent sends a plain-language goal plus records (or text); MessyAPI builds a plan from operations that actually exist, runs it, and returns the plan, per-step report and result. Anything it can't do comes back as unsupported_capability — it never guesses.
Quickstart (REST)
curl https://messyapi.com/api/v1/ai/clean \
-H "Authorization: Bearer $MESSYAPI_KEY" -H "Content-Type: application/json" \
-d '{"goal":"normalize phones, validate emails, find duplicates, redact PII","records":[{"name":"jane DOE","email":"jane@example.com","phone":"(555) 123-4567"}]}'Skills
POST /api/v1/ai/clean—messy_clean: normalize phones, addresses, URLs, names. Accepts multi-step goals.POST /api/v1/ai/validate—messy_validate: emails, data quality; formats/schema with options.POST /api/v1/ai/match—messy_match: duplicate and similar-record clusters (reports groups, doesn't delete rows).POST /api/v1/ai/transform—messy_transform: CSV/TSV/JSON conversion, flatten; pivot/unpivot/rank viaoperations.POST /api/v1/ai/protect—messy_protect: PII and secret detection, redacted copy.POST /api/v1/ai/analyze—messy_analyze: profile, missing values, quality, statistics; text language/sentiment/keywords/entities/summary.POST /api/v1/ai/batch—messy_batch: same plan over up to 10,000 records in 1,000-record chunks (duplicate detection runs per chunk).POST /api/v1/ai/execute— Messy Execute (limited preview): send agoalortemplate(crm-import-prep, lead-validation, ai-ready-dataset, pii-safe-export, dedupe-contacts, data-profile) with up to 10,000 records; returns the plan, results and averificationreport (PASS / PASS_WITH_WARNINGS / FAIL, record counts per step, lost fields, duplicates from the cluster step, PII scan done). Quality score = filled cells ÷ (records × fields) × 100.POST /api/v1/ai/verify— Messy Verify (limited preview, free): checkrecordsagainstrequiredfields andtypes(string, number, boolean, email).GET|POST /api/v1/ai/discover—messy_discover: free, no key; returns relevant real operations for a goal.
Request body
{
"goal": "string (optional)",
"records": [ { ... } ], // or
"text": "string",
"operations": [ { "operation": "pivot", "options": { ... } } ], // advanced, optional
"plan_only": true // return the plan, free
}MCP (Claude Desktop, Claude Code, Cursor, VS Code)
Point any MCP client at https://messyapi.com/mcp with Authorization: Bearer YOUR_KEY. Add ?mode=skills to list only the 8 skills plus 4 outcome tools; without it every operation is also listed.
claude mcp add --transport http messyapi "https://messyapi.com/mcp?mode=skills" \
--header "Authorization: Bearer $MESSYAPI_KEY"ChatGPT custom GPTs, Gemini, custom agents
These connect through the OpenAPI spec (/docs/openapi.json) as actions/function definitions, or call the REST endpoints above directly. This is a standard OpenAPI/REST connection, not a native plugin.
Permissions
Keys limited to categories (Clean, Validate, Match, Transform, Protect, Analyze) are checked against every step of the plan on the server. If any step needs a category the key lacks, the whole call is refused with 403 forbidden naming the step. The goal text can't override this.
Limits & billing
Skills meter like any endpoint: records × each step's weight, through the same quota, rate limits and spend alerts. plan_only and discover are free. Up to 1,000 records per call (10,000 for batch).
Security
- Goal text is treated as data; prompt-injection markers are reported as
injection_detectedand never change what runs. - Planning is deterministic — no model picks operations, so plans are reproducible.
- Skills never fetch URLs. Secrets found in data are always removed by redaction.
- Request logs keep only metadata (skill, goal excerpt, step counts), never your records.
Try it
The live demo on /ai runs the same planner without a key (25 records max).