# Map (/api-reference/endpoint/map)

<!-- agent-signals: reading_time_min: 4 · est_tokens: 2454 · updated: 2026-07-30 -->
Related: [Search](/api-reference/endpoint/search.md), [Search Feedback](/api-reference/endpoint/search-feedback.md), [Scrape](/api-reference/endpoint/scrape.md), [Batch Scrape](/api-reference/endpoint/batch-scrape.md), [Get Batch Scrape Status](/api-reference/endpoint/batch-scrape-get.md), [Cancel Batch Scrape](/api-reference/endpoint/batch-scrape-delete.md)

> Are you an AI agent that needs a Firecrawl API key? See [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) for automated onboarding instructions.

`POST /map`

Map multiple URLs based on options

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "format": "uri",
              "description": "The base URL to start crawling from"
            },
            "search": {
              "type": "string",
              "description": "Specify a search query to order the results by relevance. Example: 'blog' will return URLs that contain the word 'blog' in the URL ordered by relevance."
            },
            "sitemap": {
              "type": "string",
              "enum": [
                "skip",
                "include",
                "only"
              ],
              "description": "Sitemap mode when mapping. If you set it to `skip`, the sitemap won't be used to find URLs. If you set it to `only`, only URLs that are in the sitemap will be returned. By default (`include`), the sitemap and other methods will be used together to find URLs.",
              "default": "include"
            },
            "includeSubdomains": {
              "type": "boolean",
              "description": "Include subdomains of the website",
              "default": true
            },
            "ignoreQueryParameters": {
              "type": "boolean",
              "description": "Do not return URLs with query parameters",
              "default": true
            },
            "ignoreCache": {
              "type": "boolean",
              "description": "Bypass the sitemap cache to retrieve fresh URLs. Sitemap data is cached for up to 7 days; use this parameter when your sitemap has been recently updated.",
              "default": false
            },
            "limit": {
              "type": "integer",
              "description": "Maximum number of links to return",
              "default": 5000,
              "maximum": 100000
            },
            "timeout": {
              "type": "integer",
              "description": "Timeout in milliseconds. There is no timeout by default."
            },
            "location": {
              "type": "object",
              "description": "Location settings for the request. When specified, this will use an appropriate proxy if available and emulate the corresponding language and timezone settings. Defaults to 'US' if not specified.",
              "properties": {
                "country": {
                  "type": "string",
                  "description": "ISO 3166-1 alpha-2 country code (e.g., 'US', 'AU', 'DE', 'JP')",
                  "pattern": "^[A-Z]{2}$",
                  "default": "US"
                },
                "languages": {
                  "type": "array",
                  "description": "Preferred languages and locales for the request in order of priority. Defaults to the language of the specified location. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language",
                  "items": {
                    "type": "string",
                    "example": "en-US"
                  }
                }
              }
            },
            "auditMetadata": {
              "type": "object",
              "description": "User attribution included with SIEM logging events when SIEM Logging is enabled for the organization.",
              "additionalProperties": false,
              "required": [
                "username"
              ],
              "properties": {
                "username": {
                  "type": "string",
                  "maxLength": 1024,
                  "description": "The username associated with the request."
                }
              }
            },
            "threatProtection": {
              "type": "object",
              "title": "Threat Protection Override",
              "description": "Per-request [Threat Protection](https://docs.firecrawl.dev/features/threat-protection) override. Fields you provide replace the corresponding fields of your organization's policy for this request only; omitted fields keep their organization-level values. Requires Threat Protection to be enabled for your team (enterprise feature) — otherwise the request is rejected with a 403. If your organization has disabled request overrides, any request that includes this object is rejected with a 403. If Threat Protection is enforced for your team, `mode` may not be set to `off`.",
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "off",
                    "normal"
                  ],
                  "description": "URL scanning mode for this request. `normal` checks URLs against Google Web Risk (+2 credits per URL scanned)."
                },
                "riskScoreThreshold": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100,
                  "description": "Normalized risk score (0–100) at or above which a classifier verdict blocks the URL. Lower is stricter.",
                  "example": 75
                },
                "blacklist": {
                  "type": "array",
                  "maxItems": 1000,
                  "items": {
                    "type": "string"
                  },
                  "description": "Domains to always block, as plain domains (`example.com`) or wildcard globs (`*.example.com`). No protocol, path, or port."
                },
                "whitelist": {
                  "type": "array",
                  "maxItems": 1000,
                  "items": {
                    "type": "string"
                  },
                  "description": "Domains to always allow, as plain domains or wildcard globs. Wins over every other rule."
                },
                "blockedTlds": {
                  "type": "array",
                  "maxItems": 1000,
                  "items": {
                    "type": "string"
                  },
                  "description": "Top-level domains to block outright, lowercase without the leading dot (e.g. `zip`)."
                },
                "failurePolicy": {
                  "type": "string",
                  "enum": [
                    "open",
                    "closed"
                  ],
                  "description": "What to do when the classifier can't be reached: `closed` blocks the request, `open` allows it."
                }
              }
            }
          },
          "required": [
            "url"
          ]
        },
        "examples": {
          "example1": {
            "summary": "Example 1",
            "value": {
              "url": "<string>",
              "search": "<string>",
              "sitemap": "include",
              "includeSubdomains": true,
              "ignoreQueryParameters": true,
              "ignoreCache": false,
              "limit": 5000,
              "location": {
                "country": "US",
                "languages": [
                  "en-US"
                ]
              },
              "timeout": 60000
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Successful response",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean"
              },
              "links": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "title": {
                      "type": "string",
                      "description": "The title of the page, if available."
                    },
                    "description": {
                      "type": "string",
                      "description": "A description of the page, if available."
                    }
                  },
                  "required": [
                    "url"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "402": {
      "description": "Payment required",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "example": "Payment required to access this resource."
              }
            }
          }
        }
      }
    },
    "429": {
      "description": "Too many requests",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "example": "Request rate limit exceeded. Please wait and try again later."
              }
            }
          }
        }
      }
    },
    "500": {
      "description": "Server error",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "example": "An unexpected error occurred on the server."
              }
            }
          }
        }
      }
    }
  }
}
```
