{
"statusCode": 402,
"error": {
"code": "insufficient_funds",
"message": "Not enough credits for a global search."
}
}
{
"statusCode": 429,
"error": {
"code": "rate_limited",
"message": "Too many global searches this minute for this account. Retry shortly."
}
}
{
"statusCode": 503,
"error": {
"code": "search_timeout",
"message": "The global search took too long to complete."
}
}
Search
Find a company across countries from its name
Takes what you know about a company in one free-text query (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to /v2/company, a match strength and an explanation of the evidence.
The search is agentic and bounded: it reads the legal form and any address, checks Topograph’s index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds.
Countries.countries limits the search to some countries: ["US"] searches every US state and nothing else, ["US-DE", "US-NY"] two states, ["CA"] every Canadian jurisdiction (the federal register CA-FED and the provinces and territories, CA-ON, CA-QC…), ["DE", "AT", "CH"] three countries. Nothing outside them is searched or returned.
Status.resolved: one strong match, the candidate with selected: true, which you can use without a person checking. ambiguous: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. not_found: nothing acceptable; reason says why, and likelyCountryCode names the country the evidence pointed to even when Topograph does not cover it or it is outside countries.
Company status. A candidate’s isActive is indicative only and may be out of date; read company.status from /v2/company before relying on it.
Alpha. The request and response shapes may still change.
Billing. A search is billed only when it succeeds: status: resolved, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. usage.priceCents shows what was charged; the price is on the pricing page.
Streaming. With stream: true and Accept: text/event-stream, the endpoint emits progress events (what the search is doing right now, and the candidates found so far), then one complete event with the final response, or an error event.
What you know about the company, in one string: the name first, then anything else, separated by commas ("Bamberger GmbH, Wien", "MFG Investments EOOD, from a UK filing", "Altria Group Inc., Richmond VA, altria.com", or an LEI alone). The name, the address, an identifier, a website and the countries it names are read out of it for you, and returned in query.
Search only these countries: Topograph country codes, US-DE for one US state, US for every US state, CA-FED for the Canadian federal register, CA-ON for one Canadian province or territory, CA for every Canadian jurisdiction. Nothing outside them is searched or returned. Unlike a country named in query, which only says where you think the company is, this is a filter. Omit it to search every country.
Leave out companies the search sees as inactive. It filters on the same indicative status as isActive: a company whose status is unknown is kept, so a candidate is not proof that the company is active.
Return only candidates explicitly reported as active, excluding unknown statuses. Implies activeOnly. Status remains indicative and may come from a periodic snapshot.
Streaming mode: Server-Sent Events with progress events (the steps so far, and the candidates found so far), one complete event carrying the final response, or an error event. Set Accept to text/event-stream.
Example:
false
Response
The candidates and their explanations (JSON), or the SSE stream when stream is true.
resolved: one strong match, the selected candidate. ambiguous: several plausible candidates (including namesakes in one register the evidence cannot tell apart), or one weak one. not_found: nothing acceptable; see reason.
The country the evidence points to, even when the company could not be confirmed, Topograph does not cover its register, or it is outside countries.
Example:
"KY"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Topograph","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/semaphore/ChRp9mNNuCx3xt6W/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=ChRp9mNNuCx3xt6W\u0026q=85\u0026s=e6ce7b79992dddb6e7039eeceb3a0789","dark":"https://mintcdn.com/semaphore/ChRp9mNNuCx3xt6W/logo/logo-white.svg?fit=max\u0026auto=format\u0026n=ChRp9mNNuCx3xt6W\u0026q=85\u0026s=d2f2d6ec4b9b9ce743f9fb636e960c61"},"favicon":"https://mintcdn.com/semaphore/VQGxb8ZspQ9IKdXE/logo/icon-dark.svg?fit=max\u0026auto=format\u0026n=VQGxb8ZspQ9IKdXE\u0026q=85\u0026s=7696fde22b7a31bdfaf7bc85ac494e2c","navbar":{"links":[{"href":"https://topograph.co/pricing","label":"Pricing"},{"href":"https://app.topograph.co","label":"Dashboard"},{"href":"https://status.topograph.co","label":"Status"},{"href":"mailto:contact@topograph.co","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/gettopograph","linkedin":"https://www.linkedin.com/company/topograph-data"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"semaphore","hasAudioNarration":false,"actualSubdomain":"semaphore","customDomains":["docs.topograph.co"],"gitSource":{"type":"github","owner":"getsemaphore","repo":"semaphore-api","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":false,"agentFeedback":true},"entitlements":{},"buildId":"6af2da3b926281184454ae96","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Documentation","count":40},{"language":"default","tag":"API Reference","count":37},{"language":"default","tag":"Core Features","count":22},{"language":"default","tag":"Behavior \u0026 Operations","count":8},{"language":"default","tag":"Billing Notifications","count":6},{"language":"default","tag":"Monitors","count":5},{"language":"default","tag":"Vault","count":5},{"language":"default","tag":"Workspaces","count":5},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Data","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/search/global-search","slug":"/api-reference/search/global-search","pageMetadata":{"openapi":"post /v2/search/global","title":"Find a company across countries from its name","description":"Takes what you know about a company in one free-text `query` (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to `/v2/company`, a match strength and an explanation of the evidence.\n\nThe search is agentic and bounded: it reads the legal form and any address, checks Topograph's index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds.\n\n**Countries.** `countries` limits the search to some countries: `[\"US\"]` searches every US state and nothing else, `[\"US-DE\", \"US-NY\"]` two states, `[\"CA\"]` every Canadian jurisdiction (the federal register `CA-FED` and the provinces and territories, `CA-ON`, `CA-QC`…), `[\"DE\", \"AT\", \"CH\"]` three countries. Nothing outside them is searched or returned.\n\n**Status.** `resolved`: one strong match, the candidate with `selected: true`, which you can use without a person checking. `ambiguous`: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. `not_found`: nothing acceptable; `reason` says why, and `likelyCountryCode` names the country the evidence pointed to even when Topograph does not cover it or it is outside `countries`.\n\n**Company status.** A candidate's `isActive` is indicative only and may be out of date; read `company.status` from `/v2/company` before relying on it.\n\n**Alpha.** The request and response shapes may still change.\n\n**Billing.** A search is billed only when it succeeds: `status: resolved`, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. `usage.priceCents` shows what was charged; the price is on the pricing page.\n\n**Streaming.** With `stream: true` and `Accept: text/event-stream`, the endpoint emits `progress` events (what the search is doing right now, and the candidates found so far), then one `complete` event with the final response, or an `error` event.","href":"/api-reference/search/global-search"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Takes what you know about a company in one free-text \", _jsx(_components.code, {\n children: \"query\"\n }), \" (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to \", _jsx(_components.code, {\n children: \"/v2/company\"\n }), \", a match strength and an explanation of the evidence.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"The search is agentic and bounded: it reads the legal form and any address, checks Topograph’s index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Countries.\"\n }), \" \", _jsx(_components.code, {\n children: \"countries\"\n }), \" limits the search to some countries: \", _jsx(_components.code, {\n children: \"[\\\"US\\\"]\"\n }), \" searches every US state and nothing else, \", _jsx(_components.code, {\n children: \"[\\\"US-DE\\\", \\\"US-NY\\\"]\"\n }), \" two states, \", _jsx(_components.code, {\n children: \"[\\\"CA\\\"]\"\n }), \" every Canadian jurisdiction (the federal register \", _jsx(_components.code, {\n children: \"CA-FED\"\n }), \" and the provinces and territories, \", _jsx(_components.code, {\n children: \"CA-ON\"\n }), \", \", _jsx(_components.code, {\n children: \"CA-QC\"\n }), \"…), \", _jsx(_components.code, {\n children: \"[\\\"DE\\\", \\\"AT\\\", \\\"CH\\\"]\"\n }), \" three countries. Nothing outside them is searched or returned.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Status.\"\n }), \" \", _jsx(_components.code, {\n children: \"resolved\"\n }), \": one strong match, the candidate with \", _jsx(_components.code, {\n children: \"selected: true\"\n }), \", which you can use without a person checking. \", _jsx(_components.code, {\n children: \"ambiguous\"\n }), \": several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. \", _jsx(_components.code, {\n children: \"not_found\"\n }), \": nothing acceptable; \", _jsx(_components.code, {\n children: \"reason\"\n }), \" says why, and \", _jsx(_components.code, {\n children: \"likelyCountryCode\"\n }), \" names the country the evidence pointed to even when Topograph does not cover it or it is outside \", _jsx(_components.code, {\n children: \"countries\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Company status.\"\n }), \" A candidate’s \", _jsx(_components.code, {\n children: \"isActive\"\n }), \" is indicative only and may be out of date; read \", _jsx(_components.code, {\n children: \"company.status\"\n }), \" from \", _jsx(_components.code, {\n children: \"/v2/company\"\n }), \" before relying on it.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Alpha.\"\n }), \" The request and response shapes may still change.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Billing.\"\n }), \" A search is billed only when it succeeds: \", _jsx(_components.code, {\n children: \"status: resolved\"\n }), \", one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. \", _jsx(_components.code, {\n children: \"usage.priceCents\"\n }), \" shows what was charged; the price is on the pricing page.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Streaming.\"\n }), \" With \", _jsx(_components.code, {\n children: \"stream: true\"\n }), \" and \", _jsx(_components.code, {\n children: \"Accept: text/event-stream\"\n }), \", the endpoint emits \", _jsx(_components.code, {\n children: \"progress\"\n }), \" events (what the search is doing right now, and the candidates found so far), then one \", _jsx(_components.code, {\n children: \"complete\"\n }), \" event with the final response, or an \", _jsx(_components.code, {\n children: \"error\"\n }), \" event.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /v2/search/global","title":"Find a company across countries from its name","description":"Takes what you know about a company in one free-text `query` (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to `/v2/company`, a match strength and an explanation of the evidence.\n\nThe search is agentic and bounded: it reads the legal form and any address, checks Topograph's index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds.\n\n**Countries.** `countries` limits the search to some countries: `[\"US\"]` searches every US state and nothing else, `[\"US-DE\", \"US-NY\"]` two states, `[\"CA\"]` every Canadian jurisdiction (the federal register `CA-FED` and the provinces and territories, `CA-ON`, `CA-QC`…), `[\"DE\", \"AT\", \"CH\"]` three countries. Nothing outside them is searched or returned.\n\n**Status.** `resolved`: one strong match, the candidate with `selected: true`, which you can use without a person checking. `ambiguous`: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. `not_found`: nothing acceptable; `reason` says why, and `likelyCountryCode` names the country the evidence pointed to even when Topograph does not cover it or it is outside `countries`.\n\n**Company status.** A candidate's `isActive` is indicative only and may be out of date; read `company.status` from `/v2/company` before relying on it.\n\n**Alpha.** The request and response shapes may still change.\n\n**Billing.** A search is billed only when it succeeds: `status: resolved`, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. `usage.priceCents` shows what was charged; the price is on the pricing page.\n\n**Streaming.** With `stream: true` and `Accept: text/event-stream`, the endpoint emits `progress` events (what the search is doing right now, and the candidates found so far), then one `complete` event with the final response, or an `error` event.","href":"/api-reference/search/global-search"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Takes what you know about a company in one free-text `query` (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to `/v2/company`, a match strength and an explanation of the evidence.\n\nThe search is agentic and bounded: it reads the legal form and any address, checks Topograph's index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds.\n\n**Countries.** `countries` limits the search to some countries: `[\"US\"]` searches every US state and nothing else, `[\"US-DE\", \"US-NY\"]` two states, `[\"CA\"]` every Canadian jurisdiction (the federal register `CA-FED` and the provinces and territories, `CA-ON`, `CA-QC`…), `[\"DE\", \"AT\", \"CH\"]` three countries. Nothing outside them is searched or returned.\n\n**Status.** `resolved`: one strong match, the candidate with `selected: true`, which you can use without a person checking. `ambiguous`: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. `not_found`: nothing acceptable; `reason` says why, and `likelyCountryCode` names the country the evidence pointed to even when Topograph does not cover it or it is outside `countries`.\n\n**Company status.** A candidate's `isActive` is indicative only and may be out of date; read `company.status` from `/v2/company` before relying on it.\n\n**Alpha.** The request and response shapes may still change.\n\n**Billing.** A search is billed only when it succeeds: `status: resolved`, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. `usage.priceCents` shows what was charged; the price is on the pricing page.\n\n**Streaming.** With `stream: true` and `Accept: text/event-stream`, the endpoint emits `progress` events (what the search is doing right now, and the candidates found so far), then one `complete` event with the final response, or an `error` event.","operationId":"GlobalSearchController_globalSearch_v2","parameters":[],"requestBody":"1323d03c-f188-4dbf-a8db-c02932e561a8","responses":{"200":"d54e31ac-e3be-436c-b047-14991ec357ae","400":"3863a101-c7be-414a-a893-c4899bcf674f","402":"08b71a31-292a-4f4b-b608-d0f889f653b5","429":"6b132245-fdc4-4e9d-b1eb-21c89ad6511f","503":"b2b7e934-4dcc-4b88-af03-ee5001d0a2b2"},"security":["ffe1d2c7-3d80-4b0f-b24c-f580af00df43"],"summary":"Find a company across countries from its name","tags":["Search"],"method":"post","type":"path","servers":["264b5887-71c0-4b63-a8e1-341374da51b2"],"path":"/v2/search/global","baseUrlOptions":["https://api.topograph.co"],"title":"Find a company across countries from its name","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"What you know about the company, in one string: the name first, then anything else, separated by commas (\"Bamberger GmbH, Wien\", \"MFG Investments EOOD, from a UK filing\", \"Altria Group Inc., Richmond VA, altria.com\", or an LEI alone). The name, the address, an identifier, a website and the countries it names are read out of it for you, and returned in `query`.","example":"Bamberger GmbH, Wien","isRequired":true,"uniqueKey":"query","typeLabel":"string"},"countries":{"description":"Search only these countries: Topograph country codes, `US-DE` for one US state, `US` for every US state, `CA-FED` for the Canadian federal register, `CA-ON` for one Canadian province or territory, `CA` for every Canadian jurisdiction. Nothing outside them is searched or returned. Unlike a country named in `query`, which only says where you think the company is, this is a filter. Omit it to search every country.","example":["US"],"type":"array","items":{"type":"string","uniqueKey":"countries.items.[INDEX]","typeLabel":"string"},"uniqueKey":"countries","typeLabel":"string[]"},"activeOnly":{"type":"boolean","description":"Leave out companies the search sees as inactive. It filters on the same indicative status as `isActive`: a company whose status is unknown is kept, so a candidate is not proof that the company is active.","example":false,"uniqueKey":"activeOnly","typeLabel":"boolean"},"strictActiveOnly":{"type":"boolean","description":"Return only candidates explicitly reported as active, excluding unknown statuses. Implies activeOnly. Status remains indicative and may come from a periodic snapshot.","example":false,"uniqueKey":"strictActiveOnly","typeLabel":"boolean"},"stream":{"type":"boolean","description":"Streaming mode: Server-Sent Events with `progress` events (the steps so far, and the candidates found so far), one `complete` event carrying the final response, or an `error` event. Set Accept to `text/event-stream`.","example":false,"uniqueKey":"stream","typeLabel":"boolean"}},"required":["query"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"query":"Bamberger GmbH, Wien","countries":["US"],"activeOnly":false,"strictActiveOnly":false,"stream":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"d54e31ac-e3be-436c-b047-14991ec357ae":{"description":"The candidates and their explanations (JSON), or the SSE stream when `stream` is true.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Identifies this search. Quote it when you contact support about it.","example":"global-search-1791216000000-k3x9qa","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"status":{"type":"string","description":"`resolved`: one strong match, the `selected` candidate. `ambiguous`: several plausible candidates (including namesakes in one register the evidence cannot tell apart), or one weak one. `not_found`: nothing acceptable; see `reason`.","enum":["resolved","ambiguous","not_found"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"summary":{"type":"string","description":"The outcome in one sentence.","example":"Found in Austria: Bamberger GmbH (370916s).","isRequired":true,"uniqueKey":"summary","typeLabel":"string"},"query":{"type":"object","description":"What was understood from your input.","required":["name"],"properties":{"name":{"type":"string","description":"The company name read out of your query.","example":"Bamberger GmbH","isRequired":true,"uniqueKey":"query.name","typeLabel":"string"},"latinName":{"type":"string","description":"Latin spelling, when the name is written in another script.","uniqueKey":"query.latinName","typeLabel":"string"},"legalForm":{"type":"string","description":"The legal form found in the name.","example":"GmbH","uniqueKey":"query.legalForm","typeLabel":"string"},"address":{"type":"string","description":"The address read out of your query.","example":"Wien","uniqueKey":"query.address","typeLabel":"string"},"identifier":{"type":"string","description":"A registration, VAT or LEI number read out of your query.","example":"FN 370916s","uniqueKey":"query.identifier","typeLabel":"string"},"website":{"type":"string","description":"A website read out of your query.","example":"altria.com","uniqueKey":"query.website","typeLabel":"string"},"mentionedCountries":{"description":"Countries your query names as where the company is (\"Metinvest B.V., Netherlands\"). A belief the search weighs, not a filter.","example":["NL"],"type":"array","items":{"type":"string","uniqueKey":"query.mentionedCountries.items.[INDEX]","typeLabel":"string"},"uniqueKey":"query.mentionedCountries","typeLabel":"string[]"},"sourceCountry":{"type":"string","description":"The country of the filing the name came from (\"from a UK filing\"). A weak signal: a holder's stated domicile is often not where it is incorporated.","example":"GB","uniqueKey":"query.sourceCountry","typeLabel":"string"}},"isRequired":true,"uniqueKey":"query","typeLabel":"object"},"candidates":{"description":"Candidates, best first. Empty on `not_found`. On `resolved`, the first one is `selected`.","type":"array","items":{"type":"object","properties":{"selected":{"type":"boolean","description":"`true` on the company itself, when the search can stand behind one candidate: a strong match with no plausible rival. At most one candidate is selected, always the first, and only when `status` is `resolved`. Use it without a person checking; when no candidate is selected, show the candidates to a person.","isRequired":true,"uniqueKey":"candidates.items.[INDEX].selected","typeLabel":"boolean"},"match":{"type":"string","description":"`strong`: this is the company, as far as the evidence goes. `possible`: a plausible candidate that needs a second look. Several candidates can be `strong` (the same name in two countries) while none is `selected`.","enum":["strong","possible"],"isRequired":true,"uniqueKey":"candidates.items.[INDEX].match","typeLabel":"enum\u003cstring>"},"countryCode":{"type":"string","description":"Topograph country code; US states as `US-DE`. Use it with `/v2/company`.","example":"AT","isRequired":true,"uniqueKey":"candidates.items.[INDEX].countryCode","typeLabel":"string"},"id":{"type":"string","description":"Registration number in that register, as `/v2/company` expects it.","example":"370916s","isRequired":true,"uniqueKey":"candidates.items.[INDEX].id","typeLabel":"string"},"legalName":{"type":"string","example":"Bamberger GmbH","isRequired":true,"uniqueKey":"candidates.items.[INDEX].legalName","typeLabel":"string"},"explanation":{"type":"object","properties":{"summary":{"type":"string","description":"Why this candidate matched, in one or two sentences.","isRequired":true,"uniqueKey":"candidates.items.[INDEX].explanation.summary","typeLabel":"string"},"reasons":{"description":"The reasons, one per line.","type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"What kind of reason this is.","enum":["legal_form","address","country_hint","source_filing","website","identifier","company_data","public_source","register_match","address_match","distance","other_registration"],"isRequired":true,"uniqueKey":"candidates.items.[INDEX].explanation.reasons.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"The reason as a sentence you can show a user.","example":"The register in Austria lists it under exactly that name","isRequired":true,"uniqueKey":"candidates.items.[INDEX].explanation.reasons.items.[INDEX].text","typeLabel":"string"},"countryCode":{"type":"string","description":"The country the reason is about.","example":"AT","uniqueKey":"candidates.items.[INDEX].explanation.reasons.items.[INDEX].countryCode","typeLabel":"string"},"url":{"type":"string","description":"`public_source` only: the page that states it.","example":"https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany\u0026CIK=0000764180","uniqueKey":"candidates.items.[INDEX].explanation.reasons.items.[INDEX].url","typeLabel":"string"}},"required":["kind","text"],"uniqueKey":"candidates.items.[INDEX].explanation.reasons.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"candidates.items.[INDEX].explanation.reasons","typeLabel":"object[]"}},"required":["summary","reasons"],"isRequired":true,"uniqueKey":"candidates.items.[INDEX].explanation","typeLabel":"object"},"legalNameInEnglish":{"type":"string","uniqueKey":"candidates.items.[INDEX].legalNameInEnglish","typeLabel":"string"},"companyNameTransliterations":{"type":"array","items":{"type":"string","uniqueKey":"candidates.items.[INDEX].companyNameTransliterations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"candidates.items.[INDEX].companyNameTransliterations","typeLabel":"string[]"},"address":{"type":"object","properties":{"addressLine1":{"type":"string","description":"First line of the street address, as the register publishes it. Registers differ in how they order the building number, building name and street, and in whether they separate them; the country guide documents the mapping for each country.","example":"10 rue de la Fraternité","uniqueKey":"candidates.items.[INDEX].address.addressLine1","typeLabel":"string"},"addressLine2":{"type":"string","description":"Second line of the street address, as the register publishes it: for example a building, an estate, a district or, when the register has no separate town field, the town.","example":"Bâtiment B","uniqueKey":"candidates.items.[INDEX].address.addressLine2","typeLabel":"string"},"city":{"type":"string","description":"City or town of the address. Absent when the register publishes no separate town field.","example":"Bagnolet","uniqueKey":"candidates.items.[INDEX].address.city","typeLabel":"string"},"postalCode":{"type":"string","description":"Postal code of the address","example":"93170","uniqueKey":"candidates.items.[INDEX].address.postalCode","typeLabel":"string"},"region":{"type":"string","description":"County, district or département, usually a subdivision below `state`, as the register publishes it.","example":"Seine-Saint-Denis","uniqueKey":"candidates.items.[INDEX].address.region","typeLabel":"string"},"countryCode":{"type":"string","description":"Country of the address using ISO 3166-1 alpha-2 country code","example":"FR","uniqueKey":"candidates.items.[INDEX].address.countryCode","typeLabel":"string"},"poBox":{"type":"string","description":"Post Office Box number","example":"PO Box 123","uniqueKey":"candidates.items.[INDEX].address.poBox","typeLabel":"string"},"careOf":{"type":"string","description":"Care of (c/o) recipient","example":"c/o John Doe","uniqueKey":"candidates.items.[INDEX].address.careOf","typeLabel":"string"},"state":{"type":"string","description":"State, province or other first-level subdivision of the country: for example a US state, a German Land, a French région, or the UK nation (England, Scotland, Wales, Northern Ireland).","example":"Île-de-France","uniqueKey":"candidates.items.[INDEX].address.state","typeLabel":"string"},"latitude":{"type":"number","description":"Latitude coordinate","example":59.9139,"uniqueKey":"candidates.items.[INDEX].address.latitude","typeLabel":"number"},"longitude":{"type":"number","description":"Longitude coordinate","example":10.7522,"uniqueKey":"candidates.items.[INDEX].address.longitude","typeLabel":"number"}},"uniqueKey":"candidates.items.[INDEX].address","typeLabel":"object"},"isActive":{"type":"boolean","description":"Indicative only: whether the company looked active when it was searched, absent when unknown. It comes from a register's search results or from Topograph's company data, which can lag the register, so it may be out of date. For the current status, request `company` from `/v2/company` and read `company.status`.","uniqueKey":"candidates.items.[INDEX].isActive","typeLabel":"boolean"}},"required":["selected","match","countryCode","id","legalName","explanation"],"uniqueKey":"candidates.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"candidates","typeLabel":"object[]"},"usage":{"type":"object","properties":{"priceCents":{"type":"number","description":"What this search was charged, in credit cents. 0 unless `status` is `resolved`.","isRequired":true,"uniqueKey":"usage.priceCents","typeLabel":"number"},"durationMs":{"type":"number","isRequired":true,"uniqueKey":"usage.durationMs","typeLabel":"number"}},"required":["priceCents","durationMs"],"isRequired":true,"uniqueKey":"usage","typeLabel":"object"},"reason":{"type":"string","description":"Why the search ended `not_found`, or why it stopped early.","enum":["not_a_legal_entity","no_country_signal","country_not_covered","no_register_match","search_limit_reached","timeout","outside_countries"],"uniqueKey":"reason","typeLabel":"enum\u003cstring>"},"likelyCountryCode":{"type":"string","description":"The country the evidence points to, even when the company could not be confirmed, Topograph does not cover its register, or it is outside `countries`.","example":"KY","uniqueKey":"likelyCountryCode","typeLabel":"string"}},"required":["id","status","summary","query","candidates","usage"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"global-search-1791216000000-k3x9qa","status":"resolved","summary":"Found in Austria: Bamberger GmbH (370916s).","query":{"name":"Bamberger GmbH","latinName":"\u003cstring>","legalForm":"GmbH","address":"Wien","identifier":"FN 370916s","website":"altria.com","mentionedCountries":["NL"],"sourceCountry":"GB"},"candidates":[{"selected":true,"match":"strong","countryCode":"AT","id":"370916s","legalName":"Bamberger GmbH","explanation":{"summary":"\u003cstring>","reasons":[{"kind":"legal_form","text":"The register in Austria lists it under exactly that name","countryCode":"AT","url":"https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany\u0026CIK=0000764180"}]},"legalNameInEnglish":"\u003cstring>","companyNameTransliterations":["\u003cstring>"],"address":{"addressLine1":"10 rue de la Fraternité","addressLine2":"Bâtiment B","city":"Bagnolet","postalCode":"93170","region":"Seine-Saint-Denis","countryCode":"FR","poBox":"PO Box 123","careOf":"c/o John Doe","state":"Île-de-France","latitude":59.9139,"longitude":10.7522},"isActive":true}],"usage":{"priceCents":123,"durationMs":123},"reason":"not_a_legal_entity","likelyCountryCode":"KY"}}},"exampleType":"generated"},"text/event-stream":{"schema":{"type":"string","description":"Named events: `progress` (GlobalSearchProgress), `complete` (GlobalSearchResponse), `error`.","example":"event: progress\ndata: {\"isComplete\":false,\"revision\":3,\"activity\":[\"Asking the register in Austria\"],\"candidates\":[]}\n\nevent: complete\ndata: {\"id\":\"global-search-…\",\"status\":\"resolved\",...}","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"event: progress\ndata: {\"isComplete\":false,\"revision\":3,\"activity\":[\"Asking the register in Austria\"],\"candidates\":[]}\n\nevent: complete\ndata: {\"id\":\"global-search-…\",\"status\":\"resolved\",...}"}},"exampleType":"generated"}},"exampleType":"generated"},"3863a101-c7be-414a-a893-c4899bcf674f":{"description":"Invalid request (empty query, empty `countries`, or a code in `countries` that is not a country).","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","example":400,"uniqueKey":"statusCode","typeLabel":"number"},"error":{"type":"object","properties":{"code":{"type":"string","example":"invalid_request","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"query cannot be empty","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":400,"error":{"code":"invalid_request","message":"query cannot be empty"}}}},"exampleType":"generated"}},"exampleType":"generated"},"08b71a31-292a-4f4b-b608-d0f889f653b5":{"description":"Not enough credits for a run.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","example":402,"uniqueKey":"statusCode","typeLabel":"number"},"error":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_funds","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Not enough credits for a global search.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":402,"error":{"code":"insufficient_funds","message":"Not enough credits for a global search."}}}},"exampleType":"generated"}},"exampleType":"generated"},"6b132245-fdc4-4e9d-b1eb-21c89ad6511f":{"description":"Fair-use limit: too many runs this minute, or too many running at once, for this account.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","example":429,"uniqueKey":"statusCode","typeLabel":"number"},"error":{"type":"object","properties":{"code":{"type":"string","example":"rate_limited","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Too many global searches this minute for this account. Retry shortly.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":429,"error":{"code":"rate_limited","message":"Too many global searches this minute for this account. Retry shortly."}}}},"exampleType":"generated"}},"exampleType":"generated"},"b2b7e934-4dcc-4b88-af03-ee5001d0a2b2":{"description":"The run exceeded its time limit.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","example":503,"uniqueKey":"statusCode","typeLabel":"number"},"error":{"type":"object","properties":{"code":{"type":"string","example":"search_timeout","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The global search took too long to complete.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":503,"error":{"code":"search_timeout","message":"The global search took too long to complete."}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ffe1d2c7-3d80-4b0f-b24c-f580af00df43":{"x-api-key":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"x-api-key"}}},"servers":{"264b5887-71c0-4b63-a8e1-341374da51b2":{"url":"https://api.topograph.co"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[],"schemeName":"x-api-key"},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"x-api-key","name":"x-api-key"}],"title":"x-api-key"}]},"originalFileLocation":"openapi.json"},"subdomain":"semaphore","siteName":"Topograph","title":"Find a company across countries from its name - Topograph","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T15:30:28.109Z","originalFileLocation":"api-reference/search/global-search.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Takes what you know about a company in one free-text query (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to /v2/company, a match strength and an explanation of the evidence. The search is agentic and bounded: it reads the legal form and any address, checks Topograph\u0026#x27;s index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds. Countries. countries limits the search to some countries: [\u0026quot;US\u0026quot;] searches every US state and nothing else, [\u0026quot;US-DE\u0026quot;, \u0026quot;US-NY\u0026quot;] two states, [\u0026quot;CA\u0026quot;] every Canadian jurisdiction (the federal register CA-FED and the provinces and territories, CA-ON, CA-QC…), [\u0026quot;DE\u0026quot;, \u0026quot;AT\u0026quot;, \u0026quot;CH\u0026quot;] three countries. Nothing outside them is searched or returned. Status. resolved: one strong match, the candidate with selected: true, which you can use without a person checking. ambiguous: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. not_found: nothing acceptable; reason says why, and likelyCountryCode names the country the evidence pointed to even when Topograph does not cover it or it is outside countries. Company status. A candidate\u0026#x27;s isActive is indicative only and may be out of date; read company.status from /v2/company before relying on it. Alpha. The request and response shapes may still change. Billing. A search is billed only when it succeeds: status: resolved, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. usage.priceCents shows what was charged; the price is on the pricing page. Streaming. With stream: true and Accept: text/event-stream, the endpoint emits progress events (what the search is doing right now, and the candidates found so far), then one complete event with the final response, or an error event.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Topograph\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Find a company across countries from its name - Topograph\">\u003cmeta data-mint-head property=\"og:description\" content=\"Takes what you know about a company in one free-text query (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to /v2/company, a match strength and an explanation of the evidence. The search is agentic and bounded: it reads the legal form and any address, checks Topograph\u0026#x27;s index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds. Countries. countries limits the search to some countries: [\u0026quot;US\u0026quot;] searches every US state and nothing else, [\u0026quot;US-DE\u0026quot;, \u0026quot;US-NY\u0026quot;] two states, [\u0026quot;CA\u0026quot;] every Canadian jurisdiction (the federal register CA-FED and the provinces and territories, CA-ON, CA-QC…), [\u0026quot;DE\u0026quot;, \u0026quot;AT\u0026quot;, \u0026quot;CH\u0026quot;] three countries. Nothing outside them is searched or returned. Status. resolved: one strong match, the candidate with selected: true, which you can use without a person checking. ambiguous: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. not_found: nothing acceptable; reason says why, and likelyCountryCode names the country the evidence pointed to even when Topograph does not cover it or it is outside countries. Company status. A candidate\u0026#x27;s isActive is indicative only and may be out of date; read company.status from /v2/company before relying on it. Alpha. The request and response shapes may still change. Billing. A search is billed only when it succeeds: status: resolved, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. usage.priceCents shows what was charged; the price is on the pricing page. Streaming. With stream: true and Accept: text/event-stream, the endpoint emits progress events (what the search is doing right now, and the candidates found so far), then one complete event with the final response, or an error event.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Topograph\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.topograph.co/api-reference/search/global-search\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://semaphore.mintlify.site/_mintlify/api/og/v2?division=Search\u0026amp;title=Find+a+company+across+countries+from+its+name\u0026amp;description=Takes+what+you+know+about+a+company+in+one+free-text+%60query%60+%28the+name+plus+a+city%2C+a+country%2C+a+registration+number%2C+a+website%E2%80%A6%29+and+returns+candidates+across+\u0026amp;theme=c558223ba3877bec82c676d2\u0026amp;signature=cf53fbf8cd706c68228c17d3de5a8218305b99154438dbca6825aa8327078fe3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Find a company across countries from its name - Topograph\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Takes what you know about a company in one free-text query (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to /v2/company, a match strength and an explanation of the evidence. The search is agentic and bounded: it reads the legal form and any address, checks Topograph\u0026#x27;s index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds. Countries. countries limits the search to some countries: [\u0026quot;US\u0026quot;] searches every US state and nothing else, [\u0026quot;US-DE\u0026quot;, \u0026quot;US-NY\u0026quot;] two states, [\u0026quot;CA\u0026quot;] every Canadian jurisdiction (the federal register CA-FED and the provinces and territories, CA-ON, CA-QC…), [\u0026quot;DE\u0026quot;, \u0026quot;AT\u0026quot;, \u0026quot;CH\u0026quot;] three countries. Nothing outside them is searched or returned. Status. resolved: one strong match, the candidate with selected: true, which you can use without a person checking. ambiguous: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. not_found: nothing acceptable; reason says why, and likelyCountryCode names the country the evidence pointed to even when Topograph does not cover it or it is outside countries. Company status. A candidate\u0026#x27;s isActive is indicative only and may be out of date; read company.status from /v2/company before relying on it. Alpha. The request and response shapes may still change. Billing. A search is billed only when it succeeds: status: resolved, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. usage.priceCents shows what was charged; the price is on the pricing page. Streaming. With stream: true and Accept: text/event-stream, the endpoint emits progress events (what the search is doing right now, and the candidates found so far), then one complete event with the final response, or an error event.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://semaphore.mintlify.site/_mintlify/api/og/v2?division=Search\u0026amp;title=Find+a+company+across+countries+from+its+name\u0026amp;description=Takes+what+you+know+about+a+company+in+one+free-text+%60query%60+%28the+name+plus+a+city%2C+a+country%2C+a+registration+number%2C+a+website%E2%80%A6%29+and+returns+candidates+across+\u0026amp;theme=c558223ba3877bec82c676d2\u0026amp;signature=cf53fbf8cd706c68228c17d3de5a8218305b99154438dbca6825aa8327078fe3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/semaphore/dO1LV7k9tlVmoSjK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Topograph\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.topograph.co/api-reference/search/global-search\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/search/global-search.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.topograph.co/#organization\",\"name\":\"Topograph\",\"url\":\"https://docs.topograph.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/semaphore/ChRp9mNNuCx3xt6W/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=ChRp9mNNuCx3xt6W\u0026q=85\u0026s=e6ce7b79992dddb6e7039eeceb3a0789\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.topograph.co#website\",\"name\":\"Topograph\",\"url\":\"https://docs.topograph.co\",\"publisher\":{\"@id\":\"https://docs.topograph.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.topograph.co/api-reference/search/global-search#webpage\",\"url\":\"https://docs.topograph.co/api-reference/search/global-search\",\"name\":\"Find a company across countries from its name\",\"description\":\"Takes what you know about a company in one free-text query (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to /v2/company, a match strength and an explanation of the evidence. The search is agentic and bounded: it reads the legal form and any address, checks Topograph's index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds. Countries. countries limits the search to some countries: [\\\"US\\\"] searches every US state and nothing else, [\\\"US-DE\\\", \\\"US-NY\\\"] two states, [\\\"CA\\\"] every Canadian jurisdiction (the federal register CA-FED and the provinces and territories, CA-ON, CA-QC…), [\\\"DE\\\", \\\"AT\\\", \\\"CH\\\"] three countries. Nothing outside them is searched or returned. Status. resolved: one strong match, the candidate with selected: true, which you can use without a person checking. ambiguous: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. not_found: nothing acceptable; reason says why, and likelyCountryCode names the country the evidence pointed to even when Topograph does not cover it or it is outside countries. Company status. A candidate's isActive is indicative only and may be out of date; read company.status from /v2/company before relying on it. Alpha. The request and response shapes may still change. Billing. A search is billed only when it succeeds: status: resolved, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. usage.priceCents shows what was charged; the price is on the pricing page. Streaming. With stream: true and Accept: text/event-stream, the endpoint emits progress events (what the search is doing right now, and the candidates found so far), then one complete event with the final response, or an error event.\",\"dateModified\":\"2026-10-09T15:30:28.109Z\",\"isPartOf\":{\"@id\":\"https://docs.topograph.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.topograph.co/api-reference/search/global-search#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.topograph.co/api-reference/search/global-search#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Search\",\"item\":\"https://docs.topograph.co/api-reference/search/search-for-companies\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find a company across countries from its name\",\"item\":\"https://docs.topograph.co/api-reference/search/global-search\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.topograph.co/api-reference/search/global-search#apireference\",\"headline\":\"Find a company across countries from its name\",\"name\":\"Find a company across countries from its name\",\"description\":\"Takes what you know about a company in one free-text query (the name plus a city, a country, a registration number, a website…) and returns candidates across the countries Topograph covers, best first, each with a registration number you can pass to /v2/company, a match strength and an explanation of the evidence. The search is agentic and bounded: it reads the legal form and any address, checks Topograph's index, asks the web when the name and that data are not enough, confirms in the most likely registers (US states included), and stops as soon as one candidate is a strong match. At most 15 live and web searches, at most 100 seconds. Countries. countries limits the search to some countries: [\\\"US\\\"] searches every US state and nothing else, [\\\"US-DE\\\", \\\"US-NY\\\"] two states, [\\\"CA\\\"] every Canadian jurisdiction (the federal register CA-FED and the provinces and territories, CA-ON, CA-QC…), [\\\"DE\\\", \\\"AT\\\", \\\"CH\\\"] three countries. Nothing outside them is searched or returned. Status. resolved: one strong match, the candidate with selected: true, which you can use without a person checking. ambiguous: several plausible candidates (the same name in two countries, two namesakes in one register, a US company whose state is not established), all returned with their evidence. not_found: nothing acceptable; reason says why, and likelyCountryCode names the country the evidence pointed to even when Topograph does not cover it or it is outside countries. Company status. A candidate's isActive is indicative only and may be out of date; read company.status from /v2/company before relying on it. Alpha. The request and response shapes may still change. Billing. A search is billed only when it succeeds: status: resolved, one good candidate. Ambiguous and not-found searches, inputs rejected as not a legal entity, failures and timeouts are not billed. usage.priceCents shows what was charged; the price is on the pricing page. Streaming. With stream: true and Accept: text/event-stream, the endpoint emits progress events (what the search is doing right now, and the candidates found so far), then one complete event with the final response, or an error event.\",\"url\":\"https://docs.topograph.co/api-reference/search/global-search\",\"mainEntityOfPage\":{\"@id\":\"https://docs.topograph.co/api-reference/search/global-search#webpage\"},\"dateModified\":\"2026-10-09T15:30:28.109Z\",\"publisher\":{\"@id\":\"https://docs.topograph.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.topograph.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Topograph\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Topograph","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Country references","icon":"globe","href":"https://www.topograph.co/countries"},{"tab":"API Reference","groups":[{"group":"Search","pages":[{"openapi":"get /v2/search","title":"Search for companies","description":"This endpoint allows you to search for companies based on a country code and a query string.\n\nThe search can be performed using either a company legal name, commercial name, historical name, or registration number. Capabilities vary by country. A Legal Entity Identifier (LEI) is accepted as the query in every country and returns the company it designates.\n\n**Standard Mode (stream=false or omitted):**\nReturns JSON array of results once all search sources have completed.\n\n**Streaming Mode (stream=true):**\nReturns Server-Sent Events (SSE) with progressive results as each search source completes. The endpoint emits named events:\n- `progress`: Partial results from completed sources\n- `complete`: Final results when all sources finish\n- `error`: If the search fails\n\nStreaming is beneficial for countries with multiple search sources (e.g., Germany queries both Unternehmensregister and Handelsregister), providing faster time-to-first-result.\n\nResponse times vary by country: from sub-second to up to 10 seconds.","href":"/api-reference/search/search-for-companies"},{"openapi":"post /v2/search/global","title":"Find a company across countries from its name","href":"/api-reference/search/global-search"}]},{"group":"Data","pages":[{"openapi":"post /v2/company","title":"Get Company Data and Documents","description":"Retrieve company data and documents for a specific company.\n\nYou can either:\n1. Create a new request by providing countryCode, id, dataPoints, optional mode, and optional document IDs.\n2. Re-fetch a previous request by providing requestId (returns cached data and is not billed again).\n\nAvailable datapoints include:\n- company: core company information\n- legalRepresentatives: directors, managers, and signing officers\n- otherKeyPersons: auditors, board members, and similar roles when available\n- establishments: branches and secondary locations when available\n- shareholders: shareholder structure\n- subsidiaries: downstream equity holdings when available\n- ultimateBeneficialOwners: beneficial owner information\n- availableDocuments: list of available official documents\n- graph: ownership graph traversal (verification mode only)\n\nLegacy companyProfile is deprecated and accepted only before December 1, 2026 at 00:00 UTC. From that instant, new requests containing it return HTTP 400. Request company, legalRepresentatives, otherKeyPersons and establishments explicitly as needed. Existing request results remain retrievable.\n\nModes:\n- verification (default): authoritative live registry sources. Countries served only by a non-authoritative source are prefill-only, and fail here with authoritative_source_unavailable.\n- prefill: cheapest compatible fast source; unsupported datapoints fail with fast_source_unavailable. The graph datapoint has no fast source and always fails this way in prefill mode.\n\nTo retrieve documents, first request availableDocuments to discover document IDs, then pass those IDs in the documents field of a follow-up request.","href":"/api-reference/data/get-company-data-and-documents"},{"openapi":"get /v2/company/{requestId}","title":"Get Company Request Result","href":"/api-reference/data/get-company-request-result"},{"openapi":"get /v2/company/{requestId}/pdf","title":"Download Company Extract as PDF","href":"/api-reference/data/download-company-extract-pdf"},{"openapi":"post /v2/onboarding","deprecated":true,"title":"Get Onboarding Data (Deprecated)","href":"/api-reference/data/get-onboarding-data-deprecated"}]},{"group":"Pricing","pages":[{"openapi":"get /v2/pricing","title":"Get pricing for a country","href":"/api-reference/pricing/get-pricing-for-a-country"}]},{"group":"Workspaces","pages":[{"openapi":"get /v2/workspaces","title":"List all workspaces","href":"/api-reference/workspaces/list-all-workspaces"},{"openapi":"post /v2/workspaces","title":"Create a new workspace","href":"/api-reference/workspaces/create-a-new-workspace"},{"openapi":"patch /v2/workspaces/{name}","title":"Update a workspace","href":"/api-reference/workspaces/update-a-workspace"},{"openapi":"delete /v2/workspaces/{name}","title":"Delete a workspace","href":"/api-reference/workspaces/delete-a-workspace"},{"openapi":"get /v2/workspaces/usage","title":"Get usage report per workspace","href":"/api-reference/workspaces/get-usage-report-per-workspace"}]},{"group":"Monitors","pages":[{"openapi":"get /v2/monitors","title":"List monitored companies","href":"/api-reference/monitors/list-monitored-companies"},{"openapi":"post /v2/monitors","title":"Add monitoring for a company","href":"/api-reference/monitors/add-monitoring-for-a-company"},{"openapi":"get /v2/monitors/{id}","title":"Get monitor details","href":"/api-reference/monitors/get-monitor-details"},{"openapi":"get /v2/monitors/{id}/logs","title":"Get monitor change logs","href":"/api-reference/monitors/get-monitor-change-logs"},{"title":"Send a test notification for a monitor","href":"/api-reference/monitors/send-a-test-notification-for-a-monitor"},{"openapi":"delete /v2/monitors/{id}","title":"Stop monitoring a company","href":"/api-reference/monitors/stop-monitoring-a-company"}]},{"group":"Search monitors (Beta)","pages":[{"openapi":"post /v2/search-monitors","tag":"BETA","title":"Watch for newly matching French companies","href":"/api-reference/search-monitors/watch-for-newly-matching-french-companies"},{"openapi":"get /v2/search-monitors","tag":"BETA","title":"List search monitors","href":"/api-reference/search-monitors/list-search-monitors"},{"openapi":"get /v2/search-monitors/{id}","tag":"BETA","title":"Get a search monitor","href":"/api-reference/search-monitors/get-a-search-monitor"},{"openapi":"delete /v2/search-monitors/{id}","tag":"BETA","title":"Stop a search monitor","href":"/api-reference/search-monitors/stop-a-search-monitor"}]},{"group":"Discrepancy reports (Beta)","pages":[{"openapi":"post /v2/discrepancy-reports","tag":"BETA","title":"File a discrepancy report (Beta)","href":"/api-reference/discrepancy-reports/file-a-discrepancy-report"},{"openapi":"get /v2/discrepancy-reports/{id}","tag":"BETA","title":"Get a discrepancy report (Beta)","href":"/api-reference/discrepancy-reports/get-a-discrepancy-report"},{"openapi":"get /v2/discrepancy-reports","tag":"BETA","title":"List discrepancy reports (Beta)","href":"/api-reference/discrepancy-reports/list-discrepancy-reports"},{"openapi":"get /v2/discrepancy-reports/usage","tag":"BETA","title":"Get discrepancy report usage (Beta)","href":"/api-reference/discrepancy-reports/get-discrepancy-report-usage"}]},{"group":"Vault","pages":[{"openapi":"get /v2/vault/sources","title":"List supported credential sources","href":"/api-reference/vault/list-supported-credential-sources"},{"openapi":"get /v2/workspaces/{name}/vault","title":"List vault entries on the workspace (metadata only)","href":"/api-reference/vault/list-vault-entries-on-the-workspace-metadata-only"},{"openapi":"get /v2/workspaces/{name}/vault/{sourceKey}","title":"Get one vault entry by sourceKey (metadata only)","href":"/api-reference/vault/get-one-vault-entry-by-sourcekey-metadata-only"},{"openapi":"put /v2/workspaces/{name}/vault/{sourceKey}","title":"Create or replace a credential","href":"/api-reference/vault/create-or-replace-a-credential"},{"openapi":"delete /v2/workspaces/{name}/vault/{sourceKey}","title":"Delete a credential","href":"/api-reference/vault/delete-a-credential"}]},{"group":"Billing","pages":[{"openapi":"get /v2/billing/balance","title":"Get the current account credit balance","href":"/api-reference/billing/get-the-current-account-credit-balance"}]},{"group":"Billing Notifications","pages":[{"openapi":"get /v2/billing/notifications/config","title":"Get resolved billing notification config (defaults merged)","href":"/api-reference/billing-notifications/get-resolved-billing-notification-config-defaults-merged"},{"openapi":"get /v2/billing/notifications/workspaces/{workspaceId}/config","title":"Get resolved workspace billing notification view (override + account)","href":"/api-reference/billing-notifications/get-resolved-workspace-billing-notification-view-override-+-account"},{"openapi":"get /v2/billing/notifications/recent","title":"List recent billing notification events","href":"/api-reference/billing-notifications/list-recent-billing-notification-events"},{"openapi":"delete /v2/billing/notifications/workspaces/{workspaceId}/config","title":"Remove workspace high-usage override","href":"/api-reference/billing-notifications/remove-workspace-high-usage-override"},{"openapi":"patch /v2/billing/notifications/config","title":"Upsert billing notification config","href":"/api-reference/billing-notifications/upsert-billing-notification-config"},{"openapi":"patch /v2/billing/notifications/workspaces/{workspaceId}/config","title":"Upsert workspace high-usage override","href":"/api-reference/billing-notifications/upsert-workspace-high-usage-override"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Find a company across countries from its name - Topograph","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}