{
  "openapi": "3.0.1",
  "info": {
    "title": "CourtListener Scraper - Case Law, PACER Dockets & Judges",
    "description": "Queries all six CourtListener indexes live: 8.3M case law opinions, 8.8M federal PACER dockets, 60M RECAP filings, 15k judges and 102k oral arguments. Filter by court, date, party, docket number, citation, nature of suit or citation count. No API key needed.",
    "version": "0.1",
    "x-build-id": "ajhhcO8MRk1PoQN3a"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~courtlistener-docket-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-courtlistener-docket-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/parseforge~courtlistener-docket-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-courtlistener-docket-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/parseforge~courtlistener-docket-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-courtlistener-docket-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": {
          "searchType": {
            "title": "What to search",
            "enum": [
              "opinions",
              "recap",
              "dockets",
              "recap-documents",
              "judges",
              "oral-arguments"
            ],
            "type": "string",
            "description": "Which CourtListener index to query. Opinions are published case law; RECAP dockets and documents are federal PACER filings; judges is the judiciary database; oral arguments are argument audio recordings.",
            "default": "opinions"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Full-text query. Supports the CourtListener query syntax: quoted phrases, AND/OR/NOT, and field prefixes. Leave empty to browse the whole index with the filters below."
          },
          "court": {
            "title": "Court ID",
            "type": "string",
            "description": "Restrict to one court by its CourtListener ID, for example scotus, ca9, cand or nysd. Space-separate several IDs to match any of them."
          },
          "filedAfter": {
            "title": "Filed on or after",
            "type": "string",
            "description": "Earliest filing date, as YYYY-MM-DD or MM/DD/YYYY. For oral arguments this filters on the argument date instead."
          },
          "filedBefore": {
            "title": "Filed on or before",
            "type": "string",
            "description": "Latest filing date, as YYYY-MM-DD or MM/DD/YYYY. For oral arguments this filters on the argument date instead."
          },
          "orderBy": {
            "title": "Sort order",
            "enum": [
              "score desc",
              "dateFiled desc",
              "dateFiled asc",
              "citeCount desc",
              "citeCount asc",
              "dateArgued desc",
              "dateArgued asc"
            ],
            "type": "string",
            "description": "How to order the results. Relevance only means anything when a search query is set.",
            "default": "dateFiled desc"
          },
          "caseName": {
            "title": "Case name",
            "type": "string",
            "description": "Match words in the case caption, for example \"smith\" or \"united states\"."
          },
          "docketNumber": {
            "title": "Docket number",
            "type": "string",
            "description": "Exact docket number, for example 25-50319 or 1:20-cv-03590."
          },
          "citation": {
            "title": "Citation (opinions only)",
            "type": "string",
            "description": "Look up a reported citation, for example \"410 U.S. 113\". Ignored for the other search types."
          },
          "judge": {
            "title": "Judge name",
            "type": "string",
            "description": "Judge or panel member surname. Applies to opinions and oral arguments."
          },
          "statuses": {
            "title": "Precedential status (opinions only)",
            "uniqueItems": true,
            "type": "array",
            "description": "Which precedential statuses to include. Leave empty for the API default, which is published opinions only.",
            "items": {
              "type": "string",
              "enum": [
                "Published",
                "Unpublished",
                "Errata",
                "Separate",
                "In-chambers",
                "Relating-to",
                "Unknown"
              ],
              "enumTitles": [
                "Published",
                "Unpublished",
                "Errata",
                "Separate opinion",
                "In chambers",
                "Relating to",
                "Unknown"
              ]
            }
          },
          "citedGt": {
            "title": "Cited more than (opinions only)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only opinions cited more than this many times. Use it to pull the leading cases on a topic."
          },
          "citedLt": {
            "title": "Cited fewer than (opinions only)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only opinions cited fewer than this many times."
          },
          "partyName": {
            "title": "Party name (RECAP only)",
            "type": "string",
            "description": "Name of a party to the case, for example Google. Applies to the RECAP docket and document searches."
          },
          "natureOfSuit": {
            "title": "Nature of suit code (RECAP only)",
            "type": "string",
            "description": "PACER nature-of-suit code, for example 110 for insurance or 830 for patent."
          },
          "entryDescription": {
            "title": "Docket entry text (RECAP only)",
            "type": "string",
            "description": "Match words in the docket entry description, for example motion or complaint."
          },
          "documentNumber": {
            "title": "Document number (RECAP only)",
            "type": "string",
            "description": "Filter to a specific document number within the docket."
          },
          "availableOnly": {
            "title": "Only documents available for free (RECAP only)",
            "type": "boolean",
            "description": "Keep only filings whose PDF is already in the free RECAP archive rather than paywalled behind PACER.",
            "default": false
          },
          "school": {
            "title": "Law school (judges only)",
            "type": "string",
            "description": "Filter judges by the school they attended, for example harvard."
          },
          "appointer": {
            "title": "Appointed by (judges only)",
            "type": "string",
            "description": "Filter judges by the president who appointed them, for example Obama."
          },
          "politicalAffiliation": {
            "title": "Political affiliation (judges only)",
            "type": "string",
            "description": "Filter judges by party code: d for Democratic, r for Republican, i for Independent."
          },
          "apiToken": {
            "title": "CourtListener API token (optional)",
            "type": "string",
            "description": "A free CourtListener token lifts the 5 requests/minute anonymous throttle and makes long runs much faster. Leave empty to run anonymously through rotating proxies."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "CourtListener throttles anonymous callers per IP, so a rotating proxy is what keeps the run fast. Not used when an API token is supplied.",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "How many rows to return. Free-plan runs return up to 10 rows as a preview; paid plans get the full amount.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}