ParseForge Scrapers

Texas TDCJ Inmate Search Scraper

parseforge/texas-tdcj-inmate-scraper

News & mediaOther

Scrapes Texas TDCJ inmate records by last name, first name, TDCJ number, or SID number. Returns each inmate as a flat row with offense, sentence, facility, and parole status.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
103
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

Texas TDCJ Inmate Search Scraper

Scrape Texas TDCJ inmate records by name, TDCJ number, or SID number, up to a million per run. Every record comes with offense details, sentence dates, facility, and parole status. No login or API key. Export to CSV, JSON, Excel, or XML.

The Texas Department of Criminal Justice publishes inmate records on a public search page, but it is built for one manual lookup at a time. This Actor reads that same public data in bulk, filtered by gender or race, and returns each match in one fixed schema. You can pull a single record by TDCJ or SID number, or sweep thousands of names for research, journalism, or legal work.

Who uses it What they scrape Texas TDCJ Inmate Search for
Legal researchers Pull complete offense and sentence histories for case review
Journalists Build datasets of incarceration patterns by county or offense
Background check firms Verify an individual's Texas prison record in bulk
Academic researchers Collect demographic and sentencing data for studies
Advocacy groups Track parole eligibility and release dates for outreach

What it does

This Actor collects Texas TDCJ inmate records by last name, first name, TDCJ number, or SID number, and returns each one as a flat row.

  • ๐Ÿ” Search by name: exact last name plus optional partial first name returns all matching inmates.
  • ๐Ÿ†” Search by ID: TDCJ number or SID number pinpoints one record instantly.
  • ๐Ÿ“Š Demographic filters: narrow results by gender or race before the run starts.
  • ๐Ÿ“ฆ Bulk collection: set maxItems up to 1,000,000 to pull large cohorts in one run.
  • ๐Ÿ“„ Flat output: every inmate is one row with offense, sentence, facility, and parole fields.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Texas TDCJ Inmate Search data

๐Ÿ“ฐ Investigate sentencing patterns.

A journalist runs the Actor with a last name and race filter to pull all matching inmates, then compares sentence lengths across counties for a story on disparities.

โš–๏ธ Verify a client's record.

A legal researcher enters a TDCJ number to get the exact offense, sentence date, and facility for a habeas petition.

๐Ÿ“Š Build a research dataset.

An academic sets maxItems to 100,000 and filters by gender to collect a cohort for a study on incarceration trends.

๐Ÿ”Ž Screen applicants in bulk.

A background check firm submits a list of last names and first names to flag any Texas prison history before hiring.

๐Ÿ“… Track parole eligibility.

An advocacy group pulls records by SID number to monitor projected release dates and plan reentry support.

Why choose this scraper

What you get
No official API TDCJ offers no public API for inmate data, only a manual web form
Bulk by design Collect thousands of records in one run instead of one search at a time
Structured output Every record lands in the same flat schema, ready for analysis
Parole and facility data Each row includes current facility, parole status, and projected release

How it compares

No other Store actor targets Texas TDCJ Inmate Search the same way, so the honest comparison is with the alternatives teams actually weigh.

Texas TDCJ Inmate Search Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Texas TDCJ Inmate Search changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from a last name, first name, TDCJ number, or SID number, and filters run as each record is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "lastName": "Smith",
  "firstName": "John"
}

A larger pull:

{
  "maxItems": 200,
  "lastName": "Smith",
  "firstName": "John"
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Texas TDCJ Inmate Search Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Texas TDCJ Inmate Search through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/texas-tdcj-inmate-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that you entered a valid last name or TDCJ/SID number. TDCJ search requires at least a last name or an ID. Also verify your gender and race filters are not too restrictive.

The run stops before maxItems.

That means the search returned fewer matches than maxItems. Try a broader last name or remove the first name filter.

I get an error about missing input.

You must provide either a last name or a TDCJ number or SID number. The Actor cannot run with all search fields empty.

The output has unexpected characters or encoding issues.

Ensure your export format is set to UTF-8. If using CSV, open it in a tool that supports UTF-8, like Excel with the correct import settings.

The run is slow for large maxItems.

TDCJ's site can be slow. Reduce maxItems, or run multiple smaller searches in parallel using different last name prefixes.

FAQ

Question Answer
Do I need a TDCJ number to search? No. You can search by last name alone, or last name plus first name. TDCJ number and SID number are optional but return a single exact record.
What does the Actor return for each inmate? Each row includes name, TDCJ number, SID number, gender, race, offense details, sentence date, facility, and parole status, among other fields.
Can I filter by race or gender? Yes. The input has dropdowns for gender (Any, Male, Female) and race (Any, Asian, Black, Hispanic, American Indian, Other, Unknown, White).
How many records can I collect in one run? Set maxItems up to 1,000,000. The Actor stops when it reaches that number or when no more matches exist.
Is this legal to scrape? TDCJ publishes this data publicly for search. You are responsible for complying with all applicable laws and terms of use for your intended purpose.
What if I only know part of the first name? The first name field accepts partial matches. For example, 'Joh' will return John, Johnny, and Johnson.
Does the Actor handle pagination? Yes. It automatically follows all result pages until maxItems is reached or the list ends.
What export formats are supported? You can export the dataset to CSV, JSON, Excel, or XML from the Apify platform.
Can I schedule this to run daily? Yes. Use Apify's scheduler to run the Actor on a cron expression, and it will update your dataset with any new or changed records.
Is there a risk of being blocked? The Actor uses standard HTTP requests and respects the site's structure. For very large runs, consider using proxies or increasing the timeout.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Texas Department of Criminal Justice. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Maximum number of inmates to collect per run. 10
lastName string Exact last-name match (required if no TDCJ/SID number). Smith
firstName string First name (partial allowed). John
tdcjNumber string 8-digit TDCJ-CID number. not set
sidNumber string State Identification (SID) number. not set
gender string (3 options) Filter by gender. not set
race string (8 options) Filter by race code. not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~texas-tdcj-inmate-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Texas TDCJ Inmate Search Scraper on Apify All scrapers