# Draft it with an API. Send it over an attorney’s signature.

> Demand letters · letters.legal

Your agent drafts the demand letter today — one POST, gate: none, metered like compute. The signature that makes a recipient’s counsel take it seriously is the one thing software can’t supply, so the send is a reserved act: a typed hand-off to an independent attorney barred in the Client’s state.

*Preview build — the draft is live; the signed send is described, not sold.*

- **Get your API key:** https://api.lawyer/#get-key
- **The whole letter catalog:** https://letters.legal/

`POST /demand-letter/draft · gate: none · meters like compute · built on api.lawyer`

## One letter, two acts — and only one of them is software

Drafting a demand letter is judgment-free assembly against the facts your agent already holds: the invoice history, the amounts, the cure period, the FDCPA validation-notice language. That is open work — agent-native, no credential required — so it meters like any other compute call.

Sending that letter as counsel is a different act entirely. A demand letter over an attorney’s letterhead has force precisely because a licensed human read it, judged it, and put their name on it under their own bar admission. An agent does not hold that license, so the send is reserved — it routes to an independent attorney barred in the Client’s state, and nothing commits past that attorney’s refusal.

The gate column tells your code the law before you call. The draft row says gate: none. The send row says requiresSigner: state-bar. Same design, stated in the response type.

## Two rows of the typed catalog

Both live on api.lawyer. One is callable today. The other returns a typed shape that waits for a credential — described here so you can build against it now.

### Draft the letter — Live today

| field | value |
| --- | --- |
| method | `POST` |
| path | `/demand-letter/draft` |
| tier | services — effect record |
| gate | `gate: none` |
| returns | The drafted letter — itemized invoice history, a cure period, and FDCPA validation-notice language — recorded for attorney review. |

Agent-native. No credential, no signer, no waiting. It meters like compute.

### Send it as counsel — Reserved act · described, not sold

| field | value |
| --- | --- |
| method | `POST` |
| path | `/demand-letter/send` |
| tier | commerce — effect act |
| gate | `requiresSigner: state-bar (Client’s state)` |
| returns | A typed PENDING_SIGNER while an independent attorney barred in the Client’s state reviews and, in their own judgment, signs and sends under their own license — then the attested letter and delivery record on the outcome.sent webhook. |

Not open for sale: the State-Rail signature awaits a 50-state Rule 5.4 survey. Your call won’t die at the boundary — it will wait, typed.

## The shape the reserved act returns

When the send row ships, a call that lands on the reserved act resolves to this — never silence, never a fake success. Branch on the status and you are already correct.

```json
{
  "status": "PENDING_SIGNER",
  "effect": "act",
  "gate": { "requiresSigner": "state-bar:TX" },
  "signer": { "routed": true, "liveness": "FRESH" },
  "eta": "PT4H"
}
```

The credential is verified fresh at the call; a suspended admission returns a typed BLOCKED, never silence. The Legal Fee is flat, posted before you call, and is entirely the attorney’s own.

## How the reserved send resolves when it ships

No date, and nothing to sign up for. This is the shape the State-Rail send takes the day the Rule 5.4 survey clears — described now so nothing about it surprises your code later.

1. **You call the send row** POST /demand-letter/send with the drafted letter and the Client’s state. The response is a typed PENDING_SIGNER — routed, not pending in the dark.
2. **An independent attorney is routed** The reserved act lands on an attorney barred in the Client’s state, their bar admission verified fresh at the call. A recipient in another state attaches the Rule 5.5(c) temporary-practice flag — a flag that routes oversight attention, never a block.
3. **They sign, or they refuse** The attorney reads the letter and, in their own independent judgment, signs and sends it under their own license — or declines. Their refusal is final against every process on the platform; nothing commits past it.
4. **You get the attested result** The attested letter and its delivery record arrive on the outcome.sent webhook. One flat Legal Fee, posted before you called, is entirely the attorney’s own — one fee-bearing act covering preparing and sending together.

## Draft one today. Build the send against a typed shape.

The draft row is callable now on api.lawyer. Get a key, POST the facts, and read the letter back — then branch on PENDING_SIGNER so your code is ready the day the signature ships.

- [Get your API key](https://api.lawyer/#get-key)
- [See the other letter types](https://letters.legal/)

## Machine-legible

This same page is served as markdown to any client whose Accept header does not explicitly ask for text/html — the same copy objects, spoken as markdown.

---

letters.legal is a preview build over api.lawyer. Live letter types expose a callable draft; every signed send is a reserved act described here, not offered for sale. Nothing on this page is a live-service claim, and nothing on it is legal advice.

demand.letters.legal — built on api.lawyer · [api.lawyer](https://api.lawyer) · [patent.click](https://patent.click) · [demandletters.legal](https://demandletters.legal/)
