# FBI Wanted List Scraper — Fugitives & Terrorists API (`compute-edge/fbi-wanted-scraper`) Actor

Extract data from the FBI Wanted public API. Scrape fugitives, terrorists, kidnapping suspects, and missing persons with filters for field office, classification, and status.

- **URL**: https://apify.com/compute-edge/fbi-wanted-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## FBI Wanted List Scraper

Extract structured data from the **FBI Wanted public API** — no authentication required. Scrape **fugitives, terrorists, kidnapping suspects, missing persons, bank robbers**, and all other wanted individuals from the official FBI database. Get reward amounts, physical descriptions, field office assignments, photos, and more — ready for analysis, alerting pipelines, or downstream AI processing.

### Features

- **Scrapes the official FBI Wanted API** — data is authoritative, updated daily by the FBI
- **Filters by poster type** — Ten Most Wanted, terrorists, kidnapping, murders, crimes-against-children, bank robbers, and more
- **Filters by field office** — target specific regional offices (detroit, chicago, los-angeles, miami, etc.)
- **Filters by status** — active (na), captured, located, deceased, or recovered
- **Full physical descriptions** — sex, race, nationality, hair, eyes, height, weight, age, scars and marks
- **Reward amounts** — structured `rewardMin` / `rewardMax` numeric fields alongside the human-readable reward text
- **Photo URLs** — direct link to the primary FBI wanted poster photo
- **Paginated** — handles all 1,000+ records automatically with polite rate limiting

#### Output fields

| Field | Description |
|---|---|
| `uid` | Unique FBI case identifier |
| `title` | Full name of the wanted person |
| `description` | Short crime description |
| `subjects` | Crime categories (e.g. "Violent Crime - Murders") |
| `fieldOffices` | Responsible FBI field offices |
| `personClassification` | Main, Victim, or Accomplice |
| `posterClassification` | Poster type (ten, terrorist, kidnapping, etc.) |
| `status` | Current status (na, captured, located, etc.) |
| `rewardText` | Human-readable reward description |
| `rewardMin` | Minimum reward amount in USD |
| `rewardMax` | Maximum reward amount in USD |
| `warningMessage` | Armed/dangerous warning |
| `sex` | Male / Female |
| `race` | Race description |
| `nationality` | Country of nationality |
| `placeOfBirth` | Place of birth |
| `hair` | Hair color |
| `eyes` | Eye color |
| `heightMin` | Minimum height (inches) |
| `heightMax` | Maximum height (inches) |
| `weight` | Weight description |
| `ageMin` | Estimated minimum age |
| `ageMax` | Estimated maximum age |
| `scarsAndMarks` | Identifying marks |
| `occupations` | Known occupations |
| `possibleStates` | US states where person may be located |
| `possibleCountries` | Countries where person may be located |
| `primaryImageUrl` | URL to primary wanted poster photo |
| `posterUrl` | URL to downloadable PDF poster |
| `url` | FBI profile page URL |
| `publication` | Date the listing was published |
| `modified` | Date the listing was last modified |

---

### How to scrape the FBI Wanted list

#### Step 1 — Open the Actor

Navigate to the **FBI Wanted List Scraper** on Apify Store and click **Try for free**.

#### Step 2 — Configure your input

Use the visual input form or paste a JSON configuration (see examples below). All fields are optional — running with empty input returns the 100 most recent active wanted persons.

#### Step 3 — Run the Actor

Click **Start** and wait for the run to complete. Typical runs finish in under 30 seconds.

#### Step 4 — Download your data

Export results as **JSON, CSV, Excel, or JSONL** from the dataset tab. Or integrate directly via the **Apify API** for automated pipelines.

---

### Input examples

#### Default run (empty input — returns 100 most recent records)

```json
{}
````

#### Ten Most Wanted fugitives only

```json
{
  "posterClassification": "ten",
  "maxResults": 10
}
```

#### Terrorist suspects — all records

```json
{
  "posterClassification": "terrorist",
  "maxResults": 0
}
```

#### Active wanted persons in the Detroit field office

```json
{
  "fieldOffice": "detroit",
  "status": "na",
  "maxResults": 200
}
```

#### All captured fugitives

```json
{
  "status": "captured",
  "maxResults": 500
}
```

***

### Output example

```json
{
  "uid": "07909fc7290c4a34a289eda0354528ab",
  "title": "JOSE GUADALUPE LOPEZ NUNEZ",
  "description": "Unlawful Flight to Avoid Prosecution - Murder",
  "subjects": "Violent Crime - Murders",
  "fieldOffices": "sacramento",
  "personClassification": "Main",
  "posterClassification": "murders",
  "status": "captured",
  "rewardText": "The FBI is offering a reward of up to $5,000 for information leading to the arrest.",
  "rewardMin": null,
  "rewardMax": 5000,
  "warningMessage": "",
  "sex": "Male",
  "race": "White (Hispanic)",
  "nationality": "Mexican",
  "placeOfBirth": "",
  "hair": "Black",
  "eyes": "brown",
  "heightMin": null,
  "heightMax": null,
  "weight": "175 pounds",
  "ageMin": null,
  "ageMax": null,
  "scarsAndMarks": "",
  "occupations": "",
  "possibleStates": "",
  "possibleCountries": "",
  "primaryImageUrl": "https://www.fbi.gov/wanted/murders/jose-guadalupe-lopez-nunez/@@images/image/large",
  "posterUrl": "https://www.fbi.gov/wanted/murders/jose-guadalupe-lopez-nunez/download.pdf",
  "url": "https://www.fbi.gov/wanted/murders/jose-guadalupe-lopez-nunez",
  "publication": "2021-06-21T09:35:00",
  "modified": "2022-03-15T14:00:00"
}
```

***

### Pricing

This Actor is priced at **$0.003 per result**. A typical run fetching 100 records costs approximately **$0.30** (plus standard Apify compute costs of roughly $0.01).

| Run type | Records | Estimated cost |
|---|---|---|
| Ten Most Wanted | ~10 | ~$0.03 |
| Single category (terrorist) | ~50–200 | ~$0.15–$0.60 |
| Full database (1,200+) | 1,200+ | ~$3.60 |

Costs include the Actor's per-result fee plus Apify platform compute. Runs are fast (typically under 60 seconds for 100 records) so platform compute costs are minimal.

***

### FAQ

**Q: Is scraping the FBI Wanted list legal?**

Yes. This Actor calls the official FBI public API (`api.fbi.gov`) which is freely accessible without authentication. The data is published by a US government agency for public consumption. No scraping of the fbi.gov website itself is performed — only the official REST API is used.

**Q: How often is the FBI Wanted list updated?**

The FBI updates the Wanted list in real time as persons are added, captured, or cases are resolved. For monitoring use cases, we recommend scheduling this Actor to run daily or hourly using Apify's built-in scheduler.

**Q: What does `status: "na"` mean?**

The value `"na"` means the person is **currently actively wanted** (not yet apprehended). Other statuses include `"captured"`, `"located"`, `"deceased"`, and `"recovered"`.

**Q: Can I filter by multiple field offices or categories simultaneously?**

The FBI API accepts one filter value per parameter. To combine multiple offices or categories, run the Actor multiple times with different filter values, then merge the results.

**Q: What is `posterClassification` vs `personClassification`?**

`posterClassification` describes the **type of case** (e.g., "ten" for Ten Most Wanted, "terrorist", "kidnapping"). `personClassification` describes the **role of the person** in the case (e.g., "Main" for the primary suspect, "Victim", "Accomplice").

**Q: How do I get all records, not just 100?**

Set `maxResults` to `0` in the input configuration. This will paginate through the entire FBI Wanted database, which currently contains 1,200+ records.

***

### Other scrapers you might like

- **CISA KEV Scraper** — Extract CISA's Known Exploited Vulnerabilities catalog for cybersecurity monitoring
- **EPA AQS Air Quality Scraper** — Extract EPA air quality monitoring data by location and pollutant
- **USGS MRDS Mineral Resources Scraper** — Extract USGS mineral resources database records

***

### Legal disclaimer

This Actor is provided for educational, research, and legitimate business purposes only. The data is sourced from the official FBI public API and is published by the US federal government for public use. The Actor operator is not affiliated with the FBI or any US government agency. Users are responsible for ensuring their use of the extracted data complies with applicable laws and regulations. Do not use this data for harassment, vigilantism, or any activity that could endanger individuals. Contact <support@apify.com> for questions about permitted use.

# Actor input Schema

## `fieldOffice` (type: `string`):

Filter by FBI field office (lowercase slug). Examples: 'detroit', 'chicago', 'los-angeles', 'new-york', 'miami'. Leave empty to return all offices.

## `personClassification` (type: `string`):

Filter by person classification. Common values: 'Main' (primary suspect), 'Victim', 'Accomplice'. Leave empty for all.

## `posterClassification` (type: `string`):

Filter by poster type. Common values: 'ten' (Ten Most Wanted), 'terrorist', 'kidnapping', 'missing', 'murders', 'crimes-against-children', 'bank-robbers'. Leave empty for all.

## `status` (type: `string`):

Filter by fugitive status. Common values: 'na' (still wanted), 'captured', 'located', 'deceased', 'recovered'. Leave empty for all.

## `maxResults` (type: `integer`):

Maximum number of wanted persons to return. Set to 0 for unlimited (may return 1000+ records). Default is 100.

## Actor input object example

```json
{
  "fieldOffice": "",
  "personClassification": "",
  "posterClassification": "",
  "status": "",
  "maxResults": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/fbi-wanted-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("compute-edge/fbi-wanted-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call compute-edge/fbi-wanted-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/fbi-wanted-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FBI Wanted List Scraper — Fugitives & Terrorists API",
        "description": "Extract data from the FBI Wanted public API. Scrape fugitives, terrorists, kidnapping suspects, and missing persons with filters for field office, classification, and status.",
        "version": "0.1",
        "x-build-id": "xFfCTjFoTZm3GGLf9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~fbi-wanted-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-fbi-wanted-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~fbi-wanted-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-fbi-wanted-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~fbi-wanted-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-fbi-wanted-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "fieldOffice": {
                        "title": "Field Office",
                        "type": "string",
                        "description": "Filter by FBI field office (lowercase slug). Examples: 'detroit', 'chicago', 'los-angeles', 'new-york', 'miami'. Leave empty to return all offices.",
                        "default": ""
                    },
                    "personClassification": {
                        "title": "Person Classification",
                        "type": "string",
                        "description": "Filter by person classification. Common values: 'Main' (primary suspect), 'Victim', 'Accomplice'. Leave empty for all.",
                        "default": ""
                    },
                    "posterClassification": {
                        "title": "Poster Classification",
                        "type": "string",
                        "description": "Filter by poster type. Common values: 'ten' (Ten Most Wanted), 'terrorist', 'kidnapping', 'missing', 'murders', 'crimes-against-children', 'bank-robbers'. Leave empty for all.",
                        "default": ""
                    },
                    "status": {
                        "title": "Status",
                        "type": "string",
                        "description": "Filter by fugitive status. Common values: 'na' (still wanted), 'captured', 'located', 'deceased', 'recovered'. Leave empty for all.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of wanted persons to return. Set to 0 for unlimited (may return 1000+ records). Default is 100.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
