Note: All response values in this documentation are examples only and do not represent actual data that will be returned from the API. Use the examples here for identifying the structure of the responses and the response types. Values such as Ids, case titles, statuses, etc. are not tied to any real values and will not match the live API.

Case

Cases have made it to the Supreme Court. They may have been combined from multiple lower court cases (dockets). They may or many not have been argued in front of or ruled on by the Supreme Court.

Get All Cases

Gets all cases in the API. This is unlikely to be commonly used.

curl request
$ curl 'http://localhost:8080/cases' -i -X GET
request
GET /cases HTTP/1.1
Host: localhost:8080
Table 1. response fields
Path Type Description

[]

Array

A list of cases

[].id

Number

unique id for the case

[].case

String

the case title

[].shortSummary

String

A short description of the case

[].argumentDate

String

The date the case was argued (yyyy-MM-dd)

[].sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

[].decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

[].result

String

The high level result of the case. ex) 9-0

[].decisionSummary

String

At a very high level, what this ruling means

[].status

String

Current status of the case

[].important

Boolean

A flag indicating this is an important case to watch

[].term

Object

The SCOTUS term the case where was granted

[].term.id

Number

Id of the term

[].term.name

String

Term defined as a year range ex) 2014-2015

[].term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

[].term.inactive

Boolean

Inactive terms do not contain all cases from that term

response body
[ {
  "id" : 100,
  "case" : "Spy v Spy",
  "shortSummary" : "SNL makes it to the supreme court",
  "argumentDate" : "2019-11-25",
  "sitting" : "November",
  "decisionDate" : "2020-01-10",
  "result" : "5-4",
  "decisionSummary" : "It was a close one, a lot of back and forth",
  "term" : {
    "id" : 2,
    "name" : "2019-2020",
    "otName" : "OT2019",
    "inactive" : false
  },
  "important" : false,
  "status" : "RESOLVED"
}, {
  "id" : 102,
  "case" : "People v Mr. Peanut",
  "shortSummary" : "Mr peanut was murdered and the court needs to decide why",
  "argumentDate" : "2020-02-02",
  "sitting" : "February",
  "decisionDate" : "2020-02-03",
  "result" : "9-0",
  "decisionSummary" : "Not justiciable",
  "term" : {
    "id" : 1,
    "name" : "2020-2021",
    "otName" : "OT2020",
    "inactive" : false
  },
  "important" : true,
  "status" : "RESOLVED"
}, {
  "id" : 55,
  "case" : "Helicopter v Kobe",
  "shortSummary" : "Wrongful death estate claim",
  "argumentDate" : "2020-10-11",
  "sitting" : "October",
  "decisionDate" : null,
  "result" : null,
  "decisionSummary" : null,
  "term" : {
    "id" : 1,
    "name" : "2020-2021",
    "otName" : "OT2020",
    "inactive" : false
  },
  "important" : false,
  "status" : "ARGUED"
} ]

Get Cases By Term

Look up all Supreme Court cases in a given term

curl request
$ curl 'http://localhost:8080/cases/term/50' -i -X GET
request
GET /cases/term/50 HTTP/1.1
Host: localhost:8080
Table 2. /cases/term/{termId}
Parameter Description

termId

Id of SCOTUS Term to search for

Table 3. response fields
Path Type Description

[]

Array

A list of cases in the term

[].id

Number

unique id for the case

[].case

String

the case title

[].shortSummary

String

A short description of the case

[].argumentDate

String

The date the case was argued (yyyy-MM-dd)

[].sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

[].decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

[].result

String

The high level result of the case. ex) 9-0

[].decisionSummary

String

At a very high level, what this ruling means

[].status

String

Current status of the case

[].important

Boolean

A flag indicating this is an important case to watch

[].term

Object

The SCOTUS term the case where was granted

[].term.id

Number

Id of the term

[].term.name

String

Term defined as a year range ex) 2014-2015

[].term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

[].term.inactive

Boolean

Inactive terms do not contain all cases from that term

response body
[ {
  "id" : 100,
  "case" : "Spy v Spy",
  "shortSummary" : "SNL makes it to the supreme court",
  "argumentDate" : "2019-11-25",
  "sitting" : "November",
  "decisionDate" : "2020-01-10",
  "result" : "5-4",
  "decisionSummary" : "It was a close one, a lot of back and forth",
  "term" : {
    "id" : 50,
    "name" : "2019-2020",
    "otName" : "OT2019",
    "inactive" : false
  },
  "important" : false,
  "status" : "RESOLVED"
} ]

Search for Cases

Search for cases. The search term will attempt to match the case title, short summary, and decision summary as well as searching all opinion summaries and docket titles and lower court rulings.

The match criteria for opinion summaries and lower court rulings is a more strict phrase matching than used with the case and docket titles. There are some allowances for partial matches and spelling errors.

Results are ordered by how well they match the search term, with the best match as the first result.

curl request
$ curl 'http://localhost:8080/cases/search/spy' -i -X GET
request
GET /cases/search/spy HTTP/1.1
Host: localhost:8080
Table 4. /cases/search/{searchTerm}
Parameter Description

searchTerm

Searches the case title, description, related dockets, and opinions

Table 5. response fields
Path Type Description

[]

Array

A list of cases where there is a full or close match to the search term or phrase

[].id

Number

unique id for the case

[].case

String

the case title

[].shortSummary

String

A short description of the case

[].argumentDate

String

The date the case was argued (yyyy-MM-dd)

[].sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

[].decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

[].result

String

The high level result of the case. ex) 9-0

[].decisionSummary

String

At a very high level, what this ruling means

[].status

String

Current status of the case

[].important

Boolean

A flag indicating this is an important case to watch

[].term

Object

The SCOTUS term the case where was granted

[].term.id

Number

Id of the term

[].term.name

String

Term defined as a year range ex) 2014-2015

[].term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

[].term.inactive

Boolean

Inactive terms do not contain all cases from that term

response body
[ {
  "id" : 100,
  "case" : "Spy v Spy",
  "shortSummary" : "SNL makes it to the supreme court",
  "argumentDate" : "2019-11-25",
  "sitting" : "November",
  "decisionDate" : "2020-01-10",
  "result" : "5-4",
  "decisionSummary" : "It was a close one, a lot of back and forth",
  "term" : {
    "id" : 50,
    "name" : "2019-2020",
    "otName" : "OT2019",
    "inactive" : false
  },
  "important" : false,
  "status" : "RESOLVED"
} ]

Get Case By Id

Look up info on a specific case based on the case id. This will get you more detailed information than searching for lists of cases.

curl request
$ curl 'http://localhost:8080/cases/200' -i -X GET
request
GET /cases/200 HTTP/1.1
Host: localhost:8080
Table 6. /cases/{caseId}
Parameter Description

caseId

ID of the case

Table 7. response fields
Path Type Description

id

Number

unique id for the case

case

String

the case title

shortSummary

String

A short description of the case

argumentDate

String

The date the case was argued (yyyy-MM-dd)

sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

result

String

The high level result of the case. ex) 9-0

decisionSummary

String

At a very high level, what this ruling means

status

String

Current status of the case

important

Boolean

A flag indicating this is an important case to watch

term

Object

The SCOTUS term the case where was granted

term.id

Number

Id of the term

term.name

String

Term defined as a year range ex) 2014-2015

term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

term.inactive

Boolean

Inactive terms do not contain all cases from that term

decisionLink

String

A link to the official court opinion

resultStatus

String

Subset of case status that defines the result of the case (can be null)

alternateTitles[]

Array

A list of other titles this case can sometimes refer to this case.

opinions[]

Array

A list of each opinion in the case. Any case may have multiple opinions with dissents and concurrences

opinions[].id

Number

Id of the opinion

opinions[].caseId

Number

Id of the case associated with this opinion

opinions[].opinionType

String

What kind of opinion this is (MAJORITY, CONCURRING, DISSENTING, etc.

opinions[].summary

String

A more detailed description of what this opinion is saying.

opinions[].justices[]

Array

A list of the justices who joined this opinion

opinions[].justices[].justiceId

Number

The Id of the justice

opinions[].justices[].isAuthor

Boolean

Flag to determine if this justice the author of this opinion

opinions[].justices[].justiceName

String

Name of the justice

dockets[]

Array

Individual cases from the lower courts seeking certiorari from the Supreme Court. Several may be combined into one SCOTUS case

dockets[].docketId

Number

Unique Docket Id. Can be used to look up more info on this particular lower court case

dockets[].docketNumber

String

Docket number identifies this case with the Supreme Court

dockets[].title

String

Title of the case in the lower court. May be the same as the case title

dockets[].lowerCourtOverruled

Boolean

Was the lower court decision overturned by the Supreme Court. Can be null if SCOTUS has not yet ruled on the case

dockets[].lowerCourt

Object

Describes the lower appeals court this case came up through

dockets[].lowerCourt.id

Number

Unique Id for the lower court

dockets[].lowerCourt.shortName

String

Short hand way of referring to the court

dockets[].lowerCourt.name

String

Long form name of the appeals court

tags[]

Array

List of tags associated with this case

tags[]id

Number

Unique Id for the tag

tags[]name

String

Name of the tag

tags[]description

String

A description of the tag

response body
{
  "id" : 200,
  "case" : "Obergefell v Hodges",
  "alternateTitles" : [ "Obergfell v. Hodges", "Bourke v. Beshear" ],
  "shortSummary" : "A state marriage license for a same sex couple should be recognized in all states",
  "status" : "REVERSED",
  "resultStatus" : "REVERSED",
  "argumentDate" : "2015-04-28",
  "sitting" : "April",
  "decisionDate" : "2015-06-26",
  "result" : "5-4",
  "decisionSummary" : "Right to marry is a fundamental right guaranteed by the Fourteenth Amendment. State laws prohibiting same sex marriage are invalidated",
  "decisionLink" : "https://www.supremecourt.gov/opinions/14pdf/14-556_3204.pdf",
  "term" : {
    "id" : 33,
    "name" : "2014-2015",
    "otName" : "OT2014",
    "inactive" : false
  },
  "important" : true,
  "opinions" : [ {
    "id" : 500,
    "caseId" : 200,
    "opinionType" : "MAJORITY",
    "summary" : "Democracy and legislation are important. But individuals who are harmed should not have to wait for legislative action. A ruling against same sex couples would leave long lasting injuries unjustified under the 14th Amendment. Same sex couples may now exercise the  fundamental right to marry in all states",
    "justices" : [ {
      "justiceId" : 50,
      "isAuthor" : true,
      "justiceName" : "Anthony Kennedy"
    }, {
      "justiceId" : 51,
      "isAuthor" : false,
      "justiceName" : "Ruth Bader Ginsburg"
    }, {
      "justiceId" : 52,
      "isAuthor" : false,
      "justiceName" : "Elena Kagan"
    }, {
      "justiceId" : 53,
      "isAuthor" : false,
      "justiceName" : "Sonya Sotomayor"
    }, {
      "justiceId" : 54,
      "isAuthor" : false,
      "justiceName" : "Steven Breyer"
    } ]
  }, {
    "id" : 501,
    "caseId" : 200,
    "opinionType" : "DISSENT",
    "summary" : "Judges have the power to say what the law is, not what the law should be. The constitution does not provide a theory on marriage, so states should be free to define it. Roberts points out that the majority applies the substantive due process test, but that is an extreme remedy. Roberts quotes the Justice Curtis' dissent in Dred Scott",
    "justices" : [ {
      "justiceId" : 55,
      "isAuthor" : true,
      "justiceName" : "John Roberts"
    }, {
      "justiceId" : 56,
      "isAuthor" : false,
      "justiceName" : "Antonin Scalia"
    }, {
      "justiceId" : 57,
      "isAuthor" : false,
      "justiceName" : "Clerence Thomas"
    } ]
  }, {
    "id" : 502,
    "caseId" : 200,
    "opinionType" : "DISSENT",
    "summary" : "Joins Chief Justices Roberts' dissent in full. Today's decree means that the true rulers of 320 Million Americans are the 9 justices on the Supreme Court. Public debate over same sex marriage was American democracy at its best until the court stepped in. The Majority decision accuses every state of violating the constitution for the last 135 years because of a fundamental right they just discovered.",
    "justices" : [ {
      "justiceId" : 56,
      "isAuthor" : true,
      "justiceName" : "Anton Scalia"
    }, {
      "justiceId" : 57,
      "isAuthor" : false,
      "justiceName" : "Clerence Thomas"
    } ]
  }, {
    "id" : 503,
    "caseId" : 200,
    "opinionType" : "DISSENT",
    "summary" : "The majority decision is at odds with the constitution and the principals the nation was build on. The Due Process clause should not be used to create substantive rights. Thomas also does not buy that same sex couples are deprived of liberty if their marriage is not recognized.",
    "justices" : [ {
      "justiceId" : 57,
      "isAuthor" : true,
      "justiceName" : "Clerence Thomas"
    }, {
      "justiceId" : 56,
      "isAuthor" : false,
      "justiceName" : "Anton Scalia"
    } ]
  }, {
    "id" : 504,
    "caseId" : 200,
    "opinionType" : "DISSENT",
    "summary" : "Constitution does not and should not answer the questions around same sex marriage. Rights protected by the due process clause should only be those deeply rooted in the nations history and tradition. No country allowed same sex marriage until 2000. Traditionally marriage is linked to procreation. While that understanding may not hold true today, states should be allowed to try to hang onto that tradition. Alito muses about how anyone who disagrees will be labeled a bigot and treated as such by employers, government, and schools.",
    "justices" : [ {
      "justiceId" : 58,
      "isAuthor" : true,
      "justiceName" : "Samuel Alito"
    }, {
      "justiceId" : 57,
      "isAuthor" : false,
      "justiceName" : "Clerence Thomas"
    }, {
      "justiceId" : 56,
      "isAuthor" : false,
      "justiceName" : "Anton Scalia"
    } ]
  } ],
  "dockets" : [ {
    "docketId" : 1,
    "docketNumber" : "14-556",
    "title" : "Obergefell v. Hodges",
    "lowerCourt" : {
      "id" : 1,
      "shortName" : "CA06",
      "name" : "6th Circuit Court of Appeals"
    },
    "lowerCourtOverruled" : true
  }, {
    "docketId" : 2,
    "docketNumber" : "14-562",
    "title" : "Tanco v. Haslam",
    "lowerCourt" : {
      "id" : 1,
      "shortName" : "CA06",
      "name" : "6th Circuit Court of Appeals"
    },
    "lowerCourtOverruled" : true
  }, {
    "docketId" : 3,
    "docketNumber" : "14-571",
    "title" : "DeBoer v. Snyder",
    "lowerCourt" : {
      "id" : 1,
      "shortName" : "CA06",
      "name" : "6th Circuit Court of Appeals"
    },
    "lowerCourtOverruled" : true
  }, {
    "docketId" : 4,
    "docketNumber" : "14-574",
    "title" : "Bourke v. Beshear",
    "lowerCourt" : {
      "id" : 1,
      "shortName" : "CA06",
      "name" : "6th Circuit Court of Appeals"
    },
    "lowerCourtOverruled" : true
  } ],
  "tags" : [ ]
}

Get End of Term Summary

Get Summary information for a single term

curl request
$ curl 'http://localhost:8080/cases/term/3/summary' -i -X GET
request
GET /cases/term/3/summary HTTP/1.1
Host: localhost:8080
Table 8. /cases/term/{termId}/summary
Parameter Description

termId

Id of the term

Table 9. response fields
Path Type Description

termId

Number

Id of the Term this summary is for

termEndDate

String

Date of the last decision handed down this term

justiceSummary[]

Array

Summary statistics for each justice who participated in the term

courtSummary[]

Array

Summary statistics for each court that had a case appealed before SCOTUS this term

unanimous[]

Array

Cases this term with a unanimous ruling

partySplit[]

Array

Cases this term split along party lines

averageDecisionDays

Number

Average number of days between hearing arguments in the case and deciding the case

medianDecisionDays

Number

Median number of days between hearing arguments in the case and deciding the case

justiceSummary[].justice

Object

The justice the following summary information relates to

justiceSummary[].majorityAuthor

Number

The number of cases for which this justice wrote the majority opinion

justiceSummary[].concurringAuthor

Number

The number of cases for which this justice wrote a concurring opinion

justiceSummary[].concurJudgementAuthor

Number

The number of cases for which this justice wrote an opinion concurring in judgement with the opinion of the court

justiceSummary[].dissentAuthor

Number

The number of cases for which this justice wrote a dissenting opinion

justiceSummary[].dissentJudgementAuthor

Number

The number of cases for which this justice wrote an opinion dissenting in judgment and concurring in part with the opinion of the court

justiceSummary[].casesWithOpinion

Number

The number of cases this justice participated in this term

justiceSummary[].casesInMajority

Number

The number of cases in which this justice was in the majority this term

justiceSummary[].percentInMajority

Number

The percentage describing the how often this justice was in the majority

justiceSummary[].justice.id

Number

Unique Id for the justice

justiceSummary[].justice.name

String

The name of the Justice

justiceSummary[].justice.dateConfirmed

String

The date the justice was confirmed to the Supreme Court (yyyy-MM-dd)

justiceSummary[].justice.birthday

String

The date the justice was born (yyyy-MM-dd)

justiceSummary[].justice.dateRetired

String

The date the justice retired (can be null) (yyyy-MM-dd)

justiceSummary[].justice.party

String

The party in power who appointed the justice

courtSummary[].court

Object

The court the following summary information relates to

courtSummary[].cases

Number

The total number of cases from this court that SCOTUS decided on appeal this term

courtSummary[].affirmed

Number

The number of cases that SCOTUS affirmed

courtSummary[].reversedRemanded

Number

The number of cases that SCOTUS overturned, either by reversing or by remanding for further orders

courtSummary[].court.id

Number

Unique Id of the appeals court

courtSummary[].court.shortName

String

Short name or abbreviation for the court

courtSummary[].court.name

String

Full name of the court

justiceAgreement[].justiceId

Number

The ID of the Justice to be compared with the the other justices

justiceAgreement[].opinionAgreementMap

Object

A map of the justice ID being compared to the percentage of opinions the two justices both joined, represented by a decimal number

justiceAgreement[].caseAgreementMap

Object

A map of the justice ID being compared to the percentage of cases the two justices were aligned on, represented by a decimal number

unanimous[].id

Number

unique id for the case

unanimous[].case

String

the case title

unanimous[].shortSummary

String

A short description of the case

unanimous[].argumentDate

String

The date the case was argued (yyyy-MM-dd)

unanimous[].sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

unanimous[].decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

unanimous[].result

String

The high level result of the case. ex) 9-0

unanimous[].decisionSummary

String

At a very high level, what this ruling means

unanimous[].status

String

Current status of the case

unanimous[].important

Boolean

A flag indicating this is an important case to watch

unanimous[].term

Object

The SCOTUS term the case where was granted

unanimous[].term.id

Number

Id of the term

unanimous[].term.name

String

Term defined as a year range ex) 2014-2015

unanimous[].term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

unanimous[].term.inactive

Boolean

Inactive terms do not contain all cases from that term

partySplit[]id

Number

unique id for the case

partySplit[]case

String

the case title

partySplit[]shortSummary

String

A short description of the case

partySplit[]argumentDate

String

The date the case was argued (yyyy-MM-dd)

partySplit[]sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

partySplit[]decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

partySplit[]result

String

The high level result of the case. ex) 9-0

partySplit[]decisionSummary

String

At a very high level, what this ruling means

partySplit[]status

String

Current status of the case

partySplit[]important

Boolean

A flag indicating this is an important case to watch

partySplit[]term

Object

The SCOTUS term the case where was granted

partySplit[]term.id

Number

Id of the term

partySplit[]term.name

String

Term defined as a year range ex) 2014-2015

partySplit[]term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

partySplit[]term.inactive

Boolean

Inactive terms do not contain all cases from that term

response body
{
  "termId" : 3,
  "termEndDate" : "2019-06-30",
  "justiceSummary" : [ {
    "justice" : {
      "id" : 1,
      "name" : "Ruth Bader Ginsburg",
      "dateConfirmed" : "1970-01-01",
      "birthday" : "1970-01-01",
      "dateRetired" : null,
      "party" : "D"
    },
    "majorityAuthor" : 6,
    "concurringAuthor" : 2,
    "concurJudgementAuthor" : 1,
    "dissentAuthor" : 3,
    "dissentJudgementAuthor" : 0,
    "casesInMajority" : 50,
    "casesWithOpinion" : 57,
    "percentInMajority" : 0.877193
  }, {
    "justice" : {
      "id" : 2,
      "name" : "John Roberts",
      "dateConfirmed" : "1970-01-01",
      "birthday" : "1970-01-01",
      "dateRetired" : null,
      "party" : "R"
    },
    "majorityAuthor" : 5,
    "concurringAuthor" : 0,
    "concurJudgementAuthor" : 0,
    "dissentAuthor" : 2,
    "dissentJudgementAuthor" : 1,
    "casesInMajority" : 55,
    "casesWithOpinion" : 57,
    "percentInMajority" : 0.9649123
  } ],
  "courtSummary" : [ {
    "court" : {
      "id" : 1,
      "shortName" : "CA05",
      "name" : "Fifth Circuit Court of Appeals"
    },
    "cases" : 5,
    "affirmed" : 1,
    "reversedRemanded" : 4
  }, {
    "court" : {
      "id" : 2,
      "shortName" : "CA04",
      "name" : "Fourth Circuit Court of Appeals"
    },
    "cases" : 3,
    "affirmed" : 3,
    "reversedRemanded" : 0
  }, {
    "court" : {
      "id" : 3,
      "shortName" : "CA09",
      "name" : "Ninth Circuit Court of Appeals"
    },
    "cases" : 7,
    "affirmed" : 2,
    "reversedRemanded" : 5
  } ],
  "justiceAgreement" : [ {
    "justiceId" : 1,
    "opinionAgreementMap" : {
      "1" : 1.0,
      "2" : 0.5
    },
    "caseAgreementMap" : {
      "1" : 1.0,
      "2" : 0.5
    }
  }, {
    "justiceId" : 2,
    "opinionAgreementMap" : {
      "1" : 0.5,
      "2" : 1.0
    },
    "caseAgreementMap" : {
      "1" : 1.0,
      "2" : 0.5
    }
  } ],
  "unanimous" : [ {
    "id" : 102,
    "case" : "People v Mr. Peanut",
    "shortSummary" : "Mr peanut was murdered and the court needs to decide why",
    "argumentDate" : "2020-02-02",
    "sitting" : "February",
    "decisionDate" : "2020-02-03",
    "result" : "9-0",
    "decisionSummary" : "Not justiciable",
    "term" : {
      "id" : 1,
      "name" : "2020-2021",
      "otName" : "OT2020",
      "inactive" : false
    },
    "important" : true,
    "status" : "RESOLVED"
  } ],
  "partySplit" : [ {
    "id" : 104,
    "case" : "Obergefell v. Hodges",
    "shortSummary" : "A state marriage license for a same sex couple should be recognized in all states",
    "argumentDate" : "2015-04-28",
    "sitting" : "April",
    "decisionDate" : "2015-06-26",
    "result" : "Right to marry is a fundamental right guaranteed by the Fourteenth Amendment. State laws prohibiting same sex marriage are invalidated",
    "decisionSummary" : "https://www.supremecourt.gov/opinions/14pdf/14-556_3204.pdf",
    "term" : {
      "id" : 33,
      "name" : "2014-2015",
      "otName" : "OT2014",
      "inactive" : false
    },
    "important" : true,
    "status" : "REVERSED"
  } ],
  "averageDecisionDays" : 110,
  "medianDecisionDays" : 91
}

Terms

Terms represent groups of cases SCOTUS hears at a given time. Terms generally run from October to June and can be noted by the years they cover or by the October start date (OT2020 for the term starting in October 2020)

Get all Terms

Gets a list of every SCOTUS term.

curl request
$ curl 'http://localhost:8080/terms' -i -X GET
request
GET /terms HTTP/1.1
Host: localhost:8080
Table 10. response fields
Path Type Description

[]

Array

List of terms

[].id

Number

Id of the term

[].name

String

Term defined as a year range

[].otName

String

October term ("OT") notation

[].inactive

Boolean

Inactive terms are only partial terms. They do not contain all cases from that term

response body
[ {
  "id" : 1,
  "name" : "2014-2015",
  "otName" : "OT2014",
  "inactive" : false
}, {
  "id" : 2,
  "name" : "2015-2016",
  "otName" : "OT2015",
  "inactive" : false
}, {
  "id" : 3,
  "name" : "2016-2017",
  "otName" : "OT2016",
  "inactive" : false
} ]

Dockets

Dockets represent cases that have made their way up through the lower courts with a petition to be reviewed by the Supreme Court. Each docket is assigned a number based on the SCOTUS term. A SCOTUS case may combine multiple dockets and rule on all of them at the same time.

Get All Dockets

Gets all the dockets in the API. This is unlikely to be used.

curl request
$ curl 'http://localhost:8080/dockets' -i -X GET
request
GET /dockets HTTP/1.1
Host: localhost:8080
Table 11. response fields
Path Type Description

[]

Array

A list of all dockets

[].id

Number

Unique Id for the docket

[].title

String

Docket title. Can be the same as the case title, but sometimes multiple dockets are combined into one case

[].docketNumber

String

A unique number given to each docket submitted for certiorari to the Supreme Court.

[].lowerCourtRuling

String

Short summary of how the lower court ruled on the case

[].lowerCourtOverruled

Boolean

Flag for if the lower court overruled by SCOTUS (can be null)

[].status

String

Current status of this docket

[].caseId

Number

Unique Id for the case the docket is tied to (can be null)

[].lowerCourtId

Number

Unique Id for the appeals court that decided the case

response body
[{"id":5,"caseId":98,"title":"Sharp V. Murphy","docketNumber":"17-1107","lowerCourtId":10,"lowerCourtRuling":"Congress did not revoke the native territory, so native territory law applies","lowerCourtOverruled":null,"status":"CERT_GRANTED"},{"id":6,"caseId":null,"title":"Patterson v. Walgreen Co.","docketNumber":"18-349","lowerCourtId":11,"lowerCourtRuling":"Accomodation for religious practice is reasonable and not a jury question (CA02, CA07, CA09 hold differently)","lowerCourtOverruled":null,"status":"RELIST"},{"id":1,"caseId":43,"title":"Obergefell v. Hodges","docketNumber":"14-556","lowerCourtId":6,"lowerCourtRuling":"Something as big as gay marriage should not be decided by a three judge panel","lowerCourtOverruled":true,"status":"RESOLVED"},{"id":2,"caseId":43,"title":"Tanco v. Haslam","docketNumber":"14-562","lowerCourtId":6,"lowerCourtRuling":"Something as big as gay marriage should not be decided by a three judge panel","lowerCourtOverruled":true,"status":"RESOLVED"},{"id":3,"caseId":43,"title":"DeBoer v. Snyder","docketNumber":"14-571","lowerCourtId":6,"lowerCourtRuling":"Something as big as gay marriage should not be decided by a three judge panel","lowerCourtOverruled":true,"status":"RESOLVED"},{"id":4,"caseId":43,"title":"Bourke v. Beshear","docketNumber":"14-571","lowerCourtId":6,"lowerCourtRuling":"Something as big as gay marriage should not be decided by a three judge panel","lowerCourtOverruled":true,"status":"RESOLVED"}]

Get Unassigned Dockets

Gets a list of dockets that have not been assigned a SCOTUS case. These will be dockets related to certiorari petitions that SCOTUS has not yet granted or denied.

curl request
$ curl 'http://localhost:8080/dockets/unassigned' -i -X GET
request
GET /dockets/unassigned HTTP/1.1
Host: localhost:8080
Table 12. response fields
Path Type Description

[]

Array

A list of dockets not yet assigned to a SCOTUS case

[].id

Number

Unique Id for the docket

[].title

String

Docket title. Can be the same as the case title, but sometimes multiple dockets are combined into one case

[].docketNumber

String

A unique number given to each docket submitted for certiorari to the Supreme Court.

[].lowerCourtRuling

String

Short summary of how the lower court ruled on the case

[].lowerCourtOverruled

Null

Flag for if the lower court overruled by SCOTUS (can be null)

[].status

String

Current status of this docket

[].caseId

Null

Unique Id for the case the docket is tied to (can be null)

[].lowerCourtId

Number

Unique Id for the appeals court that decided the case

response body
[ {
  "id" : 6,
  "caseId" : null,
  "title" : "Patterson v. Walgreen Co.",
  "docketNumber" : "18-349",
  "lowerCourtId" : 11,
  "lowerCourtRuling" : "Accommodation for religious practice is reasonable and not a jury question (CA02, CA07, CA09 hold differently)",
  "lowerCourtOverruled" : null,
  "status" : "RELIST"
} ]

Search Dockets

Searches all dockets by the text of the title

curl request
$ curl 'http://localhost:8080/dockets/title/boe' -i -X GET
request
GET /dockets/title/boe HTTP/1.1
Host: localhost:8080
Table 13. /dockets/title/{title}
Parameter Description

title

Search string for the docket title - case insensitive, must match some part of the docket title

Table 14. response fields
Path Type Description

[]

Array

A list of all dockets associated with the case Id

[].id

Number

Unique Id for the docket

[].title

String

Docket title. Can be the same as the case title, but sometimes multiple dockets are combined into one case

[].docketNumber

String

A unique number given to each docket submitted for certiorari to the Supreme Court.

[].lowerCourtRuling

String

Short summary of how the lower court ruled on the case

[].lowerCourtOverruled

Boolean

Flag for if the lower court overruled by SCOTUS (can be null)

[].status

String

Current status of this docket

[].caseId

Number

Unique Id for the case the docket is tied to (can be null)

[].lowerCourtId

Number

Unique Id for the appeals court that decided the case

response body
[ {
  "id" : 3,
  "caseId" : 43,
  "title" : "DeBoer v. Snyder",
  "docketNumber" : "14-571",
  "lowerCourtId" : 6,
  "lowerCourtRuling" : "Something as big as gay marriage should not be decided by a three judge panel",
  "lowerCourtOverruled" : true,
  "status" : "RESOLVED"
} ]

Get Dockets by Case

Gets all dockets associated with a given Case

curl request
$ curl 'http://localhost:8080/dockets/case/43' -i -X GET
request
GET /dockets/case/43 HTTP/1.1
Host: localhost:8080
Table 15. /dockets/case/{caseId}
Parameter Description

caseId

Id of the case

Table 16. response fields
Path Type Description

[]

Array

A list of all dockets associated with the case Id

[].id

Number

Unique Id for the docket

[].title

String

Docket title. Can be the same as the case title, but sometimes multiple dockets are combined into one case

[].docketNumber

String

A unique number given to each docket submitted for certiorari to the Supreme Court.

[].lowerCourtRuling

String

Short summary of how the lower court ruled on the case

[].lowerCourtOverruled

Boolean

Flag for if the lower court overruled by SCOTUS (can be null)

[].status

String

Current status of this docket

[].caseId

Number

Unique Id for the case the docket is tied to (can be null)

[].lowerCourtId

Number

Unique Id for the appeals court that decided the case

response body
[ {
  "id" : 1,
  "caseId" : 43,
  "title" : "Obergefell v. Hodges",
  "docketNumber" : "14-556",
  "lowerCourtId" : 6,
  "lowerCourtRuling" : "Something as big as gay marriage should not be decided by a three judge panel",
  "lowerCourtOverruled" : true,
  "status" : "RESOLVED"
}, {
  "id" : 2,
  "caseId" : 43,
  "title" : "Tanco v. Haslam",
  "docketNumber" : "14-562",
  "lowerCourtId" : 6,
  "lowerCourtRuling" : "Something as big as gay marriage should not be decided by a three judge panel",
  "lowerCourtOverruled" : true,
  "status" : "RESOLVED"
}, {
  "id" : 3,
  "caseId" : 43,
  "title" : "DeBoer v. Snyder",
  "docketNumber" : "14-571",
  "lowerCourtId" : 6,
  "lowerCourtRuling" : "Something as big as gay marriage should not be decided by a three judge panel",
  "lowerCourtOverruled" : true,
  "status" : "RESOLVED"
}, {
  "id" : 4,
  "caseId" : 43,
  "title" : "Bourke v. Beshear",
  "docketNumber" : "14-571",
  "lowerCourtId" : 6,
  "lowerCourtRuling" : "Something as big as gay marriage should not be decided by a three judge panel",
  "lowerCourtOverruled" : true,
  "status" : "RESOLVED"
} ]

Get Docket by Id

Get detailed information about a specific Docket

curl request
$ curl 'http://localhost:8080/dockets/2' -i -X GET
request
GET /dockets/2 HTTP/1.1
Host: localhost:8080
Table 17. /dockets/{docketId}
Parameter Description

docketId

Id of the docket

Table 18. response fields
Path Type Description

id

Number

Unique Id for the docket

title

String

Docket title. Can be the same as the case title, but sometimes multiple dockets are combined into one case

docketNumber

String

A unique number given to each docket submitted for certiorari to the Supreme Court.

lowerCourtRuling

String

Short summary of how the lower court ruled on the case

lowerCourtOverruled

Boolean

Flag for if the lower court overruled by SCOTUS (can be null)

status

String

Current status of this docket

lowerCourt

Object

The lower court ruling being appealed

lowerCourt.id

Number

Unique Id of the court

lowerCourt.shortName

String

Short name of the court

lowerCourt.name

String

Name of the court

case

Object

Supreme Court case that reviews this docket case (can be null)

case.id

Number

unique id for the case

case.case

String

the case title

case.shortSummary

String

A short description of the case

case.argumentDate

String

The date the case was argued (yyyy-MM-dd)

case.sitting

String

Scotus argument sitting. SCOTUS hears many cases at a time, broken up into sittings (October, November, etc.)

case.decisionDate

String

The date the Supreme Court ruled on the case (yyyy-MM-dd)

case.result

String

The high level result of the case. ex) 9-0

case.decisionSummary

String

At a very high level, what this ruling means

case.status

String

Current status of the case

case.important

Boolean

A flag indicating this is an important case to watch

case.term

Object

The SCOTUS term the case where was granted

case.term.id

Number

Id of the term

case.term.name

String

Term defined as a year range ex) 2014-2015

case.term.otName

String

SCOTUS terms start in October and last until June. The "OT" term is the year of the October sitting ex) OT2014

case.term.inactive

Boolean

Inactive terms do not contain all cases from that term

response body
{
  "id" : 2,
  "case" : {
    "id" : 43,
    "case" : "Obergefell v. Hodges",
    "shortSummary" : "A state marriage license for a same sex couple should be recognized in all states",
    "argumentDate" : "2015-04-28",
    "sitting" : "May",
    "decisionDate" : "2015-06-26",
    "result" : "5-4",
    "decisionSummary" : "Right to marry is a fundamental right guaranteed by the Fourteenth Amendment. State laws prohibiting same sex marriage are invalidated",
    "term" : {
      "id" : 30,
      "name" : "2014-2015",
      "otName" : "OT2014",
      "inactive" : false
    },
    "important" : false,
    "status" : "RESOLVED"
  },
  "title" : "Tanco v. Haslam",
  "docketNumber" : "14-562",
  "lowerCourt" : {
    "id" : 6,
    "shortName" : "CA06",
    "name" : "Sixth Circuit Court of Appeals"
  },
  "lowerCourtRuling" : "Something as big as gay marriage should not be decided by a three judge panel",
  "lowerCourtOverruled" : true,
  "status" : "RESOLVED"
}

Justices

These are the supreme court justices and information about them.

Get All Justices

This will get all the Supreme Court justices, including historical justices.

curl request
$ curl 'http://localhost:8080/justices' -i -X GET
request
GET /justices HTTP/1.1
Host: localhost:8080
Table 19. response fields
Path Type Description

[]

Array

A list of all Supreme Court Justices, past and present

[].id

Number

Unique Id for the justice

[].name

String

The name of the Justice

[].dateConfirmed

String

The date the justice was confirmed to the Supreme Court (yyyy-MM-dd)

[].birthday

String

The date the justice was born (yyyy-MM-dd)

[].dateRetired

String

The date the justice retired (can be null) (yyyy-MM-dd)

[].party

String

The party in power who appointed the justice

response body
[{"id":1,"name":"John Roberts","dateConfirmed":"2005-11-29","birthday":"1954-10-01","dateRetired":null,"party":"R"},{"id":2,"name":"Clarence Thomas","dateConfirmed":"1991-10-23","birthday":"1948-08-01","dateRetired":null,"party":"R"},{"id":3,"name":"Stephen Breyer","dateConfirmed":"1994-08-03","birthday":"1938-04-01","dateRetired":null,"party":"D"},{"id":4,"name":"Ruth Bader Ginsburg","dateConfirmed":"1993-08-10","birthday":"1943-02-01","dateRetired":null,"party":"D"},{"id":5,"name":"Sonya Sotomayor","dateConfirmed":"2009-08-08","birthday":"1954-01-01","dateRetired":null,"party":"D"},{"id":6,"name":"Elena Kagan","dateConfirmed":"2010-08-07","birthday":"1960-05-01","dateRetired":null,"party":"D"},{"id":7,"name":"Samuel Alito","dateConfirmed":"2006-01-31","birthday":"1950-10-01","dateRetired":null,"party":"R"},{"id":8,"name":"Neil Gorsuch","dateConfirmed":"2017-10-10","birthday":"1967-12-01","dateRetired":null,"party":"R"},{"id":9,"name":"Brett Kavanaugh","dateConfirmed":"2018-10-06","birthday":"1965-11-01","dateRetired":null,"party":"R"},{"id":10,"name":"William Rehnquist","dateConfirmed":"1986-09-17","birthday":"1924-10-01","dateRetired":"2005-09-03","party":"R"},{"id":11,"name":"Warren E. Burger","dateConfirmed":"1969-06-09","birthday":"1907-10-01","dateRetired":"1986-09-26","party":"R"},{"id":12,"name":"Earl Warren","dateConfirmed":"1954-03-01","birthday":"1891-10-01","dateRetired":"1969-06-23","party":"D"}]

Get Active Justices

Gets the justices currently serving on the Supreme Court

curl request
$ curl 'http://localhost:8080/justices/active' -i -X GET
request
GET /justices/active HTTP/1.1
Host: localhost:8080
Table 20. response fields
Path Type Description

[]

Array

A list of all currently active Supreme Court Justices

[].id

Number

Unique Id for the justice

[].name

String

The name of the Justice

[].dateConfirmed

String

The date the justice was confirmed to the Supreme Court (yyyy-MM-dd)

[].birthday

String

The date the justice was born (yyyy-MM-dd)

[].dateRetired

String

The date the justice retired (can be null) (yyyy-MM-dd)

[].party

String

The party in power who appointed the justice

response body
[ {
  "id" : 1,
  "name" : "John Roberts",
  "dateConfirmed" : "2005-11-29",
  "birthday" : "1954-10-01",
  "dateRetired" : null,
  "party" : "R"
}, {
  "id" : 2,
  "name" : "Clarence Thomas",
  "dateConfirmed" : "1991-10-23",
  "birthday" : "1948-08-01",
  "dateRetired" : null,
  "party" : "R"
}, {
  "id" : 3,
  "name" : "Stephen Breyer",
  "dateConfirmed" : "1994-08-03",
  "birthday" : "1938-04-01",
  "dateRetired" : null,
  "party" : "D"
}, {
  "id" : 4,
  "name" : "Ruth Bader Ginsburg",
  "dateConfirmed" : "1993-08-10",
  "birthday" : "1943-02-01",
  "dateRetired" : null,
  "party" : "D"
}, {
  "id" : 5,
  "name" : "Sonya Sotomayor",
  "dateConfirmed" : "2009-08-08",
  "birthday" : "1954-01-01",
  "dateRetired" : null,
  "party" : "D"
}, {
  "id" : 6,
  "name" : "Elena Kagan",
  "dateConfirmed" : "2010-08-07",
  "birthday" : "1960-05-01",
  "dateRetired" : null,
  "party" : "D"
}, {
  "id" : 7,
  "name" : "Samuel Alito",
  "dateConfirmed" : "2006-01-31",
  "birthday" : "1950-10-01",
  "dateRetired" : null,
  "party" : "R"
}, {
  "id" : 8,
  "name" : "Neil Gorsuch",
  "dateConfirmed" : "2017-10-10",
  "birthday" : "1967-12-01",
  "dateRetired" : null,
  "party" : "R"
}, {
  "id" : 9,
  "name" : "Brett Kavanaugh",
  "dateConfirmed" : "2018-10-06",
  "birthday" : "1965-11-01",
  "dateRetired" : null,
  "party" : "R"
} ]

Get Justice By Id

Gets info about a specific SCOTUS justice by the unique Id.

curl request
$ curl 'http://localhost:8080/justices/3' -i -X GET
request
GET /justices/3 HTTP/1.1
Host: localhost:8080
Table 21. /justices/{justiceId}
Parameter Description

justiceId

Id of the Justice

Table 22. response fields
Path Type Description

id

Number

Unique Id for the justice

name

String

The name of the Justice

dateConfirmed

String

The date the justice was confirmed to the Supreme Court (yyyy-MM-dd)

birthday

String

The date the justice was born (yyyy-MM-dd)

dateRetired

String

The date the justice retired (can be null) (yyyy-MM-dd)

party

String

The party in power who appointed the justice

response body
{
  "id" : 3,
  "name" : "Stephen Breyer",
  "dateConfirmed" : "1994-08-03",
  "birthday" : "1938-04-01",
  "dateRetired" : null,
  "party" : "D"
}

Search Justices By Name

Tries to look up justices by name. You can look up all or part of the name regardless of case.

curl request
$ curl 'http://localhost:8080/justices/name/bur' -i -X GET
request
GET /justices/name/bur HTTP/1.1
Host: localhost:8080
Table 23. /justices/name/{justiceName}
Parameter Description

justiceName

Name to search for. This string can appear anywhere in the name, case insensitive

Table 24. response fields
Path Type Description

[]

Array

Justices that match the name search criteria

[].id

Number

Unique Id for the justice

[].name

String

The name of the Justice

[].dateConfirmed

String

The date the justice was confirmed to the Supreme Court (yyyy-MM-dd)

[].birthday

String

The date the justice was born (yyyy-MM-dd)

[].dateRetired

String

The date the justice retired (can be null) (yyyy-MM-dd)

[].party

String

The party in power who appointed the justice

response body
[ {
  "id" : 4,
  "name" : "Ruth Bader Ginsburg",
  "dateConfirmed" : "1993-08-10",
  "birthday" : "1943-02-01",
  "dateRetired" : null,
  "party" : "D"
}, {
  "id" : 11,
  "name" : "Warren E. Burger",
  "dateConfirmed" : "1969-06-09",
  "birthday" : "1907-10-01",
  "dateRetired" : "1986-09-26",
  "party" : "R"
} ]

Courts

These are the appeals courts that rule on the cases before the make it to the Supreme Court. The Supreme Court is a court of last resort and does not hear new cases. Any case that comes before it has already been ruled on and appealed to a higher court. SCOTUS is the last step in the appeals process.

Get All Courts

Gets a list of app possible appeals courts who can have cases appealed to SCOTUS

curl request
$ curl 'http://localhost:8080/courts' -i -X GET
request
GET /courts HTTP/1.1
Host: localhost:8080
Table 25. response fields
Path Type Description

[]

Array

A list of all appeals courts

[].id

Number

Unique Id of the appeals court

[].shortName

String

Short name or abbreviation for the court

[].name

String

Full name of the court

response body
[ {
  "id" : 1,
  "shortName" : "CA01",
  "name" : "First Circuit Court of Appeals"
}, {
  "id" : 2,
  "shortName" : "CA05",
  "name" : "Fifth Circuit Court of Appeals"
}, {
  "id" : 3,
  "shortName" : "CA09",
  "name" : "Ninth Circuit Court of Appeals"
}, {
  "id" : 4,
  "shortName" : "Texas",
  "name" : "Texas Supreme Court"
}, {
  "id" : 5,
  "shortName" : "Federal",
  "name" : "Federal Circuit Court"
}, {
  "id" : 6,
  "shortName" : "Montana",
  "name" : "Montana Supreme Court"
}, {
  "id" : 7,
  "shortName" : "DC Circuit",
  "name" : "Washington DC Circuit Court"
} ]

Get Court By Id

Gets info about a specific court by the unique Id.

curl request
$ curl 'http://localhost:8080/courts/3' -i -X GET
request
GET /courts/3 HTTP/1.1
Host: localhost:8080
Table 26. /courts/{courtId}
Parameter Description

courtId

Id of the court

Table 27. response fields
Path Type Description

id

Number

Unique Id of the appeals court

shortName

String

Short name or abbreviation for the court

name

String

Full name of the court

response body
{
  "id" : 3,
  "shortName" : "CA09",
  "name" : "Ninth Circuit Court of Appeals"
}

Opinions

Every case that SCOTUS rules on has opinions. These are legal justifications of the ruling. There can be multiple opinions in a single case as justices sometimes disagree, or agree for different reasons.

Get Opinions by Case Id

This gets all opinions associated with a specific case

curl request
$ curl 'http://localhost:8080/opinions/case/10' -i -X GET
request
GET /opinions/case/10 HTTP/1.1
Host: localhost:8080
Table 28. /opinions/case/{caseId}
Parameter Description

caseId

Id of the Case to search for

Table 29. response fields
Path Type Description

[]

Array

An array with the opinions tied to this case Id

[].id

Number

Unique Id for the Opinion

[].caseId

Number

Unique Id for the Case the opinions is for

[].opinionType

String

Enum that Describes what type of opinion it is

[].summary

String

A summary of the opinion highlighting the key points in some detail

[].justices[]

Array

The justices that joined this opinion

[].justices[].justiceId

Number

Unique Id for the justice

[].justices[].isAuthor

Boolean

Boolean flag to determine if this justice authored the opinion

[].justices[].justiceName

String

Name of the justice

response body
[ {
  "id" : 500,
  "caseId" : 10,
  "opinionType" : "MAJORITY",
  "summary" : "Democracy and legislation are important. But individuals who are harmed should not have to wait for legislative action. A ruling against same sex couples would leave long lasting injuries unjustified under the 14th Amendment. Same sex couples may now exercise the  fundamental right to marry in all states",
  "justices" : [ {
    "justiceId" : 50,
    "isAuthor" : true,
    "justiceName" : "Anthony Kennedy"
  }, {
    "justiceId" : 51,
    "isAuthor" : false,
    "justiceName" : "Ruth Bader Ginsburg"
  }, {
    "justiceId" : 52,
    "isAuthor" : false,
    "justiceName" : "Elena Kagan"
  }, {
    "justiceId" : 53,
    "isAuthor" : false,
    "justiceName" : "Sonya Sotomayor"
  }, {
    "justiceId" : 54,
    "isAuthor" : false,
    "justiceName" : "Steven Breyer"
  } ]
}, {
  "id" : 501,
  "caseId" : 10,
  "opinionType" : "DISSENT",
  "summary" : "Judges have the power to say what the law is, not what the law should be. The constitution does not provide a theory on marriage, so states should be free to define it. Roberts points out that the majority applies the substantive due process test, but that is an extreme remedy. Roberts quotes the Justice Curtis' dissent in Dred Scott",
  "justices" : [ {
    "justiceId" : 55,
    "isAuthor" : true,
    "justiceName" : "John Roberts"
  }, {
    "justiceId" : 56,
    "isAuthor" : false,
    "justiceName" : "Antonin Scalia"
  }, {
    "justiceId" : 57,
    "isAuthor" : false,
    "justiceName" : "Clerence Thomas"
  } ]
}, {
  "id" : 502,
  "caseId" : 10,
  "opinionType" : "DISSENT",
  "summary" : "Joins Chief Justices Roberts' dissent in full. Today's decree means that the true rulers of 320 Million Americans are the 9 justices on the Supreme Court. Public debate over same sex marriage was American democracy at its best until the court stepped in. The Majority decision accuses every state of violating the constitution for the last 135 years because of a fundamental right they just discovered.",
  "justices" : [ {
    "justiceId" : 56,
    "isAuthor" : true,
    "justiceName" : "Anton Scalia"
  }, {
    "justiceId" : 57,
    "isAuthor" : false,
    "justiceName" : "Clerence Thomas"
  } ]
}, {
  "id" : 503,
  "caseId" : 10,
  "opinionType" : "DISSENT",
  "summary" : "The majority decision is at odds with the constitution and the principals the nation was build on. The Due Process clause should not be used to create substantive rights. Thomas also does not buy that same sex couples are deprived of liberty if their marriage is not recognized.",
  "justices" : [ {
    "justiceId" : 57,
    "isAuthor" : true,
    "justiceName" : "Clerence Thomas"
  }, {
    "justiceId" : 56,
    "isAuthor" : false,
    "justiceName" : "Anton Scalia"
  } ]
}, {
  "id" : 504,
  "caseId" : 10,
  "opinionType" : "DISSENT",
  "summary" : "Constitution does not and should not answer the questions around same sex marriage. Rights protected by the due process clause should only be those deeply rooted in the nations history and tradition. No country allowed same sex marriage until 2000. Traditionally marriage is linked to procreation. While that understanding may not hold true today, states should be allowed to try to hang onto that tradition. Alito muses about how anyone who disagrees will be labeled a bigot and treated as such by employers, government, and schools.",
  "justices" : [ {
    "justiceId" : 58,
    "isAuthor" : true,
    "justiceName" : "Samuel Alito"
  }, {
    "justiceId" : 57,
    "isAuthor" : false,
    "justiceName" : "Clerence Thomas"
  }, {
    "justiceId" : 56,
    "isAuthor" : false,
    "justiceName" : "Anton Scalia"
  } ]
} ]

Get Opinion by Id

This gets a single opinion by its unique Id

curl request
$ curl 'http://localhost:8080/opinions/500' -i -X GET
request
GET /opinions/500 HTTP/1.1
Host: localhost:8080
Table 30. /opinions/{id}
Parameter Description

id

Id of the opinion

Table 31. response fields
Path Type Description

id

Number

Unique Id for the Opinion

caseId

Number

Unique Id for the Case the opinions is for

opinionType

String

Enum that Describes what type of opinion it is

summary

String

A summary of the opinion highlighting the key points in some detail

justices[]

Array

The justices that joined this opinion

justices[].justiceId

Number

Unique Id for the justice

justices[].isAuthor

Boolean

Boolean flag to determine if this justice authored the opinion

justices[].justiceName

String

Name of the justice

response body
{
  "id" : 500,
  "caseId" : 10,
  "opinionType" : "MAJORITY",
  "summary" : "Democracy and legislation are important. But individuals who are harmed should not have to wait for legislative action. A ruling against same sex couples would leave long lasting injuries unjustified under the 14th Amendment. Same sex couples may now exercise the  fundamental right to marry in all states",
  "justices" : [ {
    "justiceId" : 50,
    "isAuthor" : true,
    "justiceName" : "Anthony Kennedy"
  }, {
    "justiceId" : 51,
    "isAuthor" : false,
    "justiceName" : "Ruth Bader Ginsburg"
  }, {
    "justiceId" : 52,
    "isAuthor" : false,
    "justiceName" : "Elena Kagan"
  }, {
    "justiceId" : 53,
    "isAuthor" : false,
    "justiceName" : "Sonya Sotomayor"
  }, {
    "justiceId" : 54,
    "isAuthor" : false,
    "justiceName" : "Steven Breyer"
  } ]
}

Tags

Tags are associated with cases to denote cases with similar characteristics. Tags can be used to group like cases or as part of advanced searching.

Get All Tags

Get a list of all available tags

curl request
$ curl 'http://localhost:8080/tags' -i -X GET
request
GET /tags HTTP/1.1
Host: localhost:8080
Table 32. response fields
Path Type Description

[]

Array

An array of all available tags

[].id

Number

Unique Id for the tag

[].name

String

The name of the Tag

[].description

String

A brief description of the tag

response body
[ {
  "id" : 1,
  "name" : "tag1",
  "description" : "The first test tag"
}, {
  "id" : 2,
  "name" : "tag2",
  "description" : "The second test tag"
}, {
  "id" : 3,
  "name" : "LGBTQ",
  "description" : "Cases related to Gay, Lesbian, Trans, and Queer rights"
} ]

Get Tag Details

Gets a specific tag and a list of all cases associated with the tag

curl request
$ curl 'http://localhost:8080/tags/3' -i -X GET
request
GET /tags/3 HTTP/1.1
Host: localhost:8080
Table 33. /tags/{id}
Parameter Description

id

Id of the tag

Table 34. response fields
Path Type Description

id

Number

Unique Id for the tag

name

String

The name of the Tag

description

String

A brief description of the tag

cases

Array

List of cases associated with the tag (see case documentation)

response body
{
  "id" : 3,
  "name" : "LGBTQ",
  "description" : "Cases related to Gay, Lesbian, Trans, and Queer rights",
  "cases" : [ ]
}