The Org APItheorg.com ↗
Retrieve org charts, reporting hierarchies, and team structures for any company on The Org. Access position nodes, team members, and company metadata.
What is the The Org API?
The Org API exposes 2 endpoints that return organizational chart data and team structures for any publicly listed company on theorg.com. The get_org_chart endpoint delivers a full hierarchy of position nodes — including name, role, parent ID, report count, and profile image — while get_teams returns team-level breakdowns with member previews. Response objects include over 10 fields per node, covering both the org chart and board sections.
curl -X GET 'https://api.parse.bot/scraper/1daa0808-6f21-4b07-bb7a-8126565cf757/get_org_chart?company_slug=greenoaks-capital' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace theorg-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: explore a company's org chart and teams on The Org."""
from parse_apis.theorg_com_api import TheOrg, InputFormatInvalid
client = TheOrg()
# Fetch the full org chart for a company by its URL slug.
try:
org = client.org_charts.get(company_slug="greenoaks-capital")
except InputFormatInvalid as e:
print(f"Invalid company slug: {e.message}")
raise
print(org.company.name, "-", org.company.employee_range, "employees")
print(f"{org.total_nodes} positions in org chart")
# Walk the top-level leadership positions and their reporting lines.
for pos in org.nodes:
parent_label = pos.parent_id or "root"
print(f" {pos.name} — {pos.role} (reports: {pos.report_count}, parent: {parent_label})")
# List teams for the same company; limit= caps total items fetched.
for team in client.teams.list(company_slug=org.company.slug, limit=5):
print(f"\n{team.name} ({team.member_count} members): {team.description[:80]}")
for member in team.members:
adviser_tag = " [adviser]" if member.is_adviser else ""
print(f" {member.name} — {member.role}{adviser_tag}")
print("\nexercised: org_charts.get / teams.list")
Returns the publicly visible org chart for a company on The Org, including the top-level hierarchy of positions with reporting relationships. Each node includes the person's name, role, slug, parent node ID, and direct report count. The org chart shows the initial SSR-rendered nodes (typically senior leadership and board members); deeper hierarchy levels require authentication on The Org and are not included. One HTTP round trip per call.
| Param | Type | Description |
|---|---|---|
| company_slugrequired | string | URL slug of the company on The Org (e.g. 'greenoaks-capital', 'tesla'). Found in the company's The Org page URL: theorg.com/org/<company_slug>. |
{
"type": "object",
"fields": {
"company": "object containing company metadata: id, name, slug, description, logo_url, industries, employee_range, total_positions, total_teams, website_url, linkedin_url, twitter_url",
"total_nodes": "integer count of nodes returned",
"org_chart_nodes": "array of org chart position nodes with id, name, role, slug, parent_id, report_count, section (orgChart or board), and profile_image_url"
},
"sample": {
"data": {
"company": {
"id": "101e4397-e159-47f1-9047-7f0dec1c4eec",
"name": "Greenoaks Capital",
"slug": "greenoaks-capital",
"logo_url": "https://cdn.theorg.com/d77a1bbe-8c6b-47be-beb6-6275ece42051_small.jpg",
"industries": [
"Venture Capital"
],
"description": "Greenoaks Capital is a leading global internet investment firm based in San Francisco.",
"total_teams": 16,
"twitter_url": "https://twitter.com/greenoakscap",
"website_url": "https://greenoaks.com/",
"linkedin_url": "https://linkedin.com/company/greenoaks-capital-partners",
"employee_range": "10-50",
"total_positions": 52
},
"total_nodes": 6,
"org_chart_nodes": [
{
"id": "p-340639",
"name": "Neil Mehta",
"role": "Investor",
"slug": "neil-mehta",
"section": "orgChart",
"parent_id": null,
"report_count": 30,
"profile_image_url": "https://cdn.theorg.com/f4c21627-5700-4923-a5ef-b2ae9e05fb67_small.jpg"
},
{
"id": "p-690230",
"name": "Mac Steele",
"role": "Head of Research",
"slug": "mac-steele",
"section": "orgChart",
"parent_id": "p-340639",
"report_count": 4,
"profile_image_url": "https://cdn.theorg.com/301eca63-04bc-4a16-83e6-96bd92eaf2e7_small.jpg"
}
]
},
"status": "success"
}
}About the The Org API
Org Chart Endpoint
The get_org_chart endpoint accepts a company_slug string (e.g. greenoaks-capital or tesla, taken directly from the company's URL on The Org) and returns a company metadata object alongside an org_chart_nodes array. Each node in that array carries id, name, role, slug, parent_id, report_count, section (either orgChart or board), and profile_image. The parent_id field lets you reconstruct the full reporting tree locally. The company object includes industries, employee_range, total_positions, and total_team counts alongside logo and description fields.
Teams Endpoint
The get_teams endpoint takes the same company_slug parameter and returns a teams array where each entry includes id, name, slug, description, member_count, and a members preview array of up to 4 people. Each member preview carries id, name, role, and slug. The total_teams integer reflects how many teams were returned. Note that only the first set of teams (typically up to 6) is available without authentication on The Org; teams beyond that threshold are not accessible through this endpoint.
Coverage and Limitations
Both endpoints are scoped to companies that have a publicly visible presence on The Org. The company_slug is the only required input for either endpoint, and it maps directly to the path segment in the company's theorg.com URL. Data reflects the publicly visible state of each company page — positions or teams that require a logged-in session on The Org are not returned. There is no filtering by department, seniority level, or geography within the current endpoints; the full available node set is returned for each request.
The The Org API is a managed, monitored endpoint for theorg.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when theorg.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official theorg.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Map reporting chains for due diligence by reconstructing trees from
parent_idfields inorg_chart_nodes - Track changes in leadership structure over time by comparing
roleandreport_countvalues across periodic calls - Identify board composition separately from the executive org chart using the
sectionfield - Enumerate team names and sizes for a target company using
member_countfrom theget_teamsresponse - Build a company directory enriched with
industriesandemployee_rangefrom thecompanymetadata object - Seed a CRM with named contacts and their roles using
name,role, andslugfrom team member previews - Compare team structures across competitors by running
get_teamsfor multiple company slugs
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does The Org have an official developer API?+
What does the `section` field in `org_chart_nodes` distinguish?+
section value is either orgChart or board, letting you separate the executive and operational hierarchy from the board of directors within the same response array.How many team members are returned per team in `get_teams`?+
members array on each team object contains a preview of up to 4 members. The full member list for a team is not returned; only member_count indicates the actual size. The endpoint returns up to 6 teams per company; additional teams beyond that require authentication on The Org and are not exposed here.Can I retrieve individual employee profiles or contact details?+
Is it possible to search for companies by industry or employee count rather than by slug?+
company_slug as input; there is no search or filter endpoint that accepts industry, geography, or size parameters. You can fork this API on Parse and revise it to add a company search endpoint.