Espacenet API: Get patent family
Finds a patent family on Espacenet by publication number or invention title and returns its publications, applicants, priority date and reported legal events. Legal-event coverage varies by country; a grant alone does not establish that a patent is currently in force.
Unofficial. Not affiliated with or endorsed by Espacenet.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Patent, required
patent Publication number or invention title, for example US10000000B2 or Coherent LADAR using intra-pixel quadrature detection.
Coherent LADAR using intra-pixel quadrature detection
Input as JSON
{ "patent": "Coherent LADAR using intra-pixel quadrature detection"}Output
{ "title": "Coherent LADAR using intra-pixel quadrature detection", "family": [ { "kind": "application", "country": "European Patent Office", "legal_status": "Granted; current status not confirmed", "espacenet_link": "https://worldwide.espacenet.com/patent/search/family/055456961/publication/EP3268771A1" , "publication_date": "2018-01-17", "publication_number": "EP3268771A1" }, { "kind": "granted", "country": "European Patent Office", "legal_status": "Granted; current status not confirmed", "espacenet_link": "https://worldwide.espacenet.com/patent/search/family/055456961/publication/EP3268771B1" , "publication_date": "2022-06-29", "publication_number": "EP3268771B1" }, { "kind": "application", "country": "International (WIPO)", "legal_status": "International application; national status varies", "espacenet_link": "https://worldwide.espacenet.com/patent/search/family/055456961/publication/WO2016144528A1" , "publication_date": "2016-09-15", "publication_number": "WO2016144528A1" } ], "applicants": [ "RAYTHEON CO [US]" ], "priority_date": "2015-03-10", "espacenet_link": "https://worldwide.espacenet.com/patent/search/family/055456961/publication/US10000000B2" , "overall_status": "Granted publications in 4 jurisdictions; applications without a recorded grant in 0; recorded lapses in 0. Current protection requires country-level confirmation.", "latest_legal_events": [ { "date": "2026-04-20", "event": "Annual fee paid to national office [announced via postgrant information from national office to epo]", "country": "France" }, { "date": "2026-04-13", "event": "Annual fee paid to national office [announced via postgrant information from national office to epo]", "country": "Germany" }, { "date": "2026-04-09", "event": "Annual fee paid to national office [announced via postgrant information from national office to epo]", "country": "United Kingdom" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"espacenet.com/get_patent_family","input":{"patent":"Coherent LADAR using intra-pixel quadrature detection"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "espacenet.com/get_patent_family" , "input": { "patent": "Coherent LADAR using intra-pixel quadrature detection" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "espacenet.com/get_patent_family" , "input": { "patent": "Coherent LADAR using intra-pixel quadrature detection" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run espacenet.com/get_patent_family# with {"patent":"Coherent LADAR using intra-pixel quadrature detection"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "patent" ], "properties": { "patent": { "type": "string", "examples": [ "US10000000B2" ], "minLength": 1, "description": "Publication number or invention title, for example US10000000B2 or Coherent LADAR using intra-pixel quadrature detection." } }}Output schema
{ "type": "object", "required": [ "title", "applicants", "priority_date", "overall_status", "family", "latest_legal_events", "espacenet_link" ], "properties": { "title": { "type": [ "string", "null" ] }, "family": { "type": "array", "items": { "type": "object", "required": [ "country", "publication_number", "kind", "publication_date", "legal_status", "espacenet_link" ], "properties": { "kind": { "type": "string" }, "country": { "type": "string" }, "legal_status": { "type": "string" }, "espacenet_link": { "type": "string" }, "publication_date": { "type": [ "string", "null" ] }, "publication_number": { "type": "string" } } } }, "applicants": { "type": "array", "items": { "type": "string" } }, "priority_date": { "type": [ "string", "null" ] }, "espacenet_link": { "type": "string" }, "overall_status": { "type": "string" }, "latest_legal_events": { "type": "array", "items": { "type": "object", "required": [ "date", "country", "event" ], "properties": { "date": { "type": [ "string", "null" ] }, "event": { "type": "string" }, "country": { "type": "string" } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
espacenet.com/get_patent_family- Returns
- title, applicants, priority date, overall status, family publications with legal status, latest legal events, Espacenet link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method espacenet.com/get_patent_family with the inputs above.
Ask your agent
- Look up the patent family for EP3456789A1 on Espacenet and list every publication along with its legal status.
- Who are the applicants and what's the priority date for WO2019123456A1? I also need the other family members.
- Find the patent family for the invention titled "Lithium-sulfur battery cathode with graphene interlayer" and show the latest legal events reported.
- I'm doing freedom-to-operate research on US9876543B2. Pull up its family members across countries and any recent legal events, like lapses or renewals.
- Use espacenet.com to check the overall status of the family that includes JP2018512345A, and give me the link to the family page.
See more
Gets one public patent or published application by number, title, or Google Patents link, with claims, citations, family and classifications.
patents.google.com/get_patentFinds Google Patents about an invention. Optional filters: inventor, assignee, country, filing date and publication stage. Legal status is the site's estimate.
patents.google.com/search_patentsSummarizes a company's public patents on Google Patents within filing dates (optionally narrowed by topic words): total found, filings per year, top technology areas and inventors across the 50 most recent records, and the most recent patents.
patents.google.com/list_company_patentsGets the full PubMed abstract and publication details for one article by title, PubMed link, or PubMed number (PMID). A title is searched in PubMed titles first and must closely match a found article. Some articles have no abstract or free full text.
pubmed.ncbi.nlm.nih.gov/get_articleFinds a paper on Semantic Scholar by title, DOI or Semantic Scholar link and returns its abstract, one-sentence summary, authors, publication details, citation counts and a free PDF link when there is one.
semanticscholar.org/get_paperGets the current status and prosecution history of one U.S. trademark by name, serial number or registration number. For a name, it picks the newest live matching mark (or the one matching the owner) and lists the other matches.
uspto.gov/get_trademark_statusReturns the full public record of a ClinicalTrials.gov study, looked up by NCT number or by title (closest registered title for ambiguous titles).
clinicaltrials.gov/get_trialFinds US trademark filings matching a brand name, optionally limited to likely goods or service classes. Exact marks come first, similar marks follow; not a legal clearance opinion.
uspto.gov/search_trademarks