RiverPort
Sign in
Bay

Port API

The Bay for your own code: every company, case and paper we hold, and 75 other public sources, with one key. It is free right now.

What one key reaches
611,515papers

In 109,901 cases from 38 sources, counted live.

Papers we keep a copy of
29,225
Other places we look
75

How to start

1
Ask for a key
Tell us who you are and what you want to build. We answer within a day and email your key.
2
Show your key
Send your key with every request, so we know it is you.
3
Start asking
Begin with the list of companies, then open a case, then read its papers.
curl "https://docket.11river.app/api/bay/v1/cases?admin=stretto&q=settlement&limit=2" \
  -H "Authorization: Bearer YOUR_API_KEY"

Showing us your key

Every request needs your key. Send it one of the two ways below, whichever your code makes easier. If a key ever gets out, ask us and we will swap it for a new one.

# Bearer token
curl https://docket.11river.app/api/bay/v1/administrators \
  -H "Authorization: Bearer YOUR_API_KEY"

# or x-api-key header
curl https://docket.11river.app/api/bay/v1/administrators \
  -H "x-api-key: YOUR_API_KEY"

Not sure which key you are using? Ask GET /me and it tells you what that key can do and how much you have used it.


What you get back

Everything you get back is one of three things: a company, a case, or a paper. Here is what comes with each, and what every part means.

Administrator

adminstring
The short name you use to ask for this one (like stretto)
namestring
The full name
typestring
The kind of work they handle
casesinteger
How many cases we hold for them
documentsinteger
How many papers we hold for them

Case

adminstring
Short name of the company handling the case
case_refstring
The case number. Use it to ask for that case's papers
case_namestring
What the case is called
documents_urlstring
Where to get this case's papers

DocumentEvery paper comes with a link to our copy that works for one hour, plus a link to where it came from.

adminstring
Short name of the company handling the case
doc_idstring
The paper's own number
case_refstring
The case this paper belongs to
titlestring
What the paper is called
bytesinteger | null
How big our copy is
mirroredboolean
True if we keep our own copy
download_urlstring | null
Link to our copy. It stops working after an hour
source_urlstring | null
Where the paper came from
tag_statusstring
Whether we have read this paper yet
tagsobject | null
What we learned from reading it

Document.tagsYou get this once we have read the paper.

doc_typestring
What kind of paper it is, like an Order or a Notice
summarystring
One sentence saying what it says
topicsstring[]
What it is about
doc_datestring
The date on the paper
significancestring
How big a deal it is
text_sourcestring | null
How much of the paper we read to work that out

What you can ask for

Every address below starts with https://docket.11river.app/api/bay/v1

GET /administrators
The list of every company we cover, and how much we have from each.
Params: none
GET /cases
Look up cases by name.
Params: admin, q, limit (≤200), offset
GET /documents
Get the papers, with what we learned from them and a link to each one.
Params: admin, case_ref, q, doc_type, limit (≤100), offset
GET /sources
The list of everywhere else we get information from.
Params: none
GET /me
Your own key: what it can do, and how much you have used it.
Params: none
GET /openapi.json
A map of everything here, written for computers. No key needed.
Params: public

What an answer looks like

GET https://docket.11river.app/api/bay/v1/documents?admin=stretto&q=settlement&limit=1

{
  "total": 41,
  "limit": 1,
  "offset": 0,
  "documents": [
    {
      "admin": "stretto",
      "doc_id": "404072",
      "case_ref": "275",
      "title": "Settlement Agreement",
      "bytes": 248113,
      "mirrored": true,
      "download_url": "https://…supabase…/sign/…  (1-hour signed)",
      "source_url": "https://…",
      "tag_status": "tagged",
      "tags": {
        "doc_type": "Settlement Agreement",
        "summary": "Stipulation of class settlement and release.",
        "topics": ["class settlement", "release"],
        "doc_date": "2025-08-14",
        "significance": "key",
        "text_source": "truncated"
      }
    }
  ]
}

We are still working through the pile, so some papers have not been read yet. tag_status tells you why one is blank: untagged means we have not gotten to it, and needs_ocr means the paper is a photo of a page with no readable text in it. We say so instead of guessing.

When we have read a paper, text_source says how much of it we read. full means all of it. truncated means only the beginning, so the summary covers the start of the paper and not the rest. ocr means we read it off a photo of the page, which can get a word wrong here and there. Papers we handled before we started tracking this say nothing at all.


Everywhere else we look

Court papers are only part of it. We also read 75 other places, sorted into 13 groups: courts, government offices, banned lists, product recalls, money news, and more. Your one key reaches all of them. To see the whole list from your code, ask GET /sources.

Case law & courts

CourtListener, Trellis, Supreme Court, Cornell Legal Information Institute, Find Case Law, Rechtspraak

Regulations & filings

SEC EDGAR, SEC EDGAR full text search, SEC company facts, eCFR, Federal Register, Regulations.gov, GovInfo, U.S. OSHA, U.S. Department of Labor

Legislation

Congress.gov, OpenStates, Legistar, California Legislative Information, New York State Senate

Sanctions, screening & entities

OFAC Sanctions (SDN), UN Security Council Consolidated List, UK FCDO Sanctions List, OpenSanctions, SAM.gov, HHS OIG, GLEIF, FDIC, USAspending, International Trade Administration, Wikidata

Consumer protection & enforcement

CFPB, FEC, New York Attorney General, California Attorney General

Insolvency registers

The Gazette, BODACC

Mass tort, pharma & research

openFDA, ClinicalTrials.gov, NIH PubMed, ORCID, Lens.org

Product safety

CPSC, SaferProducts.gov, NHTSA

Disaster & environment

FEMA, EPA ECHO, USGS, National Weather Service, National Interagency Fire Center, OpenStreetMap, OpenFreeMap

Cyber & data breach

CISA, NIST National Vulnerability Database, MITRE ATT&CK, WA AG

Demographics & providers

U.S. Census Bureau, Census Geocoder, NPPES, FBI Crime Data Explorer, ACLED

Economic & markets

FRED, U.S. Treasury, World Bank, European Central Bank, Frankfurter, CoinGecko, National Bureau of Statistics of China

Press, attention & archive

GDELT Project, Internet Archive, Hacker News, Reddit, Olostep, Google Programmable Search, SerpApi


What people build with it

Watch a case
Check a case now and then, and get told the moment a new paper shows up.
Keep track of dates
Ask once and get the papers about deadlines, claims, and payouts from every company at the same time.
Look someone up
Check one name against court cases, banned lists, and data-leak notices, all at once.
Build your own set of records
Download papers and their details in bulk, to study or to check.

When something goes wrong

Every answer comes with a number that says how it went. There is also a cap on how many times a minute you can ask, so nobody can crowd everyone else out.

200
It worked.
400
Something in your request was written wrong.
401
Your key is missing or wrong.
429
You are asking too fast. Wait a moment, then try again.
5xx
Our side broke. Wait a little, then try again.

Ask for a key

Tell us who you are and what you want to build. We read every request within a day and email your key. It is free right now.