canonical: https://jentic.com/apis/charthop.com/charthop

# ChartHop API

Jentic publishes the only available OpenAPI specification for ChartHop API, keeping it validated and agent-ready. ChartHop is a people-analytics and org-management platform that exposes organizations, employees, jobs, groups, and scenarios over a bearer-authenticated REST API. The 10 documented endpoints let an agent retrieve org structure, list and update people, look up jobs, and read what-if compensation scenarios. It is read-heavy: most endpoints are GET, with create-person and update-person available on the people resource.

## For AI agents

Read and update people, jobs, groups, and scenarios in a ChartHop org. Bearer-authenticated REST API with 10 endpoints under /v1/org.

## Scope

Does not handle payroll runs, benefits enrolment, or applicant tracking - use for ChartHop org structure, people, jobs, and scenarios only.

## Capabilities

- List the organizations the authenticated token has access to via GET /v1/org
- Retrieve an org's full record including reporting structure via GET /v1/org/{orgId}
- List and look up people in an organization through /v1/org/{orgId}/person endpoints
- Create a new person record under an org and PATCH that record to update fields
- List jobs and retrieve a single job definition for compensation and headcount work
- List scenarios to inspect what-if org and headcount plans
- List groups to read department, team, and other employee groupings

## Use cases

### Sync new hires from an ATS into ChartHop

When a candidate is moved to 'hired' in an applicant tracking system, an agent can call POST /v1/org/{orgId}/person to register the new employee in ChartHop with their job, start date, and reporting line. This keeps the org chart and headcount metrics in sync without a manual import. The single-endpoint create flow makes this a low-effort integration.

Example prompt: Create a person in ChartHop org acme with name 'Jane Doe', title 'Senior Engineer', and start date 2026-07-01

### Pull org structure for an internal directory

Combine GET /v1/org/{orgId}/person and GET /v1/org/{orgId}/group to build an internal employee directory with names, titles, and group membership. Because the endpoints return structured JSON, an agent can produce the directory in one pass without scraping HTML or parsing exports.

Example prompt: List all persons in ChartHop org acme, then list all groups, and emit a CSV mapping each person to their primary group

### Reconcile job definitions with a compensation review

Call GET /v1/org/{orgId}/job to enumerate jobs and GET /v1/org/{orgId}/scenario to fetch active what-if scenarios. An agent can compare the two and highlight roles whose target compensation has drifted from the latest scenario, which is useful as a check before a comp cycle is finalised.

Example prompt: List all jobs in ChartHop org acme, list all scenarios, and return any job whose current title appears in a scenario but with a different compensation band

### Surface ChartHop people data inside an AI agent

An AI agent uses Jentic to discover the ChartHop person endpoints, loads their schema, and answers natural-language questions like 'who reports to the head of engineering?' by combining list-person and get-person calls. The bearer-auth setup is handled by Jentic so the agent never sees the raw token.

Example prompt: Search Jentic for 'find people in charthop', load the list-persons schema, and return the names and titles of all people reporting to the person with title 'VP Engineering' in org acme

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v1/org | List organizations |
| GET | /v1/org/{orgId} | Get an organization |
| GET | /v1/org/{orgId}/person | List persons in an organization |
| POST | /v1/org/{orgId}/person | Create a person |
| PATCH | /v1/org/{orgId}/person/{personId} | Update a person |
| GET | /v1/org/{orgId}/job | List jobs |
| GET | /v1/org/{orgId}/scenario | List scenarios |
| GET | /v1/org/{orgId}/group | List groups |

## Key resources

- **Organizations** — List and retrieve ChartHop organizations the token can access
- **Persons** — List, get, create, and update employee records under an org
- **Jobs** — List and retrieve job definitions used for headcount and compensation
- **Scenarios** — List what-if scenarios for org and compensation planning
- **Groups** — List groups (departments, teams, custom segments) within an org

## Why Jentic

- **Setup:** Wiring ChartHop by hand means learning its bearer token auth and attaching the token to every org, person, and job call yourself. Through Jentic you install once, import ChartHop from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** ChartHop puts the org id in the URL path (/v1/org/{orgId}/...), so a rule can pin your agent to one org: it can read and create people, jobs, and groups there and nothing else. You choose the operations it may call, so updating a person record is not included unless you add it.
- **Credential handling:** Your ChartHop bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list charthop people' or 'create a charthop person', and Jentic returns the matching ChartHop operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HiBob API** — HiBob is a full HRIS - choose it over ChartHop when you need payroll, time off, and onboarding rather than org-chart analytics.
- **Chartbrew API** — Chartbrew is an open-source BI tool - pull people data from ChartHop and chart it in Chartbrew.
- **ChartMogul API** — ChartMogul tracks SaaS revenue - combine with ChartHop for revenue-per-employee reporting.

## FAQ

### Why is there no official OpenAPI spec for ChartHop API?

ChartHop does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call ChartHop API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the ChartHop API use?

ChartHop uses HTTP bearer-token authentication. Every request must send 'Authorization: Bearer <token>' against api.charthop.com. Through Jentic, the token sits in your encrypted Jentic One instance and is injected at execution time so the agent never sees it.

### Can I create new employees with the ChartHop API?

Yes. POST /v1/org/{orgId}/person creates a person record in the specified org. You can update existing people with PATCH /v1/org/{orgId}/person/{personId}. There is no DELETE-person endpoint in this spec - terminations are handled by editing the person record.

### How do I list all people in a ChartHop org through Jentic?

Run pip install jentic, set JENTIC_AGENT_API_KEY, then search 'list charthop people'. Jentic returns GET /v1/org/{orgId}/person with its query schema. Load the schema, supply your orgId, and execute - the agent gets the full person list without parsing docs.

### Are there documented rate limits for the ChartHop API?

The OpenAPI spec does not declare rate-limit headers or per-token quotas. ChartHop's HR data is typically read in batch, so design your agent to handle a 429 response by backing off and retrying, and read any RateLimit headers the live service returns to learn the active limits.

### Can the ChartHop API return what-if compensation scenarios?

Yes - GET /v1/org/{orgId}/scenario lists scenarios attached to an org. The endpoint returns each scenario's identifier and metadata, which an agent can join with GET /v1/org/{orgId}/job to compare current jobs against scenario-defined target bands.

### Can I limit what my agent is allowed to do with the ChartHop API?

Yes. Because you run Jentic One yourself, your own rules decide which ChartHop operations and credentials the agent may use. Since the org id lives in the URL path (/v1/org/{orgId}/...), you can pin the agent to a single org and grant only the calls it needs, such as listing people, jobs, and groups. Updating a person with PATCH /v1/org/{orgId}/person/{personId} is not available to the agent unless you explicitly add that operation.
