---
title: Error codes
description: 'Troubleshoot Microlink API error codes including EAUTH, ERATE, and EBRWSRTIMEOUT. Find solutions for authentication issues, rate limits, timeouts, and specific Pro plan parameter requirements.'
---

import { Type } from 'components/markdown/Type'

import ProBadge from 'components/patterns/ProBadge/ProBadge'

Microlink API considers an unexpected situation any request performed on which [status](/docs/api/basics/format#status) is different from <Type children="'success'"/>.

When this happens, the response payload includes some useful information in order to determine the root cause of the problem:

- `id`: The unique identifier associated with the request.
- `code`: The error code that represents the final request state.
- `message`: A brief explanantion about why the error happened.
- `more`: A link pointing this documentation.
- `report`: A link for reporting the problem directly to us.

If you are experience any of these errors are you not sure how to proceed, please feel free to [reach us](mailto:hello@microlink.io).

## EAUTH

**Message**

Invalid API key. Make sure you are attaching your API key as `x-api-key` header.

**Solution**

Ensure to [authenticate](/docs/api/basics/authentication/) your requests providing an API key attached as `x-api-key`.

## ECACHEKEY

**Message**

You need a <ProBadge/> plan for using [cacheKey](/docs/api/parameters/cacheKey) query parameter.

**Solution**

See [pricing](/pricing) for upgrading your plan.

## EBRWSRTIMEOUT

**Message**

The URL provided reached the maximum browser navigation time allowed.

**Solution**

When the target [url](/docs/api/parameters/url) reached the [timeout](/docs/api/parameters/timeout) associated with the request lifecycle, this error is thrown.

In order to avoid this error, the request should be resolved before timeout.

## EFATAL

**Message**

Resolved the target URL failed. Make sure your URL is valid and it has HTML content.

**Solution**

This is the generic error used when it wasn't possible to determine the root cause of the problem.

If you are experimenting with this error, please [contact us](mailto:hello@microlink.io), reporting the request `id` to make it possible to reproduce the original request.

## EFILENAME

**Message**

You need a <ProBadge/> plan for using [filename](/docs/api/parameters/filename) query parameter.

**Solution**

See [pricing](/pricing) for upgrading your plan.

## EFATALCLIENT

**Message**

(no message)

**Solution**

There is a network problem trying to reach the API [endpoint](/docs/api/basics/endpoint).

If you are experimenting with this error, please [contact us](mailto:hello@microlink.io).

## EFORBIDDENURL

**Message**

The URL is being resolved into an IP address whose range is not allowed.

**Solution**

The service will only resolve URLs that point to unicast IP addresses.

## EHEADERS

**Message**

You need a <ProBadge/> plan for using [headers](/docs/api/parameters/headers) query parameters.

**Solution**

See [pricing](/pricing) for upgrading your plan.

## EINVALURL

**Message**

The target URL is considered not valid.

**Solution**

Ensure the [url](/docs/api/parameters/url) provided has protocol, hostname and follows [WHATWG URL](https://nodejs.org/api/url.html#url_the_whatwg_url_api) standard.

## EINVALPROXY

**Message**

The proxy URL is considered not valid.

**Solution**

Ensure the [url](/docs/api/parameters/proxy) provided can be parsed as [WHATWG URL](https://nodejs.org/api/url.html#url_the_whatwg_url_api).

## EINVALURLCLIENT

**Message**

The target URL is considered not valid.

**Solution**

Ensure the [url](/docs/api/parameters/url) provided has protocol, hostname and follows [WHATWG URL](https://nodejs.org/api/url.html#url_the_whatwg_url_api) standard.

## EINVALTTL

**Message**

The `ttl` value is invalid.

**Solution**

The [ttl](/docs/api/parameters/ttl) value should be a value between <Type children="'1m'"/> to <Type children="'31d'"/> range.

## EINVALEVAL

**Message**

The `function` evaluation failed.

**Solution**

The [function](/docs/api/parameters/function) code was executed but failed during evaluation. This typically means your function threw an error or encountered a runtime exception. Check your function code for:

- JavaScript runtime errors
- Undefined variables or functions
- Incorrect operations on the page data

## EINVALFUNCTION

**Message**

The `function` code has a syntax error, or is not a valid `br`/`gz`/`lz` payload.

**Solution**

The [function](/docs/api/parameters/function) parameter could not be read. Ensure your function:

- Has valid JavaScript syntax
- Uses proper function formatting (arrow function or regular function)
- Doesn't contain syntax errors like missing brackets or semicolons

When the code is sent compressed (`br#`, `gz#` or `lz#`), the payload also has to survive the URL intact: a truncated or re-encoded one cannot be decompressed. The `message` says which of the two happened.

## EINVALDATA

**Message**

The `data.<field>` has an invalid value (`<value>`). rule must be an object (or array of objects) with extraction options.

Example:

The `data.innerHTML` has an invalid value (empty). rule must be an object (or array of objects) with extraction options.

**Solution**

Use object rules for [data](/docs/api/parameters/data) extraction instead of primitive values.

Valid:

- `data.title.selector=h1`
- `data.price.selector=.price&data.price.attr=text`
- `data.links.selectorAll=a&data.links.attr=href`

Invalid:

- `data.innerHTML=`
- `data.foo=html`
- `data.bar=false`

## EINVALSTTL

**Message**

The `staleTtl` value is invalid.

**Solution**

The [staleTtl](/docs/api/parameters/staleTtl) value should be a value less than the current [ttl](/docs/api/parameters/ttl) provided.

## EINVALOVERLAYBG

**Message**

The gradient is not valid. Ensure it follows CSS gradient syntax.

**Solution**

The [overlay.background](/docs/api/parameters/screenshot/overlay) value must be a valid CSS gradient or color. Common issues include:

- Missing color stops (e.g., `linear-gradient(90deg,)` instead of `linear-gradient(90deg, red, blue)`)
- Invalid color values
- Malformed gradient syntax

Ensure your gradient follows the [CSS gradient syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/gradient).

## EINTEGRATION

**Message**

You need a <ProBadge/> plan for using integrations.

**Solution**

The [url](/docs/api/parameters/url) provided targets a service the API resolves through a dedicated integration rather than a normal fetch, and those are available on paid plans only.

See [pricing](/pricing) for upgrading your plan.

## EMAXREDIRECTS

**Message**

The target URL reached the maximum number of redirect after 10 times.

**Solution**

Ensure the [url](/docs/api/parameters/url) provided reaches the destination URL in less than 10 hops.

## EPAGERANGE

**Message**

The `pdf.pageRanges` value is outside the target document.

**Solution**

The [pdf.pageRanges](/docs/api/parameters/pdf/pageRanges) provided starts past the last page of the document, so there is nothing to render.

Request a range the document actually has, or drop the parameter to render all of it.

## EPDFTOOLARGE

**Message**

The target document is too large to render as a PDF within the time budget.

**Solution**

The [pdf](/docs/api/parameters/pdf) rendering could not finish before the request [timeout](/docs/api/parameters/timeout), even after splitting the document into parallel page ranges.

Reduce the amount of content to rasterize with a smaller [pdf.scale](/docs/api/parameters/pdf), or split the source into shorter pages, and try again.

## EPRO

**Message**

The request has `x-api-key` header present and it has been performed against [api.microlink.io](https://api.microlink.io) endpoint.

**Solution**

In order to [authenticate](/docs/api/basics/authentication/) your requests, you need to perform them against [pro.microlink.io](https://pro.microlink.io). Check [endpoint](/docs/api/basics/endpoint) to know more.

## EPROXY

**Message**

You need a <ProBadge/> plan for using [proxy](/docs/api/parameters/proxy) query parameter.

**Solution**

See [pricing](/pricing) for upgrading your plan.

## EPROXYNEEDED

**Message**

The URL provided uses antibot protection. Upgrade to a <ProBadge/> plan.

**Solution**

See [pricing](/pricing) for upgrading your plan.

## ERATE

**Message**

Your daily rate limit has been reached. You need to wait or extend your plan.

**Solution**

You need to extend your [rate limit](/docs/api/basics/rate-limit/) quota or wait until you’re quota reset.

## ETIMEOUT

**Message**

The request reached maximum timeout.

**Solution**

When the target [url](/docs/api/parameters/url) reached the [timeout](/docs/api/parameters/timeout) associated with the request lifecycle, this error is thrown.

In order to avoid this error, the request should be resolved before timeout.

## ETTL

**Message**

You need a <ProBadge/> plan for using [ttl](/docs/api/parameters/ttl) query parameter.

**Solution**

See [pricing](/pricing) for upgrading your plan.

## ESTTL

**Message**

You need a <ProBadge/> plan for using [staleTtl](/docs/api/parameters/staleTtl) query parameter.

**Solution**

See [pricing](/pricing) for upgrading your plan.
