---
title: "Run site inspections"
method: GET
path: "/api/v1/inspector/site-inspections/run"
tags: ["inspector"]
---

# Run site inspections

`GET /api/v1/inspector/site-inspections/run`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/inspector/site-inspections/run`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Inspect one page of one of your organization's own websites, or of a competitor site its business profiles name, live and read-only: what it runs on (commerce platform, CMS, theme, front-end framework, site search, storefront apps, payments, edge), each with the exact evidence it rests on, its readable text, and the surfaces you name (robots, llms, markup, forms, negotiation). Answers outside_site for any other host and blocked_by_challenge when the site served a bot challenge, which says nothing about the page. Starts no scan, publishes no score and stores nothing; each answer is dated to its own read. rendered is not available here (a render needs a run that records the browser's use), so it comes back as a limit.

## Query parameters

- `url` string, uri, required: An absolute http(s) URL on one of the organization's websites: the page whose behaviour the question is about (a product page, a search URL such as /search?q=odor, or the home page).
- `surfaces` string[]: What to read besides the page and what it runs on: robots (/robots.txt), llms (/llms.txt), markup (title, meta robots, canonical, alternate links, structured data types), forms (form actions and fields, such as site search), negotiation (whether the page answers Accept: text/markdown), rendered (the page's text after a browser runs it). Use [] for the page and its platform alone.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- InspectorSiteInspectionsRunResponse
  - `inspection` union, required
    - object
      - `ok` true, required
      - `requestedUrl` string, required
      - `finalUrl` string, required
      - `redirects` string[], required
      - `status` integer, nullable, required
      - `contentType` string, nullable, required
      - `checkedAt` string, required
      - `method` 'http' | 'http+rendered', required
      - `platform` object[], required
        - `category` 'commerce' | 'cms' | 'theme' | 'framework' | 'search' | 'reviews' | 'email_sms' | 'subscriptions' | 'affiliate' | 'support_chat' | 'consent' | 'payments' | 'edge', required
        - `name` string, required
        - `version` string, nullable, required
        - `confidence` 'high' | 'medium' | 'low', required
        - `signals` string[], required
      - `facts` object[], required
        - `surface` 'robots' | 'llms' | 'markup' | 'forms' | 'negotiation' | 'rendered', required
        - `fact` string, required
        - `at` string, nullable, required
      - `text` object, nullable, required
        - `excerpt` string, required
        - `truncated` boolean, required
      - `body` object, nullable, required
        - `bytes` integer, required
        - `sha256` string, required
      - `limits` string[], required
    - object
      - `ok` false, required
      - `requestedUrl` string, required
      - `checkedAt` string, required
      - `reason` 'outside_site' | 'unsafe' | 'blocked_by_challenge' | 'not_found' | 'unreachable' | 'timeout', required
      - `status` integer, nullable, required
      - `blockedBy` string, nullable, required
      - `detail` string, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
