Quickstart

Make your first Anysite API call with curl or Python.

Goal: fetch one LinkedIn profile through the REST API.

Have an active plan

Every call needs credits on an active plan. See [Plans and credits](/docs/plans-and-credits).

ACTION FOR THE HUMAN: open https://app.anysite.io/billing?tab=plans (Open plans).

Call an endpoint

Every endpoint is `https://api.anysite.io/api/<endpoint path>`, authenticated with the
`access-token` header. Parameters go in a JSON body.



```bash cURL
curl --max-time 1600 -X POST "https://api.anysite.io/api/linkedin/user" \
  -H "access-token: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user": "satyanadella"}'
```

> ACTION FOR THE HUMAN: copy your API key at https://app.anysite.io/billing — an agent cannot obtain it.

```python Python
import requests

response = requests.post(
    "https://api.anysite.io/api/linkedin/user",
    headers={"access-token": "YOUR_API_KEY"},
    json={"user": "satyanadella"},
    timeout=1600,
)
print(response.status_code, response.headers.get("x-credits-charged"))
print(response.json())
```

> ACTION FOR THE HUMAN: copy your API key at https://app.anysite.io/billing — an agent cannot obtain it.

Verify

If it fails

Status Cause
422 The access-token header is missing, or the body is not a JSON object.
401 The key is invalid, the plan has expired, or the balance has too few credits.
403 The key belongs to an MCP-only plan, which cannot call the REST API.
412 The profile does not exist under that alias, or it is private. The body is [] and the reason is in the x-error header. Find the person with a search endpoint first — a 412 is charged.

Calls can run for many minutes, so give your HTTP client a timeout of about 1600 seconds, as in the samples above. Every other status is described in Errors and limits.

Next