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

# 1stAuthor Federal Register

1.0M Federal Register documents (1994– ): rules, proposed rules, notices and presidential documents. Action kind (closed set of 19), issuing agencies, affected parties, effective and comment-close dates and one-line summaries are model-extracted. No vectors: structured filters plus bilingual full-text search in Postgres.

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: `fr:2024-07332`, free sample query: `PFAS drinking water`.

## 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

- **Rules from one agency** — `POST /v1/fr/search {"query": "PFAS drinking water", "filters": {"doc_type": "Rule"}}`
- **Proposed rules still open for comment** — `POST /v1/fr/search {"query": "出口管制 半导体", "filters": {"doc_type": "Proposed Rule", "comments_close_on": {"gte": "2026-10-09"}}}`
- **Read one** — `GET /v1/fr/read/fr:2024-07332`

## Search filters

| field | type | meaning |
|---|---|---|
| `action_kind` | keyword · eq any | Action kind (closed set of 19, model-assigned) |
| `agencies` | keyword · eq any | Issuing agencies (several allowed, any match) |
| `doc_type` | keyword · eq any | Document type (official capitalisation: Rule / Proposed Rule / Notice / Presidential Document …) |
| `pub_date` | datetime · range | Publication date range |

Rarely needed, but valid: `cfr_refs`, `comments_close_on`, `docket_ids`, `document_number`, `effective_on`, `fr_topics`, `rins`, `significant`.

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: action_kind, agencies, citation, doc_id, doc_type, html_url, one_liner, one_liner_zh… |
| `detail` (default) | 2 | Every structured field (card plus the source abstract and detail fields) |

## Ask

`POST /v1/fr/ask {query, effort}` — Agentic Q&A over this domain: with no vector layer, the model turns the question into structured filters plus bilingual full-text search, reads the hits and answers with [fr:<doc_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/fr/facets?field=<field>` lists the legal values for `action_kind`, `doc_type` — 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: `[89 FR 12345]`.

## What this corpus will and will not tell you

- Division of labour with us_law: us_law holds the provisions in force (clause-level CFR / USC); fr holds the notices themselves (who changed what, when).
- doc_type uses the official capitalisation (Rule / Proposed Rule / Notice / Presidential Document / Uncategorized Document / Correction / Sunshine Act Document); lowercase 'rule' matches nothing.
- Rules open for comment: filters.comments_close_on={"gte": "<today>"}; upcoming effect: a range on effective_on.
- subjects is an open model-generated label set and is not filterable before normalisation — filter on fr_topics (the official topics) instead.
- No vectors: the query runs as an English tsvector and a Chinese zhparser pass whose results are unioned; mixed queries are split automatically, and quoted phrases / OR / -exclusion work.
- Model-written fields (summarise, do not quote): action_kind, affected, key_point, one_liner, one_liner_zh, subjects.
- The field table and enumerations are generated from the store's own self-description (search.field), not hand-written; enumeration counts are as of 2026-10-13.

---

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