Redirect map for a migration
https://seolyticize.com /api/v1/tools/plan_redirect_map Proposes a 1:1 301 redirect for each old address of a site migration, onto the page of the new site's crawl (newCrawlId, default latest) that most plausibly replaced it, with a confidence (0–1) and the evidence: the new site already redirects it, the same path (also ignoring case, slashes and .html/.php), the same text, or similar path words, title and text; failing those the nearest surviving section, and only then the homepage (flagged: Google treats mass homepage redirects as soft 404s). Give exactly one old source: oldUrls (a list), oldSitemapUrl (the old site's sitemap) or oldCrawlId (an earlier crawl of this client — best, since titles and text are compared too). format csv, htaccess (exact-match RewriteRules) or nginx (a map block) returns the whole map as a file in content. Answers 'where should each old URL redirect'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequirednewCrawlIdstringoldUrlsstring[]oldSitemapUrlstringoldCrawlIdstringformatstringminConfidencenumberlimitinteger{
"clientId": "string",
"newCrawlId": "latest",
"oldUrls": null,
"oldSitemapUrl": null,
"oldCrawlId": null,
"format": "json",
"minConfidence": 0,
"limit": 500
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/plan_redirect_map" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","newCrawlId":"latest","oldUrls":null,"oldSitemapUrl":null,"oldCrawlId":null,"format":"json","minConfidence":0,"limit":500}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/plan_redirect_map
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/plan_redirect_map
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/plan_redirect_map
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/plan_redirect_map
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/plan_redirect_map
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/plan_redirect_map
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/plan_redirect_map
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger