Get site migration cleanup preview

GET/v1/api/sites/{site_id}/migrations/candidates/{candidate_id}/cleanup-preview

Preview what confirming the candidate would clean up.

Scope
sites:read
Token
API key or OAuth access token
Role
Any workspace member
MCP tool
preview_migration_cleanup · preview: MCP write tools are in preview
What scopes, tokens and roles mean →
Request
curl "https://api.crawle.io/v1/api/sites/11111111-1111-1111-1111-111111111111/migrations/candidates/1/cleanup-preview" \
  -H "Authorization: Bearer $CRAWLE_API_KEY"
const response = await fetch("https://api.crawle.io/v1/api/sites/11111111-1111-1111-1111-111111111111/migrations/candidates/1/cleanup-preview", {
  headers: {
    Authorization: `Bearer ${process.env.CRAWLE_API_KEY}`,
  },
});
const data = await response.json();
import os

import requests

response = requests.request(
    "GET",
    "https://api.crawle.io/v1/api/sites/11111111-1111-1111-1111-111111111111/migrations/candidates/1/cleanup-preview",
    headers={
        "Authorization": f"Bearer {os.environ['CRAWLE_API_KEY']}",
    },
)
data = response.json()
$CRAWLE_API_KEY
is an API key from Settings › API keys.
Response 200JSON
{
  "avg_path_similarity": 1.5,
  "candidate_id": 1,
  "chained_redirects": 1,
  "cleanup_safe_count": 1,
  "estimated_rows_affected": 1,
  "homepage_redirects": 1,
  "needs_review_count": 1,
  "permanent_redirects": 1,
  "recommendations": [
    "example"
  ],
  "source_domain": "example.com",
  "stable_redirects": 1,
  "target_domain": "example.com",
  "temporary_redirects": 1,
  "total_mappings": 1,
  "website_id": 1
}

Example generated from the API contract.

Parameters

site_idpath · string (uuid)required
candidate_idpath · integerrequired

Response 200

avg_path_similaritynumberrequired
candidate_idintegerrequired
chained_redirectsintegerrequired
cleanup_safe_countintegerrequired
estimated_rows_affectedintegerrequired
homepage_redirectsintegerrequired
needs_review_countintegerrequired
permanent_redirectsintegerrequired
recommendationsarray of stringrequired
source_domainstringrequired
stable_redirectsintegerrequired
target_domainstringrequired
temporary_redirectsintegerrequired
total_mappingsintegerrequired
website_idintegerrequired

Errors

  • 401

    When
    Missing, invalid, or expired token.
  • 403

    When
    The token has none of the accepted scopes (sites:read).
  • 422

    When
    The request did not match the schema. detail lists each problem.
  • 429

    When
    Rate limited. Wait for Retry-After seconds.

All errors and what to do →

Generated from the API contract at 7e7039b0b, synced October 30, 2026.