> ## Documentation Index
> Fetch the complete documentation index at: https://docs.perceptlayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Perceptlayer is a web data API: one key for structured JSON from about 250 websites. Base URL https://api.perceptlayer.com.
> Send the key in the X-API-Key header. GET parameters go in the query string; POST parameters in a JSON body.
> A successful call costs the credits on its endpoint (X-Credits-Used); failed calls cost nothing. Errors are {"error": {"code", "message", "request_id"}}.
> AI agents can use every endpoint through the MCP server at https://api.perceptlayer.com/mcp (tools search_endpoints, get_endpoint, call_endpoint), with Authorization: Bearer <key>.
> Get a free key at https://perceptlayer.com/signup.

# Requests and responses

> URL format, parameters, response bodies and headers.

## Requests

Every endpoint lives at:

```
https://api.perceptlayer.com/v1/{api}/{endpoint}
```

* **GET** endpoints take parameters in the query string. List parameters repeat, as in `?ids[]=1&ids[]=2`.
* **POST** endpoints take a JSON body. Send `Content-Type: application/json`.
* Unknown parameters are ignored. Invalid ones are rejected with `422 invalid_parameters` before anything is charged.
* Some sources are slower than others. Allow up to 60 seconds per call; after that the call fails with `504 timeout`, free.

Each endpoint's page in the [API reference](https://docs.perceptlayer.com/api-reference/introduction.md) lists its parameters, which are required, and their limits.

## Responses

Successful calls return the data as JSON with no wrapper. Metadata travels in headers, and the credit and rate-limit headers are on errors too.

| Header | Meaning |
| - | - |
| `X-Request-Id` | Unique ID for the call. Quote it when you contact support. |
| `X-Credits-Used` | Credits this call cost. Always 0 for errors. |
| `X-Credits-Remaining` | Your balance after the call. Errors report it too. |
| `RateLimit-Limit` | Requests your account can make per minute. |
| `RateLimit-Remaining` | Requests left in the current minute. |
| `RateLimit-Reset` | Seconds until the current minute's count resets. |
| `RateLimit-Policy` | The limit and its window, as in `300;w=60`. |

Errors have their own shape. See [Errors](https://docs.perceptlayer.com/errors.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.