{
  "openapi": "3.0.1",
  "info": {
    "title": "CourtListener Oral Arguments Scraper - Court Audio",
    "description": "Scrape US courtroom oral argument recordings from CourtListener by court, judge, date and case, with MP3 links and transcripts. Export to CSV, JSON, Excel or XML.",
    "version": "0.1",
    "x-build-id": "Q78tCVpieQuMGe7GJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~courtlistener-oral-arguments-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-courtlistener-oral-arguments-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-oral-arguments-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-courtlistener-oral-arguments-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-oral-arguments-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-courtlistener-oral-arguments-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": {
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Full-text query across the case caption and the machine transcript of the recording, so a phrase a judge said is searchable. Supports quoted phrases and AND/OR/NOT. Leave empty to browse with the filters alone."
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000. Leave empty on a paid plan for 100 rows."
          },
          "courts": {
            "title": "Courts",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to one or more courts. These 16 courts hold every one of the 103,018 recordings in the archive (measured 2026-09-08). Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "scotus",
                "ca1",
                "ca2",
                "ca3",
                "ca4",
                "ca5",
                "ca6",
                "ca7",
                "ca8",
                "ca9",
                "ca10",
                "ca11",
                "cadc",
                "cafc",
                "ill",
                "illappct"
              ],
              "enumTitles": [
                "Supreme Court of the United States (1,030)",
                "First Circuit (2,921)",
                "Second Circuit (7,256)",
                "Third Circuit (4,379)",
                "Fourth Circuit (4,480)",
                "Fifth Circuit (4,900)",
                "Sixth Circuit (4,143)",
                "Seventh Circuit (6,104)",
                "Eighth Circuit (3,524)",
                "Ninth Circuit (33,830)",
                "Tenth Circuit (2,305)",
                "Eleventh Circuit (3,256)",
                "D.C. Circuit (2,691)",
                "Federal Circuit (9,055)",
                "Illinois Supreme Court (1,088)",
                "Illinois Appellate Court (11,990)"
              ]
            }
          },
          "arguedAfter": {
            "title": "Argued on or after",
            "type": "string",
            "description": "Earliest argument date, as MM/DD/YYYY or YYYY-MM-DD. The archive starts in 1969 and the bulk of it is 2005 onwards."
          },
          "arguedBefore": {
            "title": "Argued on or before",
            "type": "string",
            "description": "Latest argument date, as MM/DD/YYYY or YYYY-MM-DD."
          },
          "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 appellate docket number, for example 25-727 or 22-1008."
          },
          "judge": {
            "title": "Judge",
            "type": "string",
            "description": "Surname of a judge on the panel, for example thomas or kagan. CourtListener names the panel on about a quarter of the recordings, so this filter narrows to those."
          },
          "orderBy": {
            "title": "Sort order",
            "enum": [
              "dateArgued desc",
              "dateArgued asc",
              "score desc"
            ],
            "type": "string",
            "description": "How to order recordings. Relevance only means anything when a search query is set.",
            "default": "dateArgued desc"
          },
          "includeTranscript": {
            "title": "Include the full transcript",
            "type": "boolean",
            "description": "Add the complete machine transcript of every recording, often 30,000 characters or more, as the transcript and transcriptCharacters columns. Costs one extra request per recording, so runs are slower. Off by default, when each row still carries the opening of the transcript.",
            "default": false
          },
          "courtListenerKey": {
            "title": "CourtListener API key (optional)",
            "type": "string",
            "description": "A free CourtListener API key (Profile > API on courtlistener.com) lifts the anonymous throttle and makes long runs faster. Leave empty to run anonymously."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Off by default: the CourtListener API is open. Turn it on for long anonymous runs so each request gets a fresh exit IP and its own throttle allowance. Not used when an API key is supplied.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}