CourtListener preserves persistent URLs for all opinion clusters. When a cluster becomes obsolete, its original cluster_id is never simply discarded. Instead, a ClusterRedirection record maps the old cluster to the current, active one.
Clusters may be removed or consolidated for several reasons:
Duplicates: Two or more clusters representing the same opinion are merged into one.
Versioning: A newer version of an opinion was incorrectly ingested as a separate cluster. When corrected, the opinions are consolidated into a single cluster and the extra clusters are deleted.
Consolidation: Opinions from the same case (lead opinion, dissent, concurrence) were spread across different clusters because a court published them as separate files. When corrected, we keep a single cluster and delete the others.
Sealed: A cluster is removed or sealed by court order.
When you request a cluster that has been redirected, the behavior depends on the reason:
For version, duplicate, or consolidation redirections, you will receive an HTTP 301 response pointing to the surviving cluster.
For sealed clusters, you will receive an HTTP 410 Gone status with no redirection target.
In some cases (e.g., error pages or court listing pages incorrectly ingested as opinions), clusters are simply deleted with no redirection record, and the old cluster_id will no longer exist.
The Clusters API endpoint supports cluster redirections. When requesting a redirected cluster, you will receive the appropriate HTTP status code (301 or 410) as described above.
Additionally, each cluster response includes a cluster_redirections field listing any old clusters that were redirected to it, with the original deleted_cluster_id and the redirection reason.
If you use our database replication service, the search_clusterredirection table is included in your replica. You can query it directly to find redirections and understand how clusters have been merged or removed.
Be aware that an old cluster_id may internally redirect to a different, newer cluster. Your application should handle this gracefully when joining data across tables.
These services are sponsored by Free Law Project and users like you. We provide these services in furtherance of our mission to make the legal sector more innovative and equitable.
We have provided these services for over a decade, and we need your contributions to continue curating and enhancing them.
Will you support us today by becoming a member?