Everything a developer or an AI agent needs to work with Swiss Graph data: a free public preview API with an OpenAPI contract, an MCP server, Markdown fact sheets for every company and person, and the keyed Graph Swiss API for volume access.
Quick links
- OpenAPI 3.1 document — Machine-readable contract of the public preview API. https://graph.swiss/openapi.json
- llms.txt — Site overview and when-to-use guidance for AI agents. https://graph.swiss/llms.txt
- MCP server — Streamable HTTP endpoint; discovery document at /.well-known/mcp. https://graph.swiss/mcp
- Markdown fact sheets — Append .md to any company or person profile URL.
- Sitemap index — Every crawlable page, including the sharded company and person indexes. https://graph.swiss/sitemap.xml
- Graph Swiss API documentation — Reference for the keyed, metered API (X-API-Key). https://docs.graph.swiss/
- Pricing — Plans in human-readable and machine-readable (pricing.md) form. https://graph.swiss/pricing.md
- API keys — Manage keys for the Graph Swiss API (Enterprise plan).
Public preview API
Five read-only operations over the Swiss commercial register, served from graph.swiss without authentication. Same registry facts as the public site, same privacy rules: present officers only, redacted persons masked, the newest 3 gazette entries per company. Responses are JSON; every error uses one envelope with a stable code, a message and a hint.
Rate limits: 60 search or autocomplete calls and 120 detail calls per minute per client. Responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; a 429 adds Retry-After. Searches page through at most 45 rows per query — narrow the query instead of paging deeper.
| Method | Path | Operation | Summary |
|---|---|---|---|
| GET | /api/v1/companies/search | searchCompanies | Search Swiss companies |
| GET | /api/v1/companies/autocomplete | autocompleteCompanies | Autocomplete a company name |
| GET | /api/v1/companies/{id} | getCompany | Get a company record |
| GET | /api/v1/people/search | searchPeople | Search registered officers |
| GET | /api/v1/people/{id} | getPerson | Get a person record |
Example request
curl 'https://graph.swiss/api/v1/companies/search?q=Nestle&canton=VD&limit=3' curl https://graph.swiss/api/v1/companies/102945
Error envelope
{
"error": {
"code": "invalid_parameter",
"message": "q must be at least 2 characters.",
"hint": "Pass a company name, UID (CHE-…) or person name of 2–200 characters as ?q=.",
"docs": "https://graph.swiss/openapi.json"
}
}MCP server
The same operations are available as Model Context Protocol tools over Streamable HTTP (stateless, no authentication, JSON responses). Point an MCP client at the endpoint or let it read the discovery document.
- Endpoint: https://graph.swiss/mcp (Streamable HTTP, POST)
- Discovery document: https://graph.swiss/.well-known/mcp
- Tools: search_companies, autocomplete_companies, get_company, search_people, get_person
Client configuration
{
"mcpServers": {
"swiss-graph": {
"type": "http",
"url": "https://graph.swiss/mcp"
}
}
}Markdown fact sheets
Every company and person profile has a Markdown twin for agents that prefer text: append .md to the canonical URL. About 2 KB per record, the same registry facts as the HTML page, served with a canonical Link header.
https://graph.swiss/companies/{slug}/{id}.md
https://graph.swiss/people/{slug}/{id}.mdGraph Swiss API (keyed)
For metered volume access, full-depth records and stock data, the Graph Swiss API authenticates with an X-API-Key header, returns a success/data envelope with request ids, and bills per call in credits. Keys are issued with the Enterprise plan and managed under Account → API keys.
- Read the API documentation https://docs.graph.swiss/
- Talk to us about Enterprise access
Data, privacy and terms
All registry facts are sourced from the Swiss Official Gazette of Commerce (SHAB/SOGC); the cantonal register remains the legal authority. The preview API and the MCP server publish registry facts only — no enrichment and no contact details. Persons the register has ordered redacted appear as "Redacted person" and have no retrievable record. Use is governed by the terms of service.