Endpoints
API Reference
Complete reference for all Facta legal research tools.
Base URL
https://facta.tech/api/legalREST APIhttps://facta.tech/mcpMCP (JSON-RPC)Authentication
Include your API key in the request headers:
REST API
Authorization: Bearer your-api-keyMCP
FACTA_API_KEY: your-api-keySign in to get your API key.
POST
legal_find
Find legal sources (cases, statutes, regulations). Returns ranked candidates.
Parameters
| Name | Type | Description |
|---|---|---|
queryrequired | string | Search query (e.g., 'fair use copyright') |
jurisdiction | string | Jurisdiction ID from resolve_jurisdiction |
numResults | number | Number of results 1-25 (default: 10) |
Request
{
"query": "first amendment free speech",
"jurisdiction": "us-federal",
"numResults": 5
}Response
{
"success": true,
"query": "first amendment free speech",
"jurisdiction": "us-federal",
"found": 5,
"candidates": [
{
"url": "https://law.cornell.edu/...",
"title": "Brandenburg v. Ohio",
"snippet": "The constitutional guarantees of free speech...",
"source": "law.cornell.edu"
}
],
"hint": "Use legal_verify on each candidate before citing."
}POST
legal_verify
Verify a candidate legal source. Returns confidence score 0-1. Score >= 0.6 means verified.
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | URL to verify from legal_find results |
citation | string | Citation text to look for in document |
Request
{
"url": "https://law.cornell.edu/supremecourt/text/395/444",
"citation": "Brandenburg v. Ohio"
}Response
{
"success": true,
"verified": true,
"score": 0.85,
"threshold": 0.6,
"url": "https://law.cornell.edu/supremecourt/text/395/444",
"citation": "Brandenburg v. Ohio",
"signals": ["citation_match", "court_reference", "official_source"],
"hint": "Source verified. Safe to cite."
}POST
legal_get_full_text
Get full text content of a legal document with optional highlights and summary.
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | URL of verified legal document |
maxCharacters | number | Max characters to return (default: 10000) |
highlightQuery | string | Query to extract relevant highlights |
summaryQuery | string | Query for generating a summary |
Request
{
"url": "https://law.cornell.edu/supremecourt/text/395/444",
"highlightQuery": "What is the holding?",
"maxCharacters": 5000
}Response
{
"success": true,
"url": "https://law.cornell.edu/supremecourt/text/395/444",
"title": "Brandenburg v. Ohio",
"text": "Per Curiam. The appellant, a leader of a Ku Klux Klan group...",
"highlights": [
"the constitutional guarantees of free speech and free press do not permit a State to forbid or proscribe advocacy..."
],
"summary": null,
"characterCount": 4823
}POST
legal_find_similar
Find cases and documents similar to a given legal source.
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | URL of a legal document to find similar sources for |
jurisdiction | string | Jurisdiction ID to filter results |
numResults | number | Number of results 1-25 (default: 10) |
startPublishedDate | string | ISO date to find only newer documents |
Request
{
"url": "https://law.cornell.edu/supremecourt/text/395/444",
"numResults": 5,
"startPublishedDate": "2000-01-01"
}Response
{
"success": true,
"sourceUrl": "https://law.cornell.edu/supremecourt/text/395/444",
"found": 5,
"similarSources": [
{
"url": "https://law.cornell.edu/supremecourt/text/562/443",
"title": "Snyder v. Phelps",
"snippet": "The First Amendment shields those who engage...",
"publishedDate": "2011-03-02",
"source": "law.cornell.edu"
}
],
"hint": "Use legal_verify before citing any of these."
}POST
legal_extract_citations
Extract all legal citations and references from a document.
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | URL of legal document to extract citations from |
Request
{
"url": "https://law.cornell.edu/supremecourt/text/395/444"
}Response
{
"success": true,
"url": "https://law.cornell.edu/supremecourt/text/395/444",
"title": "Brandenburg v. Ohio",
"totalCitations": 12,
"citations": {
"cases": [
{ "type": "usReporter", "citation": "354 U.S. 476", "count": 2 },
{ "type": "usReporter", "citation": "341 U.S. 494", "count": 1 }
],
"statutes": [
{ "type": "usc", "citation": "18 U.S.C. § 2385", "count": 1 }
],
"regulations": []
},
"externalLinks": [
"https://law.cornell.edu/supremecourt/text/354/476"
],
"hint": "Use legal_find with these citations to locate the original sources."
}POST
legal_deep_research
Comprehensive legal research with multiple query variations.
Parameters
| Name | Type | Description |
|---|---|---|
queryrequired | string | Primary search query |
additionalQueries | string[] | Additional query variations (up to 5) |
jurisdiction | string | Jurisdiction ID to filter results |
numResults | number | Number of results 1-25 (default: 10) |
Request
{
"query": "non-compete agreement enforceability",
"additionalQueries": [
"covenant not to compete",
"restrictive covenant employment"
],
"jurisdiction": "california"
}Response
{
"success": true,
"query": "non-compete agreement enforceability",
"additionalQueries": ["covenant not to compete", "restrictive covenant employment"],
"jurisdiction": "california",
"searchType": "deep",
"found": 10,
"candidates": [
{
"url": "https://law.cornell.edu/...",
"title": "Edwards v. Arthur Andersen LLP",
"snippet": "California Business and Professions Code section 16600...",
"highlights": ["non-competition agreements are void in California"],
"source": "law.cornell.edu"
}
],
"hint": "Use legal_verify on each candidate before citing."
}POST
resolve_jurisdiction
Search for a jurisdiction by name. Returns IDs for use in other tools.
Parameters
| Name | Type | Description |
|---|---|---|
namerequired | string | Jurisdiction name (e.g., 'California', 'US Federal', 'NY') |
Request
{
"name": "California"
}Response
{
"success": true,
"query": "California",
"found": 2,
"jurisdictions": [
{
"id": "california",
"name": "California",
"level": "state",
"state": "CA"
},
{
"id": "9th-circuit",
"name": "9th Circuit (includes CA)",
"level": "federal-circuit",
"state": null
}
],
"hint": "Use the 'id' field as the 'jurisdiction' parameter in legal_find."
}