Skip to content
VynCo is in public beta — we'd love your feedback.
← Back to blog

Map Any Swiss Corporate Network in 5 Lines of Python

VynCo Team3 min read4/14/2026

Map Any Swiss Corporate Network in 5 Lines of Python

Swiss corporate structures are famously complex. A single holding company can sit atop dozens of subsidiaries, share board members with competitors, and maintain signing-authority chains that span cantons. Understanding these networks used to require weeks of manual registry research. With the VynCo API, you can map them in seconds.

The 5-Line Example

from vynco import VynCo

client = VynCo(api_key="your-key")
graph = client.graph.get(uid="CHE-123.456.789")
print(f"{graph.company_name}: {len(graph.connections)} connections")
for conn in graph.connections:
    print(f"  -> {conn.target_name} ({conn.relationship_type})")

That is all it takes to pull the full corporate network for any Swiss company. The response includes board overlaps, subsidiary links, and ownership edges, each annotated with relationship type and strength.

Board Members and Signing Authority

The board_members() method returns every officer, director, and authorized signatory, along with their signing authority classification.

members = client.graph.board_members(uid="CHE-123.456.789")
for m in members:
    print(f"{m.name} | {m.function} | {m.signing_authority}")

Signing authority matters for compliance. You can instantly see who can bind the company to contracts and whether authority is individual or collective.

Hierarchy: Parents, Subsidiaries, and Shared People

The hierarchy() endpoint reveals the full corporate tree.

tree = client.graph.hierarchy(uid="CHE-123.456.789")
print(f"Parent: {tree.parent.name if tree.parent else 'None'}")
print(f"Subsidiaries: {len(tree.subsidiaries)}")
for sub in tree.subsidiaries:
    print(f"  {sub.name} (shared persons: {sub.shared_person_count})")

The shared_person_count field is especially useful. A high count signals tight operational integration between entities; a zero count may indicate a purely financial holding.

Filter Relationships by Type

Not all connections are equal. Use relationships() to filter by type: board_overlap, subsidiary, ownership, or auditor_shared.

overlaps = client.graph.relationships(
    uid="CHE-123.456.789",
    relationship_type="board_overlap"
)
print(f"Board overlaps: {len(overlaps)}")
for o in overlaps:
    print(f"  {o.target_name}: {o.shared_persons} shared directors")

This is powerful for conflict-of-interest screening. If a vendor shares three board members with your client, that is worth knowing before signing a contract.

Export to GraphML or GEXF

For deeper analysis in Gephi, NetworkX, or Neo4j, export the entire graph in standard formats.

# Export as GraphML for Gephi
graphml = client.graph.export(uid="CHE-123.456.789", format="graphml")
with open("network.graphml", "w") as f:
    f.write(graphml)

# Export as GEXF for dynamic visualization
gexf = client.graph.export(uid="CHE-123.456.789", format="gexf")
with open("network.gexf", "w") as f:
    f.write(gexf)

GraphML preserves all node and edge attributes. GEXF adds support for temporal slicing, so you can animate how a corporate network evolved over time.

Real-World Use Cases

  • Due diligence: Map the full network of an acquisition target before signing
  • Compliance: Identify board overlaps that create conflicts of interest
  • Investigative journalism: Trace ownership chains through holding structures
  • Academic research: Study Swiss corporate governance patterns at scale

The full SDK reference and more examples are available in the VynCo documentation.


Ready to map Swiss corporate networks? Start your free trial and get 100 API credits to explore the graph endpoints today.