ErrorMap

activev0.1.0<50ms avg

Normalize any API error into RFC 9457 Problem Details with agent-ready classification.

What it does

POST any API error response — JSON, HTML, plain text — and get back a consistent RFC 9457 Problem Details object with error classification, retryability, and suggested recovery actions. Agents use ErrorMap to handle failures from any API without custom error parsers.

Try it live

POST/api/v1/errormap/parse
Click "Run" to see the response

Endpoints

POST
/api/v1/errormap/parse

Parse any raw error into structured Problem Details with classification

POST
/api/v1/errormap/normalize

Normalize a JSON error object to RFC 9457 format

POST
/api/v1/errormap/classify

Classify an error by category with retry guidance

Request / Response Schema
Field
Type
Required
Description
data
object | array
Yes
The JSON data to process
schema
object
Response
Inferred JSON Schema
format
string
Optional
Output format (typescript, zod)

Examples

cURLbash
curl -X POST https://neverparse.com/api/v1/errormap/parse \
  -H &#39;Content-Type: application/json' \
  -d &#39;{"raw": {"error": {"code": "RATE_LIMIT_EXCEEDED", "message": "Too many requests"}}, "statusCode": 429, "headers": {"Retry-After": "30"}}'
TypeScripttypescript
const res = await fetch(class="token-string">&#39;https:class="token-comment">//neverparse.com/api/v1/errormap/parse&#39;, {
  method: class="token-string">&#39;POST&#39;,
  headers: { class="token-string">&#39;Content-Type&#39;: class="token-string">&#39;application/json&#39; },
  body: JSON.stringify({
    raw: { error: { code: class="token-string">&#39;RATE_LIMIT_EXCEEDED&#39;, message: class="token-string">&#39;Too many requests&#39; } },
    statusCode: 429,
    headers: { class="token-string">&#39;Retry-After&#39;: class="token-string">&#39;30&#39; }
  })
});
const { problem } = await res.json();
if (problem.retryable) await sleep(problem.retryAfterMs);
Pythonpython
import requests
res = requests.post(&class="token-comment">#39;https://neverparse.com/api/v1/errormap/parse&#39;,
  json={&class="token-comment">#39;rawclass="token-string">&#39;: {&#39;errorclass="token-string">&#39;: {&#39;codeclass="token-string">&#39;: &#39;RATE_LIMIT_EXCEEDEDclass="token-string">&#39;, &#39;messageclass="token-string">&#39;: &#39;Too many requestsclass="token-string">&#39;}}, &#39;statusCodeclass="token-string">&#39;: 429, &#39;headersclass="token-string">&#39;: {&#39;Retry-Afterclass="token-string">&#39;: &#39;30&#39;}})
problem = res.json()[&class="token-comment">#39;problem&#39;]
if problem[&class="token-comment">#39;retryableclass="token-string">&#39;]: time.sleep(problem[&#39;retryAfterMs&#39;] / 1000)

Get started with ErrorMap

Free tier available. No credit card required.

Documentation

Authentication

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Rate Limits

Free
100 req/day
Pro
10,000 req/day
Enterprise
Unlimited

Error Codes

All errors return structured JSON with code, message, and details fields.

Error Responsejson
{
  "error": {
    "code": "INVALID_INPUT",
    "message": "The &#39;data&#39; field is required",
    "details": {
      "field": "data",
      "expected": "object | array"
    }
  }
}