---
title: Audit Website SEO API
slug: website-audit
url: https://apyhub.com/se-ranking/service/website-audit
provider: "SE Ranking SEO & AI Search API"
categories: [Developer Tools, SEO]
auth: api_key
---

# Audit Website SEO API

Run and manage technical SEO audits programmatically across a whole site. Powered by SE Ranking data for crawling, issues, and recheck cycles.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/report` | What it does Retrieves the audit report for a specific site audit identified by auditid. The respon… | 1 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/links` | What it does Returns the links found for a site audit. You provide the auditid in the query string,… | 0 |
| POST | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/recheck/standard` | What it does Rechecks an existing standard site audit identified by auditid and triggers a new audi… | 2000 |
| POST | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/standard` | What it does Creates a standard HTML crawl audit for the specified domain. You can optionally provi… | 2000 |
| POST | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/recheck/advanced` | What it does Rechecks an existing website audit using the provided auditid query parameter. The suc… | 2000 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/issues` | What it does Returns the issues associated with a specific website audit URL. You can identify the… | 0 |
| POST | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/advanced` | What it does Creates a new advanced website audit for the specified domain. You can optionally incl… | 2000 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/status` | What it does Retrieves the current status and, once available, summary results for a website audit… | 0 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/pages` | What it does Retrieves the list of pages that were crawled for a specific site audit. The request t… | 0 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits` | What it does Returns a paginated list of website audit records. You can filter the list by search t… | 0 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/issue-pages` | What it does Returns the list of page URLs associated with a specific audit issue, along with the t… | 0 |
| GET | `https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/history` | What it does Retrieves audit history for a specific website audit on a given date. It accepts the a… | 0 |

## Examples

### Get audit report

#### Quickstart

Fetch a website audit report by passing the required `audit_id` as a query parameter.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/report?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields as declared by the schema: `version` (string), `sections` (array), `audit_time` (string), `is_finished` (boolean), `total_pages` (integer), `domain_props` (object), `total_errors` (integer), `total_passed` (integer), `score_percent` (integer), `total_notices` (integer), and `total_warnings` (integer).

```json
{
  "version": "1.0",
  "sections": [],
  "audit_time": "2026-07-27T12:00:00Z",
  "is_finished": true,
  "total_pages": 3,
  "domain_props": {
    "expdate": null,
    "backlinks": "1250",
    "index_google": "yes"
  },
  "total_errors": 2,
  "total_passed": 18,
  "score_percent": 92,
  "total_notices": 4,
  "total_warnings": 1
}
```

### List Crawled Page Links

#### Quickstart

Fetch the links for a specific site audit by passing its required `audit_id` as a query parameter.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/links?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `items` (an array of link objects) and `total` (an integer count). Each item may include fields such as `id`, `url`, `type`, `title`, `anchor`, `status`, `nofollow`, `source_url`, `anchor_type`, and `source_noindex`.

```json
{
  "items": [
    {
      "id": "link_123",
      "url": "https://example.com/about",
      "type": "hyperlink",
      "title": "About Us",
      "anchor": "About",
      "status": "200",
      "nofollow": "0"
    }
  ],
  "total": 1
}
```

### Recheck audit standard

#### Quickstart

Rechecks a standard site audit by passing the required `audit_id` as a query parameter.

```bash
curl -X POST "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/recheck/standard?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a minimal acknowledgement; see the Docs tab for the full response shape.

### Create standard audit

#### Quickstart

Create a standard site audit by sending the required `domain` field.

```bash
curl -X POST "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/standard" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'
```

#### What you'll get back

Returns a JSON object with an `id` integer field, which is the created audit ID.

```json
{
  "id": 123
}
```

### Recheck audit advanced

#### Quickstart

Recheck an existing site audit by its `audit_id` query parameter.

```bash
curl -X POST "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/recheck/advanced?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a minimal acknowledgement; see the Docs tab for the full response shape.

### Get All Issues for a Specific URL

#### Quickstart

Fetch audit issues for a site audit by `audit_id`:

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/issues?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with optional top-level `url` string, `issues` array, and `page_data` object. Each item in `issues` is an object that may include `code`, `type` (`error`, `warning`, or `notice`), `group`, and a `snippet` object.

```json
{
  "url": "https://example.com",
  "issues": [
    {
      "code": "meta-description-too-short",
      "type": "warning",
      "group": "metadata",
      "snippet": {
        "type": "html",
        "value": []
      }
    }
  ],
  "page_data": {}
}
```

### Create advanced audit

#### Quickstart

Create an advanced website audit for a domain using the required `domain` field.

```bash
curl -X POST "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/advanced" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'
```

#### What you'll get back

Returns a JSON object with an `id` integer field.

```json
{
  "id": 12345
}
```

### Get audit status

#### Quickstart

Check the status of a website audit by passing the required `audit_id` as a query parameter.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/status?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with optional top-level fields such as `status` (a string), `audit_time` (a string), `start_time` (a string), `total_pages` (an integer), `total_errors` (an integer), `total_passed` (an integer), and `total_warnings` (an integer).

```json
{
  "status": "finished",
  "audit_time": "2026-07-27T12:34:56Z",
  "start_time": "2026-07-27T12:00:00Z",
  "total_pages": 42,
  "total_errors": 3,
  "total_passed": 37,
  "total_warnings": 2
}
```

### Get all crawled pages

#### Quickstart

Fetch the audited pages for a specific audit by passing its required `audit_id` as a query parameter.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/pages?audit_id=12345" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with an `items` array and a `total` integer. Each `items` entry is an object with page audit details such as `url`, `title`, `status`, and other string fields.

```json
{
  "items": [
    {
      "id": "page-1",
      "url": "https://example.com/",
      "title": "Home",
      "status": "200"
    }
  ],
  "total": 1
}
```

### List audits

#### Quickstart

List website audit runs with the default page size.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits?limit=100&offset=0" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with an `items` array and a `total` integer. Each item is a website audit object with fields like `id`, `url`, `stats`, `status`, and `last_update`.

```json
{
  "items": [
    {
      "id": 123,
      "url": "https://example.com",
      "error": null,
      "stats": {
        "score": 98,
        "errors": 0,
        "crawled": 120,
        "notices": 2,
        "warnings": 1
      },
      "title": "Example Site Audit",
      "is_new": 0,
      "status": "finished",
      "site_id": 45,
      "version": "1.0",
      "group_id": 7,
      "prev_stats": null,
      "has_project": true,
      "last_update": "2026-07-27",
      "error_params": null,
      "owner_account_id": 9
    }
  ],
  "total": 1
}
```

### Get audit pages by issue

#### Quickstart

Fetch the issue pages for a specific audit by passing the required `audit_id` and `code` as query parameters.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/issue-pages?audit_id=12345&code=mobile" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields: `urls` (an array of strings), `urls_type` (a string), and `total_urls` (an integer).

```json
{
  "urls": ["https://example.com/page-1", "https://example.com/page-2"],
  "urls_type": "simple_urls_array",
  "total_urls": 2
}
```

### Get audit history by date

#### Quickstart

Fetch the audit history for a specific audit ID and date using query parameters.

```bash
curl -X GET "https://api.eu.apyhub.com/se-ranking/website-audit/v1/site-audit/audits/history?audit_id=12345&date=2024-01-15" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields: `totals` (an object with `total_pages`, `total_errors`, `total_passed`, and `total_warnings`), `version` (string), `settings` (object), `audit_time` (string), `pages_data` (object keyed by issue code with integer values), and `domain_data` (object).

```json
{
  "totals": {
    "total_pages": 12,
    "total_errors": 3,
    "total_passed": 120,
    "total_warnings": 8
  },
  "version": "1.0.0",
  "settings": {},
  "audit_time": "2024-01-15T10:30:00Z",
  "pages_data": {
    "E001": 2,
    "W002": 6
  },
  "domain_data": {}
}
```

## About

## What it does
Website Audit lets you create, inspect, and manage site crawls for SEO and technical health checks. Send a domain and crawl settings, then track the audit as it moves through queued, processing, and finished states.

Use the standard audit endpoint for an HTML crawl or the advanced audit endpoint when you need JavaScript rendering. Both accept a `domain` and an optional `title`, plus crawl settings such as `max_pages`, `max_depth`, `check_robots`, `source_sitemap`, `source_subdomain`, `ignore_nofollow`, `ignore_noindex`, and crawl limits like `max_req`, `max_size`, `max_redirects`, `min_words`, `max_title_len`, and `max_description_len`. The create endpoints return an `id` you can use across the rest of the API.

Once an audit exists, fetch its status, full report, crawl history by date, crawled pages, found links, issue pages, or the issues for a specific URL. The list endpoint returns audit metadata such as `url`, `title`, `status`, `stats`, `prev_stats`, `last_update`, and `error`; the report endpoint returns sectioned results with `score_percent`, `total_errors`, `total_warnings`, `total_notices`, and `total_passed`.

Website Audit is useful for scheduled SEO monitoring, release checks before publishing, and comparing crawl changes after fixes. You can also recheck an audit in standard or advanced mode.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/se-ranking/service/website-audit
