# Validate a domain migration redirect map

**Use case:** 

Check old-to-new URLs after a domain migration: 301/308 redirects, final targets, chains, canonical and noindex. Export a PASS/WARN/FAIL QA report.

## Input

```json
{
  "mappingText": "sourceUrl,expectedTargetUrl\nhttps://old.example.com/pricing,https://new.example.com/pricing\nhttps://old.example.com/about,https://new.example.com/about",
  "maxMappings": 1000,
  "maxRedirects": 10,
  "timeoutSecs": 20,
  "maxConcurrency": 8,
  "ignoreTrailingSlash": true,
  "ignoreQueryString": false,
  "checkCanonical": true,
  "checkIndexability": true
}
```

## Output

```json
{
  "verdict": {
    "label": "Verdict",
    "format": "string"
  },
  "rowId": {
    "label": "Row ID",
    "format": "string"
  },
  "sourceUrl": {
    "label": "Source URL",
    "format": "string"
  },
  "expectedTargetUrl": {
    "label": "Expected target",
    "format": "string"
  },
  "finalUrl": {
    "label": "Actual final URL",
    "format": "string"
  },
  "sourceStatusCode": {
    "label": "Source status",
    "format": "integer"
  },
  "finalStatusCode": {
    "label": "Final status",
    "format": "integer"
  },
  "redirectCount": {
    "label": "Redirect count",
    "format": "integer"
  },
  "isDirectPermanentRedirect": {
    "label": "Direct permanent redirect",
    "format": "boolean"
  },
  "canonicalMatchesTarget": {
    "label": "Canonical matches",
    "format": "boolean"
  },
  "isNoindex": {
    "label": "Noindex",
    "format": "boolean"
  },
  "chargeable": {
    "label": "Chargeable",
    "format": "boolean"
  },
  "confidence": {
    "label": "Confidence",
    "format": "string"
  },
  "issueCodes": {
    "label": "Issue codes",
    "format": "array"
  }
}
```

## About this Actor

This example demonstrates how to use [Site Migration Redirect Map Validator & Audit](https://apify.com/burly_bat/site-migration-redirect-map-qa) with a specific input configuration. Visit the [Actor detail page](https://apify.com/burly_bat/site-migration-redirect-map-qa) to learn more, explore other use cases, and run it yourself.