Site administration
Sign in
Add a case
Every field is required unless it is marked optional.
Published cases
Adding cases from a script or an agent
The same password works as a bearer token on the site's API. Send JSON with the fields shown on the form above.
Create or replace a case
curl -X PUT https://scotus-arguments.netlify.app/api/cases/25-498 \ -H "Authorization: Bearer $ADMIN_PASSWORD" \ -H "Content-Type: application/json" \ --data @case.json
{
"title": "Anderson v. Intel Corporation Investment Policy Committee",
"argued": "2026-10-06",
"summary": "Fewer than 100 words.",
"transcriptUrl": "https://www.supremecourt.gov/oral_arguments/argument_transcripts/2026/25-498_febh.pdf",
"audioUrl": "https://www.supremecourt.gov/oral_arguments/audio/2026/25-498",
"scotusblogUrl": "https://www.scotusblog.com/cases/anderson-v-intel-corp-investment-policy-comm/",
"opinionUrl": "",
"analysis": "## Summary\n\nMarkdown text of the analysis…"
}
Add the opinion link later
curl -X PATCH https://scotus-arguments.netlify.app/api/cases/25-498 \
-H "Authorization: Bearer $ADMIN_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"opinionUrl": "https://www.supremecourt.gov/opinions/…"}'
Other calls
GET /api/cases lists every case, newest argument first, without the analysis text. GET /api/cases/25-498 returns one case in full. POST /api/cases creates a case and refuses if the docket number already exists. DELETE /api/cases/25-498 removes a case. Reading needs no password.