api.lawyer

Agents can’t practice law. They can call it.

The endpoint your agent hits the moment work turns legal — no SDK ceremony, no sales call, no law degree. Everything the law leaves open runs agent-native; the one act that needs a license is signed by an independent, verified professional.

standing terms
  1. No filing, no charge. Billing releases only on the government-issued receipt.
  2. Flat, posted pricing. Nothing hourly, nothing percentage-based; your spend ceiling is hard and you set it.
  3. Every reserved act is signed by an independent credential-holder, verified at call time, under their own license.
api.lawyer is infrastructure, not a law firm.
read · gate: none · no key required200 OK
$ curl api.lawyer/.well-known/agents.json

{
  "name": "api.lawyer",
  "interfaces": {
    "http": [{ "method": "GET", "url": "…/matters" }],
    "mcp": { "command": "npx api.lawyer mcp serve" }
  }
}
$400/hr

the meter your product can’t build against — any legal work, the law-firm way

UPL

the risk if your agent signs it anyway — a bar complaint, not a bug ticket

$0

what you pay when the act doesn’t complete — the meter releases only on the receipt

Incumbent figures are typical market rates for outside counsel.

The line is where the law draws it.

Every capability is classified by its effect and gated exactly where the law gates it. Access is a function of authority, never a sales tier.

dataeffect: read

Dockets, registers, statutes, file-wrappers, chain-of-title. Reading a fact is never reserved, no matter how much AI does it — so reads are keyless from your very first call.

gate: none
serviceseffect: record

Drafting, assembly, analysis, monitoring. Agent-native end to end — assembly stays on the right side of unauthorized-practice rules because it selects mechanically and never tells your user what’s right for their matter.

scoped grants
commerceeffect: act

Money moves or an instrument executes. Some acts are unreserved (a fee payment, a provisional filing). Some are reserved — and there, an independent credential-holder signs under their own license.

Mandate + requiresSigner

An independent credential-holder reviews and, in their own judgment, signs under their own license.

requiresAccess
A restricted upstream — PACER, FinCEN BOI, private PAIR — your caller may only consume with a live credential.
requiresSigner
A reserved act only a live credential-holder may perform. Both gates are checked fresh at call time against the authoritative registry.

Every kind of legal work, one typed catalog.

One substrate for every practice area. The gate column tells your code which acts need a licensed human, before you call.

data — readgate: none · keyless
GET/patent/search?q=prior-art & citation hitsgate: none
GET/patent/{number}/statusprosecution history / file-wrappergate: none
GET/trademark/{serial}/statusTSDR status + prosecution eventsgate: none
GET/entity/{state}/{id}/standingSoS good standing + registered agentgate: none
GET/lien/ucc/{state}/{filing}UCC-1 status & lapse windowgate: none
GET/court/{district}/{case}/docketfederal docket & filingsrequiresAccess: pacer
services — recordagent-native
POST/patent/draft-claimsadversarial §101/102/103/112 examiner panelgate: none
POST/trademark/oa-response-draftoffice-action response draftgate: none
POST/contract/reviewclause-by-clause risk reportgate: none
POST/demand-letter/draftdrafted for attorney reviewgate: none
POST/entity/de/formation-docscertificate + consents + bylaws assemblygate: none
POST/docket-watchdeadline ladder on any asset — patent, mark, entity, caserequiresAccess: patent-center-practitioner
commerce — actmoney moves · instrument executes
POST/entity/de/formfiles the certificate — open actgate: none
POST/patent/file-provisionalpro-se-fileablegate: none
POST/patent/file-utilitythe reserved actrequiresSigner: uspto-registration
POST/trademark/file-oa-responsereserved — attorney signsrequiresSigner: state-bar
POST/demand-letter/sendreserved — attorney signs & sendsrequiresSigner: state-bar
POST/contract/adviselegal advice — reserved at the utterancerequiresSigner: state-bar
sandbox — provision & playgate: none · keyless · live today
POST/workspacesanonymous sandbox workspace — the full practice contract on synthetic state, TTL-boundgate: none
POST/tenantsanonymous Tenant grain — Offers and routing mechanics, flat-priced by typegate: none
POST/firmsanonymous firm envelope grain — member-executed Enrollment grants, lattice-derived rostergate: none
GET/workspaces/{id}/fixturesmagic fixtures — named identities with promised, contract-tested outcomesgate: none
POST/workspaces/{id}/mattersmint and advance Matters; you play the Signer on the same gig-result doorgate: none
practice files & proof — live todaythe workbench families
GET/matters/{id}/journalthe append-only journal — Stage derives from itgate: none
GET/matters/{id}/attestationsevery Attestation on the record — a derived viewgate: none
POST/matters/{id}/terminalthe three exit terminals, each with its ratified predicategate: none
GET/assets/{id}the perpetual noun — status history, docket, lineagegate: none
POST/matters/{id}/documentsdocument metadata, content hash required — no blob doorgate: none
POST/conflicts/{id}/entriesConflicts Ledger — hashed at rest, append-forever, per-practitionertier: credential_verified
GET/catalogdata SKUs for sale — zero listed today, stated truthfullygate: none
GET/verifyrun our tests — the digest-pinned public-contract suitegate: none
GET/icp.jsonagent classes + the access-tier laddergate: none

The pattern holds across every practice area: reading facts is never reserved, drafting is agent-native (an inventor may even file pro se), and the reserved acts — a filing signature, a demand letter on attorney letterhead, legal advice itself — route to an independent credential-holder. Your agent runs 90–98% of the graph; a licensed human performs the irreducible rest.

Patent, trademark OA, contract review, demand letters, and DE formation run today; litigation, tax, and immigration clone the shape.
Browse the catalog746 capabilities

You never cross the line.

The acts your agent cannot perform are not a model-quality problem. They are reserved to licensed humans by definition. This API makes that boundary callable.

  1. 01Call the API.

    curl your first read keyless — dockets, registers, good standing, file-wrappers — then let your agent run the open workflow: drafting, review, assembly, docketing.

  2. 02Hit the reserved act — and keep going.

    The call returns a typed PENDING_SIGNER state instead of a dead end, while an independent, verified professional reviews and — in their own judgment — signs and files under their own license. Credentials are checked fresh at the call against the authoritative registry: suspended means BLOCKED, never degraded.

  3. 03Get the receipt.

    The signed artifact, a verifiable Attestation, and the government receipt come back on a webhook. Your product moves on. You were never the lawyer — and never needed to be.

the machine’s response202 ACCEPTED
// POST /patent/file-utility
{
  "status": "PENDING_SIGNER",
  "effect": "act",
  "gate": { "requiresSigner": "uspto-registration" },
  "signer": {
    "routed": true,
    "verification": {
      "mode": "registry:USPTO-OED",
      "liveness": "FRESH"
    }
  },
  "eta": "PT24H",
  "then": {
    "attestation": "att_…",
    "receipt": "USPTO e-filing acknowledgment",
    "webhook": "outcome.filed"
  }
}
the signed instrument
authorityPatentAttorney
credentialuspto-registration, verified against the USPTO OED register at call time
livenessFRESH · suspended means BLOCKED, never degraded
feeThe professional’s flat Legal Fee, fixed at post time, entirely their own
signature of registered practitionertheir license, their judgment
The USPTO e-filing acknowledgment returns on webhook outcome.filed. Billing releases on the receipt.
No filing, no chargeFlat, posted pricingA live credential at every reserved actIndependent judgment, structurally protected

The people who sign come through gigs.lawyer — independent attorneys and USPTO patent agents on the network, claiming work under their own license, with coverage in force on every act. Their flat Legal Fee is entirely their own, fixed when the work is posted. That independence is your regulatory safety, not our fine print.

Provision a sandbox. Play the whole contract. No one to ask.

The sandbox is a mode, not a separate address: the same routes, the same typed envelopes, the same Gate, over synthetic state your agent owns. Every payload is marked simulated, and nothing in it can file, charge, or bind anyone.

  1. 01Discover.

    GET /.well-known/agents.json returns the capability card: every door, the probe manifest, and the access-tier ladder.

  2. 02Provision — keyless.

    POST /workspaces answers 201 with an ephemeral, TTL-bound workspace on synthetic seed state. Playing the Tenant role instead? POST /tenants, same rules.

  3. 03Play the contract.

    The whole practice surface mounts under /workspaces/{id}. Reserved acts never leave the sandbox: a deterministic counterparty answers the Gig, and you play the Signer yourself.

  4. 04Script against known outcomes.

    GET /workspaces/{id}/fixtures lists the magic fixtures below: named identities with promised, contract-tested outcomes. Script against them, not seed state.

  5. 05Verify without asking anyone.

    GET /verify runs the digest-pinned public-contract suite against the live doors. A claim in this copy you cannot run yourself is a bug.

magic fixtures — deterministic, contract-testedhonored in every workspace
eligible Signersg_fixture_eligiblealways verifies eligible — a gig-result attestation under this identity always landssandbox only
lapsed Signersg_fixture_lapsedalways fails standing — gig-result answers 422 naming the eligibility refusal; the Gig stays pendingsandbox only
lapsed-coverage Signersg_fixture_lapsed_coveragealways fails coverage freshness — gig-result answers 422 naming the coverage refusal and its cure (re-verify the coverage in force); the Gig stays pendingsandbox only
conflict partyConflict Fixture Industriesalways produces a conflict hit — the Matter carries the 'conflict_hit' Signal from intakesandbox only
ack-due Asset[fixture:ack-due]the Deadline Ladder always sits inside the final week — GET /deadlines/{assetId} shows the daily-ack rung livesandbox only
notice-eve Asset[fixture:notice-eve]the Deadline Ladder always rests one day above the t-30 notice rung — the first POST /deadlines/{assetId}/tick fires the notice reminder onto the event tail (GET /events?feed=reminders, live at /events/stream), addressed to the Monitoring owner once one is namedsandbox only
declining ClientDeclan Declines (fixture)every reserved-act Gig is declined by the counterparty — the Matter lands in needs_client_direction (Declination Finality), reopened only by a journaled Client Directionsandbox only
fulfilling ClientFiona Fulfills (fixture)every reserved-act Gig is attested by the eligible fixture Signer — repeated POST /matters/{id}/advance walks clean to the fulfilled terminal, receipt on filesandbox only

Prefer to click through it? The guided walk runs the same calls from your browser: watch a Matter flow

Priced like infrastructure, not like a law firm.

Flat, posted fees on the work that ships. Reads are free, and a patent filing is one number, fixed before you call.

reads
$0keyless
Every read, free from your first call. No key, no signup.
provisional filing
$199flat
Drafted, stress-tested, and filed with the USPTO. Pro se or done-for-you.
utility filing
$799flat
The reserved act: signed and filed by an independent USPTO-registered attorney or agent.vs $15k
  • No filing, no charge.
  • Your spend ceiling is hard, and you set it.
  • Metered usage rates publish with your key.

Incumbent figures are typical market rates for outside counsel.

Three motions. One API.

Who consumes is a per-matter setting, not a different product. Same surface, same typed gate.

B2A

Business → Agent. Your agent is the customer.

No human in your loop. Your agent holds the key and a hard spend ceiling and buys legal work at machine speed: good-standing sweeps, portfolio deadline watches, contract triage on every inbound MSA, filings staged the moment a threshold trips.

B2H2A

Business → Human → Agent. Your users, with a licensed human at the one moment that needs one.

Your product serves people. Your agent does the work in-product; when a user’s matter hits a reserved act, it routes to an independent credential-holder who reviews and, in their own judgment, signs. A typed PENDING_SIGNER state keeps your UI honest, never a dead end.

B2A2D

Business → Agent → Downstream. Your platform’s agents, serving their customers.

You run agents for downstream clients: a legal-features SDK in your SaaS, a marketplace’s compliance bot, an enterprise fleet. Each client’s matter carries its own journaled consent, conflicts surface, and receipts. The gate travels with the capability, so you never build a professional network or practice law.

Whoever’s calling, the constitution is identical: open work runs agent-native, reserved acts route to an independent licensed human, and every outcome lands as a typed webhook with the receipt attached.

api key request

Get your API key.

One key covers the whole surface. Reads stay keyless, and nothing is priced by the hour or as a share of an outcome.

Read the docs

Credentialed professional? You’re the supply side gigs.lawyer

Keys are provisioned by email, patent surface first. Prefer the terminal? npx api.lawyer requests your key, stores it, and manages B2H2A delegated-authority tokens.