# Jointl Developer Documentation > Build secure integrations with the Jointl REST API, OAuth, MCP, Zapier, and Greenhouse. - [Jointl developer documentation](https://docs.join.tl/index.md): Use the Jointl developer platform to read authorized workspace data, build protected workflows, connect AI clients, and integrate Jointl with Zapier or Greenhouse. - [Getting started](https://docs.join.tl/getting-started/index.md): Jointl offers several supported ways to connect. - [Choose an access method](https://docs.join.tl/getting-started/choose-access.md): Use a personal API key for a script acting as one Jointl member. - [Make your first REST request](https://docs.join.tl/getting-started/first-api-call.md): The API origin is https://api.join.tl. - [Authentication and OAuth](https://docs.join.tl/concepts/authentication.md): REST accepts a Jointl personal API key, service-account API key, or OAuth bearer access token. - [Permissions and company scope](https://docs.join.tl/concepts/permissions.md): Authentication never grants broader access than the connected Jointl member or service account has in Jointl. - [Errors, rate limits, and retries](https://docs.join.tl/concepts/errors-retries.md): REST failures use a consistent envelope with a stable machine code, a non-sensitive message, and the request ID. - [Pagination and idempotency](https://docs.join.tl/concepts/pagination-idempotency.md): List operations return items, hasMore, and nextCursor. - [Safe writes and human approval](https://docs.join.tl/concepts/safe-writes.md): Every general REST and MCP write follows prepare, approve, and confirm: - [Machine-readable contracts](https://docs.join.tl/concepts/standards.md): Use the downloadable contracts to generate clients, validate payloads, configure API tools, or index the documentation for an AI system. - [Versioning and changelog](https://docs.join.tl/concepts/versioning.md): All HTTP endpoints in this documentation use /api/v1. - [REST API](https://docs.join.tl/rest-api/index.md): The Jointl REST API is rooted at https://api.join.tl/api/v1. - [HTTP endpoint map](https://docs.join.tl/rest-api/http-endpoints.md): The bundled OpenAPI contract contains exact parameters, schemas, authentication, and responses. - [Jointl operation reference](https://docs.join.tl/rest-api/operations.md): The Jointl API provides 31 read operations and 25 protected write operations. - [Jointl MCP](https://docs.join.tl/jointl-mcp/index.md): Jointl MCP uses Streamable HTTP at the root endpoint https://mcp.join.tl/. - [MCP tools and skills](https://docs.join.tl/jointl-mcp/reference.md): A fully authorized connection can expose 50 tools: 26 reads, 23 prepare tools, and jointl_confirm_action. - [Changelog](https://docs.join.tl/changelog/index.md): Developer-platform releases are recorded here. - [v1.0.0](https://docs.join.tl/changelog/v1.0.0.md): Introduced the Jointl developer-platform reference with: - [Authorize an approved OAuth client](https://docs.join.tl/api-reference/oauth/authorize-an-approved-oauth-client.md): Starts authorization code flow. PKCE S256 and an exact resource indicator are required. - [Exchange or refresh an OAuth token](https://docs.join.tl/api-reference/oauth/exchange-or-refresh-an-oauth-token.md): Exchanges an authorization code with its PKCE verifier, or rotates a refresh token. - [Revoke an OAuth token](https://docs.join.tl/api-reference/oauth/revoke-an-oauth-token.md) - [Get JSON Web Key Set](https://docs.join.tl/api-reference/oauth/get-json-web-key-set.md) - [Get OpenID Connect UserInfo](https://docs.join.tl/api-reference/oauth/get-openid-connect-userinfo.md) - [Get OAuth authorization-server metadata](https://docs.join.tl/api-reference/discovery/get-oauth-authorization-server-metadata.md) - [Get OpenID Connect discovery metadata](https://docs.join.tl/api-reference/discovery/get-openid-connect-discovery-metadata.md) - [Get REST protected-resource metadata](https://docs.join.tl/api-reference/discovery/get-rest-protected-resource-metadata.md) - [List available operations](https://docs.join.tl/api-reference/operations/list-available-operations.md): Returns only operations allowed by the credential scope and the member’s current permissions. - [Dispatch a read operation](https://docs.join.tl/api-reference/operations/dispatch-a-read-operation.md): Calls a documented read operation by ID. Send its input object directly or wrapped as `{ "input": ... }`. - [Get workspace access](https://docs.join.tl/api-reference/operations/get-workspace-access.md): Return the current Jointl workspace and the access granted to the member. - [Search Jointl](https://docs.join.tl/api-reference/operations/search-jointl.md): Quickly search the connected workspace across authorized people, emails, attributes, companies, tags, job titles, and Flows using the same permissions and relevance ranking as the Jointl UI. An optional source-type filter is applied before ranking. Returns at most 30 top matches and is not an exhaus… - [List companies](https://docs.join.tl/api-reference/operations/list-companies.md): List Jointl companies visible through the member’s current company scope. - [List Flows](https://docs.join.tl/api-reference/operations/list-flows.md): List Flows available through the member’s role, sharing, ownership, and company access. - [Get Flow](https://docs.join.tl/api-reference/operations/get-flow.md): Get one visible Flow. Sensitive automation tokens are never returned. - [Get Flow authoring capabilities](https://docs.join.tl/api-reference/operations/get-flow-authoring-capabilities.md): Read supported Flow types, sections, question types, valid section ordering, current authoring permissions, and protected actions before proposing a Flow. - [List Flow templates](https://docs.join.tl/api-reference/operations/list-flow-templates.md): List visible Private and Public Jointl Library templates in one category, including their questions, so an assistant can reuse workspace content and valid IDs. - [Search Flow questions](https://docs.join.tl/api-reference/operations/search-flow-questions.md): Search relevant questions across visible pre-screening, assessment, test, reference, exit, and Team Pulse templates without loading entire catalogs into the assistant context. - [List manual reference templates for a Flow](https://docs.join.tl/api-reference/operations/list-manual-reference-templates-for-a-flow.md): List the exact reference forms configured for manual collection on one visible Flow. - [Get complete Flow blueprint](https://docs.join.tl/api-reference/operations/get-complete-flow-blueprint.md): Read one visible Flow’s latest editable configuration and expanded question/template design. Sensitive automation tokens and protected automation settings are excluded. - [Get Glow Moments and Team Pulse operations](https://docs.join.tl/api-reference/operations/get-glow-moments-and-team-pulse-operations.md): Read one visible Performance Flow’s participants, cadence, recent Glow Moments and Team Pulse cycles, and completion state. Shareable participant and scoreboard links are returned only when explicitly requested. - [List Checks](https://docs.join.tl/api-reference/operations/list-checks.md): List Checks visible through the member’s role, sharing, creator, manager, and company permissions. - [Analyze Check evidence](https://docs.join.tl/api-reference/operations/analyze-check-evidence.md): Return a paginated, evidence-based ranking within each visible Flow, including matching scores, measured high and low evidence, evidence coverage, and verification state. It never recommends an employment decision. - [Get one Check](https://docs.join.tl/api-reference/operations/get-one-check.md): Return the profile, Flow context, recent visible activity, and optional condensed evidence for one authorized Check. Sensitive access tokens are never returned. - [Get Check report](https://docs.join.tl/api-reference/operations/get-check-report.md): Return the authorized full factual Check report, including open-text answers, answered AI follow-ups, Tests, reference narratives and integrity context, employment confirmations, attributes, and scores—but no hiring recommendation. - [Get verification results for a Check](https://docs.join.tl/api-reference/operations/get-verification-results-for-a-check.md): Return the verification types available to the member and their latest results for one authorized Check. Image content is not returned. - [Get public profile results for a Check](https://docs.join.tl/api-reference/operations/get-public-profile-results-for-a-check.md): Return the latest public-profile discovery results visible for one authorized Check. Image content is not returned. - [List reference responses for a Check](https://docs.join.tl/api-reference/operations/list-reference-responses-for-a-check.md): List authorized reference request and completion summaries for one visible Check with stable cursor pagination. - [Get one reference response](https://docs.join.tl/api-reference/operations/get-one-reference-response.md): Return one authorized, normalized reference response and its Check-level average metrics. - [List Employees](https://docs.join.tl/api-reference/operations/list-employees.md): List Employees visible through the member’s role, sharing, manager, creator, and company permissions. - [Analyze Employee performance evidence](https://docs.join.tl/api-reference/operations/analyze-employee-performance-evidence.md): Return a pageable factual ranking and review signals from Team Pulse and Glow Moments for only the Employees visible to the member. It never recommends an employment decision. - [Get one Employee](https://docs.join.tl/api-reference/operations/get-one-employee.md): Return the profile, current work context, recent visible activity, and optional performance evidence for one authorized Employee. - [Get Exit Intelligence result](https://docs.join.tl/api-reference/operations/get-exit-intelligence-result.md): Return the latest or one exact authorized Exit Intelligence request for a visible Employee, including completed answers and calculated metrics. Public access tokens are never returned. - [List Talent Pool profiles](https://docs.join.tl/api-reference/operations/list-talent-pool-profiles.md): List company-scoped Talent Pool profiles. Profiles without an authorized company match are not returned. - [Get one Talent Pool profile](https://docs.join.tl/api-reference/operations/get-one-talent-pool-profile.md): Return the profile and optional evidence overview for one company-scoped Talent Pool person. - [List Talent Pool reference responses](https://docs.join.tl/api-reference/operations/list-talent-pool-reference-responses.md): Return reference responses only when both Talent Pool and response permissions allow it. - [List Autopilots](https://docs.join.tl/api-reference/operations/list-autopilots.md): List Autopilot groups available through the member’s current permissions and Flow or company access. Shareable access links are omitted from list results. - [Get Autopilot and public links](https://docs.join.tl/api-reference/operations/get-autopilot-and-public-links.md): Return one visible Autopilot and its reusable public access links. Anyone holding an active link can start the attached Flow. - [Get Jointl Insights](https://docs.join.tl/api-reference/operations/get-jointl-insights.md): Return the General, Performance, or Exit Intelligence view available to the member for an inclusive UTC date range, using the same calculations shown in Jointl. - [List recent Zapier events](https://docs.join.tl/api-reference/operations/list-recent-zapier-events.md): Return up to three recent events that the connected member can access, matching one Zapier trigger and its filters. - [Get one Zapier event](https://docs.join.tl/api-reference/operations/get-one-zapier-event.md): Retrieve the full payload for one opaque event notification through the member’s current Jointl permissions. - [Prepare a protected write](https://docs.join.tl/api-reference/actions/prepare-a-protected-write.md): Creates a five-minute preview and confirmation token without modifying Jointl data. - [Confirm an approved prepared action](https://docs.join.tl/api-reference/actions/confirm-an-approved-prepared-action.md): Executes exactly the prepared input after explicit human approval and a current permission and record-state check. - [Execute an approved Zapier action](https://docs.join.tl/api-reference/zapier/execute-an-approved-zapier-action.md): Execution available only to the installed Zapier app for approved, non-destructive, idempotent operations. - [Create or renew a Zapier webhook subscription](https://docs.join.tl/api-reference/zapier/create-or-renew-a-zapier-webhook-subscription.md): Creates a 21-day Zapier-owned subscription. Target origins are allowlisted by Jointl. - [Disable a Zapier webhook subscription](https://docs.join.tl/api-reference/zapier/disable-a-zapier-webhook-subscription.md) - [Receive a signed Greenhouse webhook](https://docs.join.tl/api-reference/receive-a-signed-greenhouse-webhook.md): Validates Signature over the raw body and requires a durable Greenhouse-Event-ID for replay protection. - [List active Jointl hiring Flows as assessment tests](https://docs.join.tl/api-reference/list-active-jointl-hiring-flows-as-assessment-tests.md) - [Create or reconcile a Jointl assessment request](https://docs.join.tl/api-reference/create-or-reconcile-a-jointl-assessment-request.md) - [Get Jointl assessment status](https://docs.join.tl/api-reference/get-jointl-assessment-status.md) - [Acknowledge a Greenhouse response-processing error](https://docs.join.tl/api-reference/acknowledge-a-greenhouse-response-processing-error.md) - [Zapier hook](https://docs.join.tl/api-reference/websockets/zapierhook.md): Target URL registered through POST /api/v1/webhook-subscriptions. - [Zapier integration](https://docs.join.tl/integrations/zapier/index.md): Jointl's Zapier app is an approved OAuth client with event triggers, selectable searches, and Zapier-specific actions. - [Zapier component reference](https://docs.join.tl/integrations/zapier/reference.md): Jointl for Zapier 1.0.0 supports 16 triggers, 7 searches, and 14 actions. - [Greenhouse integration](https://docs.join.tl/integrations/greenhouse/index.md): The Jointl Greenhouse integration receives selected recruiting webhooks and implements the Greenhouse assessment-partner API. - [Greenhouse endpoint reference](https://docs.join.tl/integrations/greenhouse/reference.md): The production origin is https://api.join.tl. - [AI clients](https://docs.join.tl/integrations/ai-clients/index.md): ChatGPT, Claude, Codex, and generic MCP clients all connect to the same Jointl MCP server and discover the same permission-dependent tools. - [Connect ChatGPT](https://docs.join.tl/integrations/ai-clients/chatgpt.md): If your ChatGPT workspace permits custom MCP connections, enable Developer mode under Settings → Security and login. - [Connect Claude](https://docs.join.tl/integrations/ai-clients/claude.md): Configure a remote Streamable HTTP MCP server at https://mcp.join.tl/ and complete OAuth authorization. - [Connect Codex](https://docs.join.tl/integrations/ai-clients/codex.md): Connect Codex directly to Jointl MCP. - [Connect a generic MCP client](https://docs.join.tl/integrations/ai-clients/generic-mcp.md): The client must support MCP Streamable HTTP, OAuth protected-resource discovery, PKCE S256, and the JSON-RPC initialize, tools/list, and tools/call methods. ## OpenAPI Specs - [greenhouse-v1.openapi](/specs/openapi/greenhouse-v1.openapi.yaml) - [jointl-api-v1.openapi](/specs/openapi/jointl-api-v1.openapi.yaml) ## AsyncAPI Specs - [zapier-events-v1.asyncapi](/specs/asyncapi/zapier-events-v1.asyncapi.yaml)