← Back to Texas Court Intel

Public REST API

Programmatic access to Texas court intelligence data for Growth-tier subscribers.

Authentication: Include your JWT token as Authorization: Bearer YOUR_TOKEN
Tier: All endpoints require a Growth subscription.
Rate limit: 1,000 requests/day per user. Check X-RateLimit-Remaining header.

Endpoints

GET /api/v1/courts Growth

List courts, optionally filtered by county name.

ParameterTypeDefaultDescription
countystringFilter by county name (partial match)
limitint50Max results (1–200)
offsetint0Pagination offset
curl -H "Authorization: Bearer $TOKEN" \
  "https://texas-court-intel-api.onrender.com/api/v1/courts?county=Harris&limit=5"

GET /api/v1/courts/{court_id} Growth

Get detailed court profile including full judge intel, campaign finance, and CLE history.

curl -H "Authorization: Bearer $TOKEN" \
  "https://texas-court-intel-api.onrender.com/api/v1/courts/42"

GET /api/v1/judges/search Growth

Search judges by name across all counties.

ParameterTypeDefaultDescription
qstringJudge name query (required, 2+ chars)
limitint20Max results (1–100)
curl -H "Authorization: Bearer $TOKEN" \
  "https://texas-court-intel-api.onrender.com/api/v1/judges/search?q=Smith"

GET /api/v1/campaign-finance/{court_id} Growth

Get campaign finance data for a court's judge, sourced from TEC filings.

curl -H "Authorization: Bearer $TOKEN" \
  "https://texas-court-intel-api.onrender.com/api/v1/campaign-finance/42"

Response Format

All responses are JSON. List endpoints return { "results": [...], "count": N }. Detail endpoints return the object directly.

Error Codes

CodeMeaning
401Missing or invalid Bearer token
403Subscription tier insufficient (Growth required)
404Court not found
429Daily rate limit exceeded (resets at midnight UTC)

Python Example

import requests

headers = {"Authorization": "Bearer YOUR_TOKEN"}
resp = requests.get(
    "https://texas-court-intel-api.onrender.com/api/v1/judges/search",
    params={"q": "Smith", "limit": 10},
    headers=headers,
)
data = resp.json()
for judge in data["results"]:
    print(f"{judge['judge']} - {judge['court_name']}, {judge['county']} County")
print(f"Rate limit remaining: {resp.headers['X-RateLimit-Remaining']}")