Menú

Referencia de la API · Auditoría Web

Sitios

seo_site_auditor · sites · 5 operaciones

GET/v1/seo/site-auditor/sites

List the audited sites

seo_site_auditor.sites.list

LecturaIdempotenteDesde 2026-11-01

Lists the websites this organization audits, oldest first (the first one is the site the app shows by default; an account normally has exactly one), paginated by cursor (limit up to 200). Each site carries its configuration (url, name, max_pages, schedule, notify_emails, exclude_patterns, exclude_mode, ignore_rules) and its state: next_due_at (the day, 00:00 UTC, the audit queue picks it up; null when manual, off or paused by the system), last_run_id / last_run_at / last_health_score (the latest finished audit), cloudflare_detected, and the failure count (consecutive_failures, last_failure_reason, disabled_by_system: the system pauses the schedule after 5 failures in a row). Requires view access to Site Audit.

Alcance
seo_site_auditor:read
Permiso
Ver el módulo
Tool del MCP
seo_site_auditor_sites_listEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.list".

Costo declarado: hasta 201 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

limitintegerqueryopcional

How many items this page brings at most (see the maximum and the default in the schema).

Por defecto: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

Respuesta

dataarray<object>
has_moreboolean
next_cursorstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/seo/site-auditor/sites" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/seo/site-auditor/sites" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/seo/site-auditor/sites/{site_id}

Get one audited site

seo_site_auditor.sites.get

LecturaIdempotenteDesde 2026-11-01

Returns one audited site with its configuration (url, name, max_pages, schedule, notify_emails, exclude_patterns, exclude_mode, ignore_rules with the reason of each) and its state (next_due_at, last_run_id, last_run_at, last_health_score with last_run_coverage, the pages the latest audit could read: a score over very few pages says little, low_coverage, cloudflare_detected, consecutive_failures, last_failure_reason, disabled_by_system). Read its audits with seo_site_auditor.runs.list (site_id). Not found (audit_site_not_found) if the site does not exist in this organization. Requires view access to Site Audit.

Alcance
seo_site_auditor:read
Permiso
Ver el módulo
Tool del MCP
seo_site_auditor_sites_getEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.get".

Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

site_idstringrutarequerido

Audited site id (id from seo_site_auditor.sites.list).

Respuesta

idstring
urlstring
namestring
max_pagesnumber
scheduleobject
next_due_atnumber | null
notify_emailsarray<string>
exclude_patternsarray<string>
exclude_modeenum

Valores: skip-crawl, crawl-but-ignore

ignore_rulesarray<object>
last_run_idstring | null

The latest finished audit (seo_site_auditor.runs.get).

last_run_atnumber | null
last_health_scorenumber | null

Health score (0–100) of the latest finished audit; read it with last_run_coverage: it is computed only over the pages that could be read.

last_run_coverageobject | null

How much of the site the latest finished audit read; null without one.

cloudflare_detectedboolean | null

Whether the site answers from behind Cloudflare (detected in the background after creating it or changing its URL; null until then).

consecutive_failuresnumber
last_failed_atnumber | null
last_failure_reasonstring | null
disabled_by_systemboolean
created_atnumber
updated_atnumber
created_by_idstring | null

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/seo/site-auditor/sites/{site_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/seo/site-auditor/sites/{site_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/seo/site-auditor/sites

Add the site to audit

seo_site_auditor.sites.create

EscrituraDesde 2026-11-01

Adds the website this organization audits: url (https; a bare domain gets https://), and optionally name (default: the domain), max_pages (1–500, default 100), schedule (default, as in the app: weekly on Mondays and active, so the site enters MB Suite's audit queue at once and is crawled from Cloud Run every week; next_due_at in the answer says the day; send frequency manual to audit only on demand), notify_emails (up to 10 addresses that get the results by email after every audit), exclude_patterns and exclude_mode. It does NOT audit right away: the first audit runs on the next scheduled day, or start one with seo_site_auditor.runs.trigger. After answering, MB Suite checks once in the background whether the site is behind Cloudflare (one HTTP request to the site; cloudflare_detected). Each account audits one site: if the organization already has one it fails with audit_site_exists (409, with its site_id): change it with seo_site_auditor.sites.update. Fails with invalid_site_url (400) when the address is not a valid https domain or points inside a private network. Returns the new site. Requires edit access to Site Audit.

Alcance
seo_site_auditor:write
Permiso
Editar en el módulo
Tool del MCP
seo_site_auditor_sites_createEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.create".

Costo declarado: hasta 1 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).

Parámetros

urlstringcuerporequerido

The site's address, https only. A bare domain gets https:// (example.com → https://example.com); hosts that do not resolve to the public internet are rejected.

namestringcuerpoopcional

Display name (default: the domain).

max_pagesintegercuerpoopcional

Pages crawled per audit, 1–500 (default 100; the app offers 10, 25, 50, 100 and 500).

Por defecto: 100

scheduleobjectcuerpoopcional

When it is audited. Default, as in the app: weekly on Mondays and active, so the site enters MB Suite's audit queue right away (next_due_at in the answer says when; each audit crawls the site from Cloud Run and emails notify_emails). Send frequency manual (or enabled false) to audit it only on demand.

notify_emailsarray<string (email)>cuerpoopcional

Who gets the email with the results after every audit (up to 10 addresses; they need not be members).

Por defecto: []

exclude_patternsarray<string>cuerpoopcional

URL patterns left out of the audit, e.g. /blog/* or *?page=* (up to 50).

exclude_modeenumcuerpoopcional

skip-crawl (default: excluded URLs are not even visited) or crawl-but-ignore (visited, but they raise no issues).

Valores: skip-crawl, crawl-but-ignore

Respuesta

idstring
urlstring
namestring
max_pagesnumber
scheduleobject
next_due_atnumber | null
notify_emailsarray<string>
exclude_patternsarray<string>
exclude_modeenum

Valores: skip-crawl, crawl-but-ignore

ignore_rulesarray<object>
last_run_idstring | null

The latest finished audit (seo_site_auditor.runs.get).

last_run_atnumber | null
last_health_scorenumber | null

Health score (0–100) of the latest finished audit; read it with last_run_coverage: it is computed only over the pages that could be read.

last_run_coverageobject | null

How much of the site the latest finished audit read; null without one.

cloudflare_detectedboolean | null

Whether the site answers from behind Cloudflare (detected in the background after creating it or changing its URL; null until then).

consecutive_failuresnumber
last_failed_atnumber | null
last_failure_reasonstring | null
disabled_by_systemboolean
created_atnumber
updated_atnumber
created_by_idstring | null

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/seo/site-auditor/sites" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "url": "URL"
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X POST "https://api.mb-suite.com/v1/seo/site-auditor/sites" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "url": "URL"
}'
PATCH/v1/seo/site-auditor/sites/{site_id}

Change an audited site's configuration

seo_site_auditor.sites.update

EscrituraIdempotenteDesde 2026-11-01

Changes one or more settings of an audited site: url, name, max_pages (1–500), schedule (replaced whole: frequency manual/weekly/monthly, day_of_week or day_of_month, enabled), notify_emails (up to 10, replaced whole), exclude_patterns (up to 50, replaced whole; each starts with / or *) and exclude_mode. Only what actually changes is written: a new schedule moves next_due_at to its next day (and switching it on clears the failure count of a site the system paused); a new url forgets how the site was crawled last time and checks Cloudflare again. Changes apply from the next audit; past audits keep their results. Sending the current values changes nothing. Returns the site. Errors: audit_site_not_found (404), invalid_site_url (400). Requires edit access to Site Audit.

Alcance
seo_site_auditor:write
Permiso
Editar en el módulo
Tool del MCP
seo_site_auditor_sites_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.update".

Costo declarado: hasta 1 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).

Parámetros

site_idstringrutarequerido

Audited site id (id from seo_site_auditor.sites.list).

urlstringcuerpoopcional

New address (https). Changing it forgets how the site was crawled last time.

namestringcuerpoopcional

New display name.

max_pagesintegercuerpoopcional

Pages crawled per audit, 1–500.

scheduleobjectcuerpoopcional

Replaces the whole schedule. Turning it on again also clears the failure count of a site the system paused.

notify_emailsarray<string (email)>cuerpoopcional

Replaces the whole list (up to 10 addresses).

exclude_patternsarray<string>cuerpoopcional

Replaces the whole list (up to 50 patterns).

exclude_modeenumcuerpoopcional

skip-crawl (excluded URLs are not visited) or crawl-but-ignore (visited, but they raise no issues).

Valores: skip-crawl, crawl-but-ignore

Respuesta

idstring
urlstring
namestring
max_pagesnumber
scheduleobject
next_due_atnumber | null
notify_emailsarray<string>
exclude_patternsarray<string>
exclude_modeenum

Valores: skip-crawl, crawl-but-ignore

ignore_rulesarray<object>
last_run_idstring | null

The latest finished audit (seo_site_auditor.runs.get).

last_run_atnumber | null
last_health_scorenumber | null

Health score (0–100) of the latest finished audit; read it with last_run_coverage: it is computed only over the pages that could be read.

last_run_coverageobject | null

How much of the site the latest finished audit read; null without one.

cloudflare_detectedboolean | null

Whether the site answers from behind Cloudflare (detected in the background after creating it or changing its URL; null until then).

consecutive_failuresnumber
last_failed_atnumber | null
last_failure_reasonstring | null
disabled_by_systemboolean
created_atnumber
updated_atnumber
created_by_idstring | null

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/seo/site-auditor/sites/{site_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X PATCH "https://api.mb-suite.com/v1/seo/site-auditor/sites/{site_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
DELETE/v1/seo/site-auditor/sites/{site_id}

Delete an audited site and its audits

seo_site_auditor.sites.delete

IrreversibleDesde 2026-11-01

Deletes an audited site together with ALL its audits (their issues and crawled pages). The site's configuration (url, schedule, notify emails, exclusions and intentional rules with their reasons) stays 30 days in the trash and can be restored, but the audit history does not come back: restoring brings the site back with no audits, its next scheduled audit computed from the restore day (409 audit_site_exists if the account has another site by then). Outside the screen it always needs a dry run (which counts the audits that go with it) and its confirm_token. A site with an audit still queued or running cannot be deleted (audit_in_progress, 409). Not found (audit_site_not_found) if it does not exist. Requires edit access to Site Audit and, for a credential, deletion enabled.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
seo_site_auditor:write y «Permitir eliminar» (seo_site_auditor:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
seo_site_auditor_sites_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "seo_site_auditor.sites.delete".

Costo declarado: hasta 100 lecturas y 250 escrituras por llamada (cuentan en el cupo diario).

Parámetros

site_idstringrutarequerido

Audited site id (id from seo_site_auditor.sites.list).

Respuesta

oktrue
runs_deletednumber
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errores

Ejemplo

curl -X DELETE "https://api.mb-suite.com/v1/seo/site-auditor/sites/{site_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X DELETE "https://api.mb-suite.com/v1/seo/site-auditor/sites/{site_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'