---
name: 1stauthor-us_law
description: The 1stAuthor us_law domain.
---

# 1stAuthor US Law

4,978,029 clause-level US legal provisions across 53 jurisdictions: 2.12M statutes, 1.95M regulations (including CFR annual editions), 425k session laws, 258k agency decisions, 77k proposed regulations, 77k guidance documents, 53k court rules, 13k constitutional provisions. English and Chinese summaries, norm types, regulated parties, subjects, defined terms, penalties, deadlines and cross-references are extracted per provision (citations and figures checked against the text).

Base URL `https://api.1stauthor.com`. Every call takes `Authorization: Bearer $FA_API_KEY`; the free samples named below work without a key. Free sample id: `uslaw:CFRANN_2024_T42_P2_S2_33`, free sample query: `HIPAA patient records disclosure`.

## Three verbs, every domain

```
POST /v1/{domain}/search  {query, filters?, top_k?}      → hits[].id + a card each
GET  /v1/{domain}/read/{id}?level=brief|detail|full      → read as deep as you need
POST /v1/{domain}/ask     {query, effort: low|medium|high} → an answer with real citations
```

`read` also takes `extra=<side>` for another side of the same document and `format=json|md|html`.
At `level=full`, `section=<name>` reads one section and `characters=N` the first N characters.

## Start here

- **Find provisions** — `POST /v1/us_law/search {"query": "disclosure of patient records without consent", "filters": {"jurisdiction": "federal", "status": "in_force"}}`
- **Read one provision** — `GET /v1/us_law/read/uslaw:CFRANN_2024_T42_P2_S2_33`
- **One state only** — `POST /v1/us_law/search {"query": "data breach notification", "filters": {"jurisdiction": ["ca", "ny"]}}`

## Search filters

| field | type | meaning |
|---|---|---|
| `jurisdiction` | keyword · eq any | Jurisdiction: federal or a two-letter state code (53 in all) |
| `is_federal` | bool · eq | Federal |
| `doc_group` | keyword · eq any | Document group |
| `kind` | keyword · eq any | Specific kind (see facets) |
| `status` | keyword · eq any | Status |
| `norm_types` | keyword · eq any | Norm type (closed set of 15, model-assigned) |
| `has_penalty` | bool · eq | Carries a penalty |

Rarely needed, but valid: `penalty_types`, `citation`, `subjects`, `defined_terms`, `regulated_parties`.

Filters combine with AND; `_or` / `_not` are available. Ranges are `{"gte": n}` / `{"lte": n}`, full text is `{"text": "…"}`.

## Read

| level | credits | returns |
|---|---|---|
| `brief` | 1 | Card: the fields needed to triage, same as in search hits |
| `detail` (default) | 2 | Every structured field (rule-derived plus model-generated; model fields are listed in _enrich.fields) |
| `full` | 5 | Full text (not available yet: the provision text lives on NAS (open_us_law); the index carries the summary plus an excerpt) |

## Ask

`POST /v1/us_law/ask {query, effort}` — Agentic Q&A over this domain: the model turns the question into filters plus keywords from the domain's own self-description, reads the hits and answers with [us_law:<law_id> <title>] citations; /stream is NDJSON with real token deltas. Costs 50 / 100 / 200 credits by effort. Append `/stream` for NDJSON; the first event is always `billing`.

`sources` is the retrieval set, not the citation list — filter it by the ids that appear in `answer`. `answer_truncated` means the answer is incomplete; say so.

## Also here



## Facets

`GET /v1/us_law/facets?field=<field>` lists the legal values for `jurisdiction`, `doc_group`, `kind`, `status`, `norm_types`, `penalty_types` — free, no key. Use it instead of guessing a spelling.

## Working rules

- **Search first, read second.** A search hit is a card; decide from the card which ids deserve a read.
- **Read in layers.** `detail` answers most questions; go to `full` only when the answer is not in it.
- **Filters are declared.** An undeclared filter field is a 400, never a silent no-op. `GET /v1/{domain}` lists what exists.
- **Cite what you read.** Use the citation format below, and say plainly when the corpus has nothing.
- **Failures are not charged.** A 404 costs nothing; an upstream error is refunded. Quote `meta.request_id` when reporting one.

Citation format: `[42 C.F.R. § 2.33]`.

## What this corpus will and will not tell you

- Licence: CC BY 4.0 (open_us_law) — attribution required when displaying or redistributing.
- One document = one section / provision, not a whole act. The `excerpt` in level=detail is a snippet, not the full text.
- 928k provisions are status=superseded (mostly historical CFR annual editions) — filter status=in_force before citing.
- Summaries, norm types and subjects are model-generated; citations and figures were checked against the text, but cite the source for anything formal.
- `subjects` is an open label set (39k values): good to read, poor to filter on.
- The index holds no full text: level=full is not available yet (the provision text lives on NAS (open_us_law); the index carries the summary plus an excerpt).

---

Generated from https://api.1stauthor.com/v1/us_law on 2026-10-14. Full reference: https://1stauthor.com/docs/us_law/