---
name: 1stauthor-law
description: Search and read statutes through the 1stAuthor API — article-level retrieval across jurisdictions, with translations and extracted elements. Use for questions about what a law says, and to reach the judgments that cite an article.
---

# 1stAuthor Law · Statutes

33,103 statutes / 1,539,593 articles from 26 jurisdictions; article-level hybrid retrieval, Chinese translations and per-article extraction (heading, subjects, conditions, consequences, references).

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: `刑法`, free sample query: `诈骗罪 量刑`.

## 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 statute articles** — `POST /v1/law/search {"query": "刑法第266条"}`
- **Read one article** — `GET /v1/law/read/<检索结果的 id>`
- **Read a statute** — `GET /v1/law/read/刑法`
- **Ask across statutes and judgments** — `POST /v1/law/ask {"query": "网络刷单诈骗未遂一般怎么判", "effort": "low"}`

## Search filters

| field | type | meaning |
|---|---|---|
| `jurisdiction` | keyword · eq any | ISO3 jurisdiction, e.g. CHN / JPN / GBR / USA / DEU / KOR; several allowed |
| `law_id` | keyword · eq | Restrict to one statute: doc_id or Chinese title / short title |
| `status` | keyword · eq any | in_force / repealed / not_yet / unknown |

Rarely needed, but valid: `scope`, `granularity`, `law_type`, `domain`, `norm_type`, `effective_at`.

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

## Read

| level | credits | returns |
|---|---|---|
| `brief` | 1 | One statute's card: trilingual title, issuer, type, level, status, dates, one-liner, domains, article count |
| `detail` (default) | 2 | brief + summary, chapter tree (one line per chapter), key provisions, defined terms, obligations / penalties, typical questions, routing hints (~1–3k tok) |
| `full` | 5 | Full text, paged by article (offset / limit; see truncated / next_offset) |

| extra | credits | returns |
|---|---|---|
| `cases` | 2 | Article → judgments citing it: citation count + list (ranked by `query` if given, else newest first) |

A search hit id (`law_id~n`) reads back the same way; its levels narrow to that one article: `brief` One article's card (as in search hits): statute, number, heading, summary, status, `detail` One article: original + zh/en translation + extraction (heading, subjects, conditions, consequences, key figures) + references resolved to article_keys, `full` One article plus `window` neighbours on each side and its chapter.

## Ask

`POST /v1/law/ask {query, effort}` — Joint agentic Q&A over statutes and judgments: finds the governing articles, reads them, then checks how comparable judgments ruled; answers cite [statute art. N] / [case number], with sources.laws / sources.cases / coverage. 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/law/facets?field=<field>` lists the legal values for `jurisdiction`, `law_type`, `status`, `domain`, `norm_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: `[中华人民共和国刑法 第266条]`.

## What this corpus will and will not tell you

- law_id accepts a doc_id (jpn:law:労働基準法) or a Chinese title / short title (刑法, 劳动合同法).
- A query like '刑法第266条' (statute + article number) resolves exactly first.
- scope=national by default: local regulations copy national text and are the main source of noise.
- Translations and extractions are model-generated; cite text.src. needs_review=true marks translations of unusual length.
- knowledge_fill in level=brief / detail is model-recalled metadata, not a source.

---

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