
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Search the official Swiss commercial register (Zefix) by name, keyword, UID, canton and legal form. Get UID, legal form, seat, address, purpose, status, capital, officers, auditors and SOGC publications for each company.
Search the official Swiss commercial register (Zefix, the central business name index of all 26 cantons) and get clean company records. Each record includes the UID, legal form, seat, address, purpose, status, capital, officers, auditors and SOGC publications. Search by company name, keyword or UID, then narrow by canton and legal form. You don't need a login.
| Field | What it does |
|---|---|
searchQueries | Company names or keywords (2+ characters, matched anywhere in the name), UIDs (CHE-123.456.789), zefix.ch search or company links, or cantonal excerpt links |
maxResults | Total companies to save (0 = no limit) |
cantons | Canton codes such as ZH, GE, TI (empty = all of Switzerland) |
legalForms | AG, GmbH, Einzelunternehmen, Genossenschaft, Verein, Stiftung, ... |
activeOnly / includeDeleted | Status filter (active only by default) |
includeDetails | Full company record (on by default) |
includeOfficers | Officers and signatories from SOGC publications (on by default) |
maxPublications | How many of the latest SOGC publications to include (default 10) |
{
"searchQueries": ["software", "CHE-123.456.789"],
"cantons": ["ZH", "ZG"],
"legalForms": ["AG"],
"activeOnly": true,
"maxResults": 100
}
One row per company.
| Field | Description |
|---|---|
name, uid, chid, ehraid | Registered name and identifiers |
legalForm, legalFormLocal, legalFormShort | Legal form in English, German and short form |
status | active, in_liquidation or deleted |
legalSeat, canton, registerOffice | Seat and responsible cantonal register |
address, street, postalCode, city, careOf, poBox | Registered address |
purpose | Company purpose as registered |
capital, capitalCurrency, capitalText | Latest published share or nominal capital |
officers | Current people and firms with roles, signing authority, origin, residence and since-date |
auditors, oldNames, branchOffices, mainOffices, hasTakenOver, wasTakenOverBy | Related records |
sogcDate, publicationCount, publications | SOGC publication history with full text |
zefixUrl, cantonalExcerptUrl | Links to Zefix and the cantonal excerpt |
Example (names are fictional):
{
"name": "Beispiel Software AG",
"uid": "CHE-123.456.789",
"legalForm": "Corporation",
"legalFormShort": "AG",
"status": "active",
"legalSeat": "Winterthur",
"canton": "ZH",
"registerOffice": "Handelsregisteramt des Kantons Zürich",
"sogcDate": "2019-04-17",
"purpose": "Die Gesellschaft bezweckt die Entwicklung von System- und Softwarelösungen sowie Beratungsdienstleistungen im Informatikbereich.",
"address": "Musterstrasse 4, 8400 Winterthur",
"postalCode": "8400",
"city": "Winterthur",
"capital": 100000,
"capitalCurrency": "CHF",
"capitalText": "Aktienkapital neu: CHF 100'000.00",
"officers": [
{
"name": "Muster, Anna",
"type": "person",
"roles": ["Mitglied des Verwaltungsrates", "Geschäftsführerin"],
"signature": "mit Einzelunterschrift",
"origin": "von Winterthur",
"residence": "Winterthur",
"since": "2019-04-17"
}
],
"oldNames": ["Beispiel Software GmbH"],
"publicationCount": 2,
"publications": [
{
"date": "2019-04-17",
"sogcId": 1000000001,
"types": ["adressaenderung", "aenderungorgane"],
"text": "Beispiel Software AG, in Pfungen, CHE-123.456.789, Aktiengesellschaft ... Sitz neu: Winterthur. ..."
}
],
"zefixUrl": "https://www.zefix.ch/en/search/entity/list/firm/1000000",
"cantonalExcerptUrl": "https://zh.chregister.ch/cr-portal/auszug/auszug.xhtml?uid=CHE-123.456.789",
"source": "zefix.ch"
}
You pay $1.70 per 1,000 companies ($0.0017 per company), with full details, officers and publications included. Platform usage (compute and datacenter proxy traffic) is billed separately and is very small for this actor.
Example: 100 companies with full details cost about $0.17 plus well under a cent of usage.
Is it legal? The Swiss commercial register is public by law, and Zefix publishes it for everyone. The actor reads only public register data. Follow data protection rules when you use personal data such as officer names.
Do I need a login or a proxy? No login. Datacenter proxies are on by default and are enough.
How many companies can I get? As many as match your search. Zefix answers at most 5,000 companies per search, so larger searches are split by canton and legal form automatically.
How are officers found? Zefix doesn't publish a list of officers. The actor reads each company's SOGC publications (Zefix serves them from 2016 onwards) and replays every "registered persons" and "persons removed" entry in order. For companies whose officers haven't changed since 2016, the list can be incomplete, and unusual wording can be missed. The full publication text is included so you can check.
Why is capital empty for some companies? Capital is read from the latest SOGC publication that states it. Companies that haven't published a capital entry since 2016 (and associations or foundations without capital) have none.
Can I schedule it or use the API? Yes. Schedule runs to watch for changes, and read results over the API or with webhooks.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalCompany names, keywords, UIDs or Zefix links
One per line. A company name or keyword (2+ characters, matched anywhere in the name), a UID like CHE-123.456.789, a zefix.ch search or company link, or a cantonal register excerpt link.
maxResultsintegerOptionaldefault 20Maximum companies
Stop after this many companies in total. Use 0 for no limit.
cantonsarrayOptionalCantons
Only companies registered in these cantons. Leave empty for all of Switzerland.
legalFormsarrayOptionalLegal forms
Only these legal forms. Leave empty for all.
activeOnlybooleanOptionaldefault trueActive companies only
Only companies that currently exist (excludes companies in liquidation and deleted ones).
includeDeletedbooleanOptionaldefault falseInclude deleted companies
Also return companies deleted from the register. Only applies when 'Active companies only' is off.
includeDetailsbooleanOptionaldefault trueCompany details
Load each company's full record: purpose, address, capital, officers, auditors, former names, branches and SOGC publications. One extra request per company.
includeOfficersbooleanOptionaldefault trueOfficers and signatories
Reconstruct current board members, managers, signatories and auditors from the company's SOGC publications.
maxPublicationsintegerOptionaldefault 10SOGC publications per company
How many of the latest SOGC (Swiss Official Gazette of Commerce) publications to include with their full text. 0 to leave them out.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are enough for Zefix.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| name | string | null | Registered company name |
| uid | string | null | UID (CHE-xxx.xxx.xxx) |
| uidRaw | string | null | UID without separators |
| chid | string | null | Former federal number (CH-ID) |
| ehraid | number | null | Zefix internal id |
| legalForm | string | null | Legal form (English) |
| legalFormLocal | string | null | Legal form (German) |
| legalFormShort | string | null | Legal form short code |
| legalFormId | number | null | Zefix legal form id |
| status | string | null | active, in_liquidation or deleted |
| statusRaw | string | null | Status as in Zefix |
| legalSeat | string | null | Registered seat (municipality) |
| canton | string | null | Canton code |
| registerOffice | string | null | Cantonal register office |
| registerOfficeId | number | null | Register office id |
| sogcDate | string | null | Date of the latest SOGC publication |
| deleteDate | string | null | Deletion date |
| zefixUrl | string | null | Company page on zefix.ch |
| cantonalExcerptUrl | string | null | Cantonal register excerpt |
| purpose | string | null | Company purpose |
| address | string | null | Registered address |
| street | string | null | Street and number |
| careOf | string | null | c/o |
| poBox | string | null | PO box |
| postalCode | string | null | Postal code |
| city | string | null | Town |
| country | string | null | Country |
| capital | number | null | Share or nominal capital (latest published) |
| capitalCurrency | string | null | Capital currency |
| capitalText | string | null | Capital as published |
| officers | array | null | Current officers, signatories and auditors from SOGC publications |
| auditors | array | null | Audit firms |
| oldNames | array | null | Former names |
| mainOffices | array | null | Head offices (for branches) |
| branchOffices | array | null | Branches |
| hasTakenOver | array | null | Companies taken over |
| wasTakenOverBy | array | null | Taken over by |
| publicationCount | number | null | Number of SOGC publications |
| publications | array | null | Latest SOGC publications with full text |
| detailsMissing | boolean | null | True when the detail record could not be loaded |
| source | string | null | Always zefix.ch |
| scrapedAt | string | null | When the company was scraped |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Company | One company saved to the dataset, details included. | $0.0017 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/zefix-scraper').call({
"searchQueries": [
"software"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/zefix-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/zefix-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Companies with details, officers and publications.
Companies filtered by canton and legal form.
Register entry for an exact company name.
Quick list without details or officers.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.