CourtListener Opinion Search v2
Pricing
$10.00 / 1,000 result delivereds
CourtListener Opinion Search v2
CourtListener v4 opinions for “patent infringement”. v1 Try is antitrust. Not a docket dump. $0.01.
CourtListener Opinion Search v2
Pricing
$10.00 / 1,000 result delivereds
CourtListener v4 opinions for “patent infringement”. v1 Try is antitrust. Not a docket dump. $0.01.
You can access the CourtListener Opinion Search v2 programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "5fb4aZAB6daaqyEnY" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/zentrafoundry~courtlistener-litigation-intelligence-v2/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-zentrafoundry-courtlistener-litigation-intelligence-v2", "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/zentrafoundry~courtlistener-litigation-intelligence-v2/runs": { "post": { "operationId": "runs-sync-zentrafoundry-courtlistener-litigation-intelligence-v2", "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/zentrafoundry~courtlistener-litigation-intelligence-v2/run-sync": { "post": { "operationId": "run-sync-zentrafoundry-courtlistener-litigation-intelligence-v2", "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", "required": [ "sourceMode" ], "properties": { "buyerQuery": { "title": "Case-law search query", "type": "string", "description": "CourtListener search terms. Existing tasks may continue using this optional field.", "default": "copyright" }, "searchKeywords": { "title": "Saved-task search keywords", "type": "array", "description": "Optional existing task keywords; the first non-empty entry is used when Case-law search query is blank.", "items": { "type": "string" } }, "taskIntent": { "title": "Task intent", "type": "string", "description": "Optional saved-task label retained for compatibility." }, "sourceMode": { "title": "Source mode", "enum": [ "live", "sample", "startUrls" ], "type": "string", "description": "Live queries CourtListener's official REST v4 opinion search. Sample and Start URLs remain available for compatible saved tasks.", "default": "startUrls" }, "outputMode": { "title": "Output mode", "enum": [ "preview-records", "sample-records", "buyer-ready-records" ], "type": "string", "description": "Preview records are non-billable current CourtListener results. Buyer-ready records retain the existing result-delivered price event.", "default": "buyer-ready-records" }, "startUrls": { "title": "CourtListener REST v4 search URL", "type": "array", "description": "Optional https://www.courtlistener.com/api/rest/v4/search/ URL. Only type=o opinion searches are accepted.", "items": { "type": "object", "required": [ "url" ], "properties": { "url": { "title": "URL", "type": "string", "description": "CourtListener REST v4 search URL." } } }, "default": [ { "url": "https://www.courtlistener.com/api/rest/v4/search/" } ] }, "maxItems": { "title": "Maximum opinions", "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum CourtListener opinion records to write.", "default": 10 }, "perSourceLimit": { "title": "Maximum results per search", "minimum": 1, "maximum": 100, "type": "integer", "description": "Bounded CourtListener results requested from one search.", "default": 1 }, "maxTotalChargeUsd": { "title": "Maximum total charge (USD)", "minimum": 0.01, "maximum": 1000, "type": "number", "description": "Run-level Apify charge ceiling; the platform remains authoritative.", "default": 5 }, "overallTimeoutSecs": { "title": "Overall timeout seconds", "minimum": 30, "maximum": 300, "type": "integer", "description": "Bounded live-search deadline.", "default": 300 }, "requestTimeoutSecs": { "title": "Search request timeout seconds", "minimum": 5, "maximum": 60, "type": "integer", "description": "Timeout for the CourtListener search request.", "default": 20 }, "maxRequestRetries": { "title": "Maximum source retries", "minimum": 0, "maximum": 3, "type": "integer", "description": "Compatibility field retained for existing tasks; no automatic request replay is performed.", "default": 1 }, "sinceLastRun": { "title": "Only emit new opinions", "type": "boolean", "description": "Use stored delivery keys to skip records emitted by earlier runs.", "default": false }, "deltaMode": { "title": "Delta mode", "type": "boolean", "description": "Persist dedupe keys only for an explicitly configured recurring CourtListener search. Store-default QA keeps this disabled so each exact default run can return its current preview.", "default": 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 }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for CourtListener Opinion Search v2 from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: