{
  "openapi": "3.0.1",
  "info": {
    "title": "US Federal Court Cases Scraper",
    "description": "Search US federal court dockets and get one row per case: caption, court, docket number, filing date, nature of suit, cause, assigned judge, parties, counsel and a link to the docket. The case index, not the filings. No PACER account, no API key, no browser.",
    "version": "0.1",
    "x-build-id": "mlM6Tg29nAdBaNW6c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~courtlistener-cases-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-courtlistener-cases-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/dami_studio~courtlistener-cases-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-courtlistener-cases-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/dami_studio~courtlistener-cases-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-courtlistener-cases-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": {
          "searchTerms": {
            "title": "Search terms",
            "minItems": 0,
            "maxItems": 10,
            "type": "array",
            "description": "Full-text search across the docket record - the caption, the cause, the parties and the filing descriptions. Each term runs as its own search and the row budget is split between them. Quote a phrase to keep it together, like \"artificial intelligence\". Up to 10 terms per run. Leave it empty if you would rather select purely with the filters below.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum cases",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Total rows across all search terms. Hard ceiling 2,000. Results arrive 20 at a time and CourtListener rate-limits anonymous callers, so budget roughly a minute per 100 cases - a 1,000-case run takes about ten minutes of wall clock. Keep it low while you are testing; you pay per case."
          },
          "courts": {
            "title": "Courts",
            "minItems": 0,
            "maxItems": 30,
            "type": "array",
            "description": "CourtListener court ids, lower case. `cand` is the Northern District of California, `nysd` the Southern District of New York, `mad` the District of Massachusetts, `txwd` the Western District of Texas, `ca9` the Ninth Circuit. Give several and a case in any one of them is kept. A court id the search does not recognise is silently ignored rather than reported, so every row is checked against this list before you are charged for it.",
            "items": {
              "type": "string"
            }
          },
          "filedAfter": {
            "title": "Filed on or after",
            "type": "string",
            "description": "ISO date, for example 2026-01-01. Filters on the date the case was filed with the court, not the date CourtListener picked it up."
          },
          "filedBefore": {
            "title": "Filed on or before",
            "type": "string",
            "description": "ISO date, for example 2026-09-30. Pair it with the field above for a window."
          },
          "natureOfSuit": {
            "title": "Nature of suit codes",
            "minItems": 0,
            "maxItems": 20,
            "type": "array",
            "description": "The civil cover sheet code the clerk assigned. 820 is copyright, 830 patent, 840 trademark, 890 other statutory actions, 442 employment civil rights, 710 fair labor standards. Give the bare number; `820 Copyright` works too and the code is taken off the front.",
            "items": {
              "type": "string"
            }
          },
          "cause": {
            "title": "Cause of action",
            "type": "string",
            "description": "The statute the case is brought under, as the docket spells it: `copyright`, `securities`, `15:1125` for Lanham Act false designation, `42:1983` for civil rights. A substring is enough."
          },
          "caseName": {
            "title": "Case name contains",
            "type": "string",
            "description": "Words that must appear in the case caption. Narrower than a search term, because a search term also matches the body of the docket."
          },
          "docketNumbers": {
            "title": "Docket numbers",
            "minItems": 0,
            "maxItems": 10,
            "type": "array",
            "description": "Exact docket numbers as the court writes them, for example 1:24-cv-11611. The same number is reused by different courts every year, so pair it with a court id unless you want every court's version.",
            "items": {
              "type": "string"
            }
          },
          "partyName": {
            "title": "Party name",
            "type": "string",
            "description": "An organisation or person named as a party. Company names work well; common personal names return a lot of unrelated cases, because a docket index has no way to tell two people with the same name apart."
          },
          "judgeName": {
            "title": "Judge",
            "type": "string",
            "description": "Surname of the judge the case is assigned to, for example Chhabria. Matches the assigned judge only; a magistrate the case was merely referred to is returned in its own column but is not searched on."
          },
          "attorneyName": {
            "title": "Attorney name",
            "type": "string",
            "description": "An attorney of record. Only cases whose docket lists counsel will match, which is most civil cases and few criminal ones."
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest",
              "relevance"
            ],
            "type": "string",
            "description": "`newest` and `oldest` sort by filing date. `relevance` orders by how well the case matches your search terms and only makes sense when you have supplied some."
          },
          "proxyUrls": {
            "title": "Your own proxy servers (optional)",
            "minItems": 0,
            "maxItems": 50,
            "type": "array",
            "description": "Leave this empty for a normal run. Fill it in only if you want the traffic to leave through proxy servers you already pay for, one URL per line, in the form http://user:pass@host:port.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}