{
  "openapi": "3.0.1",
  "info": {
    "title": "US Court Records & Legal Opinions",
    "description": "Search US court records and legal opinions via CourtListener. Find opinions by keyword, case name, judge, date range, or court. Search dockets by party or case number. Get full opinion text and citations.",
    "version": "1.0",
    "x-build-id": "fggIxgGqQL6KKevsG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lulzasaur~court-records-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lulzasaur-court-records-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/lulzasaur~court-records-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lulzasaur-court-records-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/lulzasaur~court-records-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lulzasaur-court-records-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": {
          "mode": {
            "title": "Search Mode",
            "enum": [
              "opinions",
              "dockets",
              "details"
            ],
            "type": "string",
            "description": "What to search for: opinions (case law), dockets (case filings), or details (full text for a specific case).",
            "default": "opinions"
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Keywords to search for (e.g. 'first amendment', 'patent infringement', 'Roe v Wade'). Supports boolean operators: AND, OR, NOT, phrases in quotes, wildcards with *.",
            "default": ""
          },
          "caseId": {
            "title": "Case / Cluster ID",
            "type": "string",
            "description": "For 'details' mode: the CourtListener cluster ID or docket ID to retrieve. Find IDs from opinion/docket search results.",
            "default": ""
          },
          "court": {
            "title": "Court",
            "type": "string",
            "description": "Filter by court abbreviation (e.g. 'scotus' for Supreme Court, 'ca1' for 1st Circuit, 'ca9' for 9th Circuit, 'nyed' for Eastern District of NY). Leave empty for all courts.",
            "default": ""
          },
          "judge": {
            "title": "Judge Name",
            "type": "string",
            "description": "Filter by judge or panel member name (e.g. 'Sotomayor', 'Roberts').",
            "default": ""
          },
          "caseName": {
            "title": "Case Name",
            "type": "string",
            "description": "Filter by case name (e.g. 'Google', 'Apple v Samsung').",
            "default": ""
          },
          "party": {
            "title": "Party Name (Dockets)",
            "type": "string",
            "description": "For docket search: filter by party name (plaintiff or defendant).",
            "default": ""
          },
          "docketNumber": {
            "title": "Docket Number",
            "type": "string",
            "description": "Filter by docket/case number (e.g. '23-1234', '2:24-cv-00123').",
            "default": ""
          },
          "dateFrom": {
            "title": "Date From",
            "type": "string",
            "description": "Start date for filing date range filter (YYYY-MM-DD format, e.g. '2020-01-01').",
            "default": ""
          },
          "dateTo": {
            "title": "Date To",
            "type": "string",
            "description": "End date for filing date range filter (YYYY-MM-DD format, e.g. '2024-12-31').",
            "default": ""
          },
          "status": {
            "title": "Precedential Status",
            "enum": [
              "",
              "precedential",
              "non-precedential",
              "errata",
              "separate",
              "in-chambers",
              "relating-to"
            ],
            "type": "string",
            "description": "Filter opinions by precedential status.",
            "default": ""
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of results to return.",
            "default": 50
          },
          "includeFullText": {
            "title": "Include Full Opinion Text",
            "type": "boolean",
            "description": "When enabled, fetches full opinion text for each result (slower but more complete). Always enabled for 'details' mode.",
            "default": false
          },
          "apiToken": {
            "title": "CourtListener API Token",
            "type": "string",
            "description": "CourtListener API token for authenticated access (5000 req/hr). Get one free at courtlistener.com/sign-in/. Without a token, requests may be rate-limited."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy to use for requests."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}