GLEIF API: Get legal entity
Looks up the official LEI record for a company name or LEI, optionally narrowing namesakes by registered country. Prefers active records with the closest name.
Unofficial. Not affiliated with or endorsed by GLEIF.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Company, required
company Company legal name or 20-character LEI, for example Siemens AG or HWUPKR0MPOU8FGXBT394.
Apple Inc.
- Country optional
country Registered country name or two-letter code, for example Germany or DE.
(default)
Input as JSON
{ "company": "Apple Inc."}Output
{ "lei": "HWUPKR0MPOU8FGXBT394", "link": "https://search.gleif.org/#/record/HWUPKR0MPOU8FGXBT394" , "country": "United States of America", "legal_form": "For-Profit Corporation General Stock", "legal_name": "Apple Inc.", "other_names": [ "Apple Computer, Inc." ], "direct_parent": null, "entity_status": "Active", "legal_address": "C/O C T Corporation System, 330 N. Brand Blvd, Suite 700, Glendale, CA, 91203, United States of America" , "ultimate_parent": null, "next_renewal_date": "2027-03-08", "headquarters_address": "One Apple Park Way, Cupertino, CA, 95014, United States of America", "registration_authority": "Secretary of State — Business Entity Records", "lei_registration_status": "Issued", "initial_registration_date": "2012-06-06", "local_registration_number": "806592"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"gleif.org/get_legal_entity","input":{"company":"Apple Inc."}}' # 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": "gleif.org/get_legal_entity" , "input": { "company": "Apple Inc." }})# 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": "gleif.org/get_legal_entity" , "input": { "company": "Apple Inc." } }), 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 gleif.org/get_legal_entity# with {"company":"Apple Inc."}"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": [ "company" ], "properties": { "company": { "type": "string", "description": "Company legal name or 20-character LEI, for example Siemens AG or HWUPKR0MPOU8FGXBT394." }, "country": { "type": "string", "default": "", "description": "Registered country name or two-letter code, for example Germany or DE." } }}Output schema
{ "type": "object", "required": [ "legal_name", "lei", "entity_status", "lei_registration_status", "legal_address", "headquarters_address", "country", "legal_form", "registration_authority", "local_registration_number", "initial_registration_date", "next_renewal_date", "direct_parent", "ultimate_parent", "other_names", "link" ], "properties": { "lei": { "type": "string", "description": "Legal Entity Identifier." }, "link": { "type": "string", "description": "Record on GLEIF public search." }, "country": { "type": [ "string", "null" ], "description": "Registered country name." }, "legal_form": { "type": [ "string", "null" ], "description": "Legal form name." }, "legal_name": { "type": "string", "description": "Official registered name." }, "other_names": { "type": "array", "items": { "type": "string" }, "description": "Other reported names." }, "direct_parent": { "type": [ "object", "null" ], "required": [ "name", "lei" ], "properties": { "lei": { "type": [ "string", "null" ], "description": "Parent LEI." }, "name": { "type": [ "string", "null" ], "description": "Parent legal name." } }, "description": "Reported direct parent; null if none reported.", "additionalProperties": false }, "entity_status": { "type": [ "string", "null" ], "description": "Legal entity status in words." }, "legal_address": { "type": [ "string", "null" ], "description": "Single-line registered legal address." }, "ultimate_parent": { "type": [ "object", "null" ], "required": [ "name", "lei" ], "properties": { "lei": { "type": [ "string", "null" ], "description": "Parent LEI." }, "name": { "type": [ "string", "null" ], "description": "Parent legal name." } }, "description": "Reported ultimate parent; null if none reported.", "additionalProperties": false }, "next_renewal_date": { "type": [ "string", "null" ], "description": "Next LEI renewal date (YYYY-MM-DD)." }, "headquarters_address": { "type": [ "string", "null" ], "description": "Single-line headquarters address." }, "registration_authority": { "type": [ "string", "null" ], "description": "Name of the registering authority." }, "lei_registration_status": { "type": [ "string", "null" ], "description": "LEI registration status in words." }, "initial_registration_date": { "type": [ "string", "null" ], "description": "Date the LEI was first registered (YYYY-MM-DD)." }, "local_registration_number": { "type": [ "string", "null" ], "description": "Local business registration number." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
gleif.org/get_legal_entity- Returns
- legal name, LEI, status, addresses, country, legal form, registration authority, registration dates, parents, other names
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 gleif.org/get_legal_entity with the inputs above.
Ask your agent
- Find the official LEI record for Siemens AG registered in Germany
- What is the legal entity identifier for Toyota Motor Corporation?
- Look up the LEI 5493001KJTIIGC8Y1R12 and show its registration status and addresses
- Get the registered legal form and registration authority for Nestle SA based in CH
- Which companies named Acme Holdings are registered in the US, and what are their LEI records?
See more
All GLEIF methodsFinds a company's reported direct and ultimate accounting-consolidation parents, the reasons parents are not reported, and direct children in the GLEIF LEI system.
gleif.org/get_corporate_parentsLooks up a French company by name, SIREN or SIRET and returns its registration, directors and latest public financial figures. Financial figures are null when not published; a city or postcode helps pick the right namesake.
annuaire-entreprises.data.gouv.fr/get_companyLooks up a UK company on Companies House by name, company number or Companies House link and returns its public registration details; a name prefers an active exact match.
company-information.service.gov.uk/get_company_profileSearches the UK Companies House register by company name and returns each company's status, type, incorporation date and registered office address, in result order.
find-and-update.company-information.service.gov.uk/search_companiesLooks up a company on North Data by name, optionally narrowed by country or city, and returns its identification, address, people and register events.
northdata.com/get_company_profileGets the public overview of a LinkedIn company from its name or company page link. Details not shown publicly are null.
linkedin.com/get_company_profileFinds a public company by name or ticker in SEC EDGAR and lists its filings, newest first, optionally narrowed by filing type and filing date.
sec.gov/get_company_filingsLooks up a public company by name or ticker on SEC EDGAR and returns its reported annual or quarterly financial figures from XBRL company facts. Quarterly flows are derived from year-to-date totals when no quarterly figure is filed. Unavailable figures are null.
sec.gov/get_company_financials