Skip to main content
The Courts endpoints provide access to DocketStream’s Georgia court records database, which aggregates case filings, hearing schedules, warrants, and dispositions from state, superior, magistrate, and warrant courts across Georgia. With more than 305,000 court cases indexed — and new records added multiple times daily — you can build defendant lookups, track upcoming hearings, and monitor case outcomes programmatically.

GET /courts

Search court cases across all indexed Georgia courts. Returns a paginated list of matching case records sorted by filed_date descending.

Query Parameters

string
Defendant name to search for. Partial matches are supported and the search is case-insensitive. For example, "doe" will match "JOHN DOE".
string
Exact case number to look up (e.g., "2024-CR-00456"). When provided, other filters are ignored and the response contains at most one record.
string
Filter by the type of court. Accepted values: "state", "superior", "magistrate", or "warrants".
string
The county name slug to filter results by (e.g., "clayton", "gwinnett").
string
Filter by case status. Accepted values: "pending", "closed", or "warrant".
integer
default:"50"
Maximum number of records to return per page. Minimum: 1. Maximum: 200.
integer
default:"0"
Number of records to skip before returning results. Use with limit to paginate through large result sets.

Response

Response Fields

integer
The total number of cases matching your query across all pages.
array
An array of court case objects.
string
The official case number assigned by the court.
string
The defendant’s full name as it appears in court records.
string
The primary offense charged in the case.
string
The type of court handling the case: "State", "Superior", "Magistrate", or "Warrants".
string
Display name of the county where the case is filed.
string
The date the case was filed, in YYYY-MM-DD format.
string
Current case status: "pending", "closed", or "warrant".
string | null
Name of the presiding judge, or null if not yet assigned.
string | null
ISO 8601 timestamp of the next scheduled hearing, or null if no hearing is currently scheduled.
Virtual hearing URL (e.g., Zoom or Teams link), or null if the hearing is in-person or no link has been published.

GET /courts/

Retrieve the full detail record for a single court case, including its complete hearing history and all recorded dispositions. Use this endpoint when you need the full case timeline rather than just summary information.

Path Parameter

string
required
The official case number (e.g., "2024-CR-00456"). Case numbers are returned by GET /courts and are formatted as assigned by the originating court.

Response

Returns all fields from the list response, plus:
array
A chronological list of all hearings on record for this case.
string
Hearing date in YYYY-MM-DD format.
string
Scheduled hearing time in HH:MM format (local court timezone).
string | null
Name of the judge presiding over this hearing.
string | null
Courtroom or address where the hearing is held, or null if virtual only.
Virtual hearing URL for this specific hearing, or null if in-person.
array
A list of all dispositions recorded for this case. May be empty for pending cases.
string
Date the disposition was entered, in YYYY-MM-DD format.
string
The disposition outcome (e.g., "Guilty Plea", "Not Guilty", "Dismissed", "Nolle Prosequi").
string | null
Sentence imposed, if applicable (e.g., "12 months probation"), or null if no sentence was recorded.
Court data is updated multiple times daily, but hearing schedules and dispositions sourced from individual clerk offices may have delays of up to 24 hours. For time-sensitive monitoring, combine court queries with Alert watchers to receive push notifications.