---
title: "Retrieve a site’s stored result · API docs · CheckAnySite"
description: "Returns our latest stored result for a site, with the checks you ask for (every check if you leave out checks); the other fields are null."
url: "https://docs.checkanysite.com/api/get-site"
---

API reference

# Retrieve a site’s stored result

GET `/v1/sites/{domain}`

Returns our latest stored result for a site, with the checks you ask for (every check if you leave out `checks`); the other fields are null.

This is the Lookup API: it never starts a scan. Check `scannedAt`, use `maxAgeDays` to require a more recent result, and scan the site with POST /scans when you need a new one. Every response has an `ETag`: send it back in `If-None-Match`, and while the result is unchanged you get a free 304 with no body.

Credits

Each check you ask for costs its stored price, up to 3 for every check, when a result is found. A no\_result error or a 304 costs nothing.

## Request

```bash cURL
curl "https://api.checkanysite.com/v1/sites/wikipedia.org?checks=ai" \
  -H "Authorization: Bearer $CHECKANYSITE_API_KEY"
```

```python
from checkanysite import CheckAnySite

client = CheckAnySite()  # Reads the key from CHECKANYSITE_API_KEY.

site = client.sites.retrieve("wikipedia.org", checks=["ai"])
```

```javascript
const url = 'https://api.checkanysite.com/v1/sites/wikipedia.org?checks=ai';
const response = await fetch(url, {
  headers: {
    Authorization: `Bearer ${process.env.CHECKANYSITE_API_KEY}`,
  },
});
const site = await response.json();
```

## Parameters

- `domain` string required path

  The site’s domain, such as `example.com`.
- `checks` string query

  The checks to answer, separated by commas. Leave it out to ask for every check.

  One of: `ai`, `readiness`, `popularity`, `tech`, `dns`, `trust`, `summary`, `history`.
- `maxAgeDays` integer query

  Return a result only if it is at most this many days old (1 to 3650); otherwise the API returns `no_result`.
- `If-None-Match` string header

  The `ETag` of a response you already have. While the result is unchanged, the API returns a 304 with no body, for free.

## Response

| Status | Body | When |
| --- | --- | --- |
| 200 OK | `SiteResult` | The stored result, with its `ETag`. |
| 304 Not Modified | None | The result hasn’t changed since the `ETag` you sent. No body, and no credits. |

```json Response 200: The stored result
{
  "domain": "wikipedia.org",
  "checks": [
    "ai"
  ],
  "scanId": "0b5a7a6e-1f7e-4d7c-9a4e-2f0d8b1c6a11",
  "scannedAt": "2026-11-10T09:30:06.000Z",
  "complete": true,
  "pending": [],
  "limited": null,
  "finalUrl": "https://www.wikipedia.org/",
  "resultUrl": "https://checkanysite.com/site/wikipedia.org?focus=ai",
  "versions": {
    "signatures": "0.6.1",
    "score": "1.1"
  },
  "ai": {
    "level": "none",
    "builders": [],
    "patterns": []
  },
  "readiness": null,
  "popularity": null,
  "tech": null,
  "dns": null,
  "trust": null,
  "score": null,
  "summary": null,
  "history": null,
  "notes": []
}
```

A site’s result: every field is on [the result object](https://docs.checkanysite.com/api/result).

## Errors

| Status | Code | What happened |
| --- | --- | --- |
| 400 | [invalid\_domain](https://docs.checkanysite.com/errors#invalid_domain) | Not a public domain |
| 400 | [invalid\_parameter](https://docs.checkanysite.com/errors#invalid_parameter) | Invalid parameter |
| 401 | [missing\_api\_key](https://docs.checkanysite.com/errors#missing_api_key) | No API key |
| 401 | [invalid\_api\_key](https://docs.checkanysite.com/errors#invalid_api_key) | Unknown API key |
| 401 | [revoked\_api\_key](https://docs.checkanysite.com/errors#revoked_api_key) | Revoked API key |
| 401 | [expired\_api\_key](https://docs.checkanysite.com/errors#expired_api_key) | Expired API key |
| 429 | [rate\_limited](https://docs.checkanysite.com/errors#rate_limited) | Too many requests |
| 404 | [no\_result](https://docs.checkanysite.com/errors#no_result) | No stored result |
| 429 | [quota\_exceeded](https://docs.checkanysite.com/errors#quota_exceeded) | Monthly credits used up |
| 429 | [key\_limit\_reached](https://docs.checkanysite.com/errors#key_limit_reached) | Key limit reached |
| 500 | [internal\_error](https://docs.checkanysite.com/errors#internal_error) | Internal error |
