# US Federal Law & Regulation Search (`lentic_clockss/us-federal-law-search`) Actor

Search 4 federal legal databases — eCFR titles, Federal Register documents, GovInfo legal collections, and Federal Court Opinions (CourtListener) — via the SIP Public Data Gateway.

- **URL**: https://apify.com/lentic\_clockss/us-federal-law-search.md
- **Developed by:** [kane liu](https://apify.com/lentic_clockss) (community)
- **Categories:** Lead generation, Business
- **Stats:** 1 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## US Federal Law & Regulation Search

Search US federal laws, regulations, and legal documents from official government sources — all in one Actor. This federal regulation search tool provides instant access to the Code of Federal Regulations (CFR lookup), Federal Register search results, and GovInfo legal collections through a single, unified API.

Whether you need to look up specific CFR titles, search Federal Register documents for proposed rules and final regulations, or browse GovInfo bulk legal collections, this Actor handles it all with parallel queries and structured output.

### Data Sources

This Actor queries **3 official US federal legal databases** through the SIP Public Data Gateway:

| Source | Product ID | Coverage | Data Type |
|--------|-----------|----------|-----------|
| **eCFR** | `us_ecfr_titles` | All 50 CFR titles | Code of Federal Regulations — current regulatory text organized by title, chapter, and part |
| **Federal Register** | `us_federalregister_documents_search` | Daily publications | Proposed rules, final rules, notices, presidential documents, and executive orders |
| **GovInfo** | `us_govinfo_bulk_collections` | Comprehensive legal collections | Congressional bills, statutes, CFR annual editions, Federal Register volumes, and more |

### Features

- **Multi-source search** — Query all 3 federal legal databases with a single keyword
- **CFR lookup** — Search the Electronic Code of Federal Regulations by topic, keyword, or citation
- **Federal Register search** — Find proposed rules, final rules, notices, and presidential documents
- **GovInfo collections** — Access bulk legal data from the Government Publishing Office
- **Fast** — HTTP-only, no browser overhead. Results in seconds via parallel requests
- **Flexible** — Search all sources or pick specific ones
- **Structured output** — Consistent metadata fields across all sources with source attribution

### Output Fields

Each record in the dataset includes the original fields from the source API plus these metadata fields added by the Actor:

| Field | Type | Description |
|-------|------|-------------|
| `title` | string | Document or regulation title |
| `description` | string | Summary or abstract of the document |
| `document_number` | string | Official document identifier |
| `publication_date` | string | Date of publication |
| `cfr_references` | array | Related CFR citations (Federal Register) |
| `type` | string | Document type (rule, notice, proposed rule, etc.) |
| `source_url` | string | Link to the original document |
| `_source` | string | Which database this record came from (eCFR, Federal Register, or GovInfo) |
| `_product_id` | string | SIP product identifier used for the query |
| `_search_term` | string | The keyword used in the search |
| `_collected_at` | string | ISO 8601 timestamp of when the data was collected |

Note: Available fields vary by source. eCFR records include title/part/chapter structure, Federal Register records include document type and CFR references, and GovInfo records include collection and package metadata.

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `keyword` | string | *required* | Search term (e.g. "environmental protection", "data privacy", "workplace safety", "clean air act") |
| `sources` | array | all 3 | Which legal databases to search: `ecfr`, `federal_register`, `govinfo` |
| `maxResults` | integer | 50 | Max results per source (up to 200) |

### Examples

#### Example 1: Search all sources for environmental regulations
```json
{
  "keyword": "environmental protection",
  "maxResults": 100
}
````

This searches all three databases for regulations, rules, and legal documents related to environmental protection. Returns up to 100 results from each source.

#### Example 2: Federal Register only — find recent rulemaking

```json
{
  "keyword": "artificial intelligence",
  "sources": ["federal_register"],
  "maxResults": 50
}
```

Searches only the Federal Register for proposed rules, final rules, and notices mentioning artificial intelligence. Useful for tracking new regulatory activity on a specific topic.

#### Example 3: CFR lookup for a specific regulation area

```json
{
  "keyword": "clean water act",
  "sources": ["ecfr", "govinfo"],
  "maxResults": 200
}
```

Searches the eCFR and GovInfo for all regulatory text and legal documents related to the Clean Water Act. Combines current regulatory text with historical legislative documents.

### Use Cases

#### Lawyers & Legal Researchers

Search across multiple federal legal databases simultaneously instead of visiting each site individually. Find relevant CFR sections, pending rulemakings, and supporting legislative history in one query. Ideal for regulatory research, compliance opinions, and litigation support.

#### Compliance Officers

Monitor regulatory changes in your industry by searching the Federal Register for new proposed rules and final rules. Track how regulations evolve from proposal to final rule across the eCFR and Federal Register. Set up recurring searches to stay ahead of regulatory changes affecting your organization.

#### Academic Researchers & Policy Analysts

Analyze the federal regulatory landscape on any topic. Quantify regulatory activity by counting Federal Register documents, map the CFR titles that govern a specific area, and access bulk legal collections from GovInfo for large-scale text analysis and policy research.

#### Journalists & Investigators

Quickly find federal regulations and rulemaking activity on any topic. Search for executive orders, presidential documents, and agency notices in the Federal Register. Cross-reference with eCFR to see the current state of regulations.

#### Government Affairs & Lobbyists

Track regulatory activity relevant to your clients or industry. Monitor proposed rules in the Federal Register before they become final. Identify which CFR titles and parts are being amended and understand the regulatory trajectory on key issues.

### Cost Estimate

This Actor uses the SIP Public Data Gateway. Each search query costs approximately **0.01 compute units** per source queried. A typical 3-source search costs ~0.03 CU (~$0.009). Running 100 searches per month across all sources would cost approximately $0.90 in compute units.

### Performance

| Scenario | Sources | Speed |
|----------|---------|-------|
| Single source | 1 | ~1-3 seconds |
| All sources | 3 | ~2-4 seconds (parallel) |

All three sources are queried in parallel using `asyncio.gather`, so searching all sources takes roughly the same time as searching the slowest individual source.

### Legal

This Actor queries publicly available US federal legal data from official government open data portals. The Electronic Code of Federal Regulations, Federal Register, and GovInfo are all published by the US Government Publishing Office and are in the public domain. No login or authentication to government systems is required — data is accessed through the SIP Public Data Gateway's official public APIs.

### Related Actors

- [US Government Contracts Search](https://apify.com/lentic_clockss/us-government-contracts-search) — Search federal and state/local procurement opportunities and contract awards
- [US Business Entity Search](https://apify.com/lentic_clockss/us-business-entity-search) — Search business registrations across 10+ US states
- [US Healthcare Provider & Drug Search](https://apify.com/lentic_clockss/us-healthcare-search) — Search NPI providers, FDA recalls, clinical trials, and more

# Actor input Schema

## `keyword` (type: `string`):

What to search for in federal laws and regulations (e.g. 'environmental protection', 'data privacy', 'workplace safety')

## `sources` (type: `array`):

Which legal databases to search. Default: all sources.

## `maxResults` (type: `integer`):

Maximum records to return from each data source (up to 200).

## Actor input object example

```json
{
  "keyword": "environmental protection",
  "sources": [
    "ecfr",
    "federal_register",
    "govinfo",
    "courtlistener"
  ],
  "maxResults": 50
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "environmental protection"
};

// Run the Actor and wait for it to finish
const run = await client.actor("lentic_clockss/us-federal-law-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keyword": "environmental protection" }

# Run the Actor and wait for it to finish
run = client.actor("lentic_clockss/us-federal-law-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "environmental protection"
}' |
apify call lentic_clockss/us-federal-law-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lentic_clockss/us-federal-law-search",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Federal Law & Regulation Search",
        "description": "Search 4 federal legal databases — eCFR titles, Federal Register documents, GovInfo legal collections, and Federal Court Opinions (CourtListener) — via the SIP Public Data Gateway.",
        "version": "0.1",
        "x-build-id": "LcGGx8zfWLXYrNdm1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lentic_clockss~us-federal-law-search/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lentic_clockss-us-federal-law-search",
                "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/lentic_clockss~us-federal-law-search/runs": {
            "post": {
                "operationId": "runs-sync-lentic_clockss-us-federal-law-search",
                "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/lentic_clockss~us-federal-law-search/run-sync": {
            "post": {
                "operationId": "run-sync-lentic_clockss-us-federal-law-search",
                "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": [
                    "keyword"
                ],
                "properties": {
                    "keyword": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "What to search for in federal laws and regulations (e.g. 'environmental protection', 'data privacy', 'workplace safety')"
                    },
                    "sources": {
                        "title": "Data sources",
                        "type": "array",
                        "description": "Which legal databases to search. Default: all sources.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ecfr",
                                "federal_register",
                                "govinfo",
                                "courtlistener"
                            ],
                            "enumTitles": [
                                "eCFR (Code of Federal Regulations)",
                                "Federal Register (Documents & Rules)",
                                "GovInfo (Legal Collections)",
                                "Federal Court Opinions (CourtListener)"
                            ]
                        },
                        "default": [
                            "ecfr",
                            "federal_register",
                            "govinfo",
                            "courtlistener"
                        ]
                    },
                    "maxResults": {
                        "title": "Max results per source",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum records to return from each data source (up to 200).",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
