Hex
DATA · DATA & ANALYTICS
Projects, their runs and outputs, cells, and collections in that workspace.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
hex_delete_cells_by_cellidWRITEDelete Cell via DELETE /cells/{cellId}. Delete a cell from the draft version of a project by ID This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute Destructive and permanent; Hex offers no undo through this API.
hex_delete_groups_by_groupidWRITEDelete Group via DELETE /groups/{groupId}. Destructive and permanent; Hex offers no undo through this API.
hex_delete_guides_draft_by_orgguidefileidWRITEDelete Guide Draft via DELETE /guides/draft/{orgGuideFileId}. Destructive and permanent; Hex offers no undo through this API.
hex_delete_projects_by_projectid_runs_by_runidWRITECancel Run via DELETE /projects/{projectId}/runs/{runId}. Cancel a project run. Destructive and permanent; Hex offers no undo through this API.
hex_get_cellsREADList Cells via GET /cells. List cells from the draft version of a project. Returns code, SQL, and markdown cell contents. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_get_cells_by_cellidREADGet Cell via GET /cells/{cellId}. Get a single cell by ID This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_get_cells_by_cellid_imageREADGet Chart Image From Logic via GET /cells/{cellId}/image. Get the rendered PNG image of a chart cell from the project's current notebook (draft) session. The cell must have been executed and must not be in an error state. Only chart-type cells are supported. This endpoint is subject to the following rate limits: - `hex-chart-image`: Rate limits for rendering chart images - Max 20 requests per minute
hex_get_cells_by_cellid_outputREADGet Cell Output via GET /cells/{cellId}/output. **Unstable**: This endpoint is unstable API. Hex may make breaking changes to this endpoint without notice. Get the latest output preview for a SQL cell in the active draft notebook session. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_collectionsREADList Collections via GET /collections.
hex_get_collections_by_collectionidREADGet Collection via GET /collections/{collectionId}.
hex_get_context_topicsREADList Topics via GET /context/topics. List thread topics in the workspace, sorted by name. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_data_connectionsREADList Data Connections via GET /data-connections. List the workspace's data connections. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_data_connections_by_dataconnectionidREADGet Data Connection via GET /data-connections/{dataConnectionId}. Get a single data connection by its ID. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_groupsREADList Groups via GET /groups.
hex_get_groups_by_groupidREADGet Group via GET /groups/{groupId}.
hex_get_guides_draft_listREADList Draft Guides via GET /guides/draft/list. List draft guides This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_get_projectsREADList Projects via GET /projects. List all viewable projects, sorted by most recently created first.
hex_get_projects_by_projectidREADGet Project via GET /projects/{projectId}. Get metadata about a single project. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_projects_by_projectid_queriedtablesREADGet Queried Tables via GET /projects/{projectId}/queriedTables. Given a project ID, return the list of warehouse tables queried in the project.
hex_get_projects_by_projectid_runsREADGet Project Runs via GET /projects/{projectId}/runs. Get the status of runs of a project. By default, all run types are returned (API-triggered, scheduled, and publish/refresh runs). Use the `runTriggerFilter` parameter to filter to a specific type. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_projects_by_projectid_runs_by_runidREADGet Run Status via GET /projects/{projectId}/runs/{runId}. Get the status of a project run. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800) `enable_expanded_stats` is sent as the `enable-expanded-stats` request header, not as a query parameter.
hex_get_projects_by_projectid_runs_by_runid_cells_by_staticid_imageREADGet Chart Image From Run via GET /projects/{projectId}/runs/{runId}/cells/{staticId}/image. Get the rendered PNG image of a chart cell from a completed run by staticCellId. The cell must have been executed and must not be in an error state. Only chart-type cells are supported. This endpoint is subject to the following rate limits: - `hex-chart-image`: Rate limits for rendering chart images - Max 20 requests per minute
hex_get_suggestionsREADList Suggestions via GET /suggestions. List context suggestions for the workspace. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_get_suggestions_by_suggestionidREADGet Suggestion via GET /suggestions/{suggestionId}. Get a single context suggestion by id, including its evidence sources and the proposed changes from its most recent review run. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_get_threadsREADList Threads via GET /threads. List agent threads in the workspace, sorted by most recently created first. Requires Manager org role or higher. Workspace admins receive every non-private thread; managers receive threads they created plus Threads-type threads on projects they have access to. Threads marked private are returned with their title redacted. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_threads_by_idREADGet Thread via GET /threads/{id}. Get the response of an agent thread. Returns the current status (RUNNING, IDLE, or ERROR) and the agent's response content when available. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_threads_by_threadid_messagesREADGet Thread Messages via GET /threads/{threadId}/messages. List the messages in an agent thread, rendered as a single flat list of text blocks. Within a page messages are chronological (oldest first); each text block is prefixed with the authoring role, and thinking and error blocks are tagged. Each block includes the creation time of its originating message. Tool-call, tool-result, and mention blocks are omitted, and inline references are left as raw tags. By default the most recent page is returned (matching the MCP get_thread tool); pass the `before` cursor to fetch older messages and `after` to fetch newer ones. Set `full` to include JSON-encoded message records with thinking, tool calls, results, and mentions. Supports cursor pagination with a maximum page size of 50. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_get_usersREADList Users via GET /users. List all users in the workspace This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_get_users_meREADMe via GET /users/me. Returns information about the current logged in user. User metadata will be omitted when authenticating with a workspace token. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_patch_cells_by_cellidWRITEUpdate Cell via PATCH /cells/{cellId}. Update a cell's source and/or data connection. For SQL cells, can update the SQL source, output dataframe, and data connection. For code and markdown cells, can update the source. Returns the updated cell. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_patch_collections_by_collectionidWRITEEdit Collection via PATCH /collections/{collectionId}.
hex_patch_data_connections_by_dataconnectionidWRITEEdit Data Connection via PATCH /data-connections/{dataConnectionId}.
hex_patch_data_connections_by_dataconnectionid_schemaWRITEUpdate Data Connection Schema via PATCH /data-connections/{dataConnectionId}/schema. Use this endpoint to add or remove a status (including endorsements) from databases, schemas, and tables within a data connection This endpoint uses atomic semantics - if any update in the batch fails validation, the entire request fails and no changes are applied
hex_patch_groups_by_groupidWRITEEdit Group via PATCH /groups/{groupId}.
hex_patch_projects_by_projectidWRITEUpdate Project via PATCH /projects/{projectId}. Add or remove a status, including endorsements, from a project. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_patch_projects_by_projectid_sharing_collectionsWRITEEdit Project Sharing Collections via PATCH /projects/{projectId}/sharing/collections. Add a project to collections or remove it from collections. For projects, use `CAN_VIEW` to grant the UI permission labeled "Can explore". Use `APP_ONLY` to grant the UI permission labeled "Can view app". Workspace tokens calling this endpoint need to have "Collections -> Write access" scope in addition to "Projects -> Write access" scope. A personal access token (`hxtp_`) needs its own owner to hold those two permissions; a workspace token (`hxtw_`) needs them ticked in its Hex permission grid.
hex_patch_projects_by_projectid_sharing_groupsWRITEEdit Project Sharing Groups via PATCH /projects/{projectId}/sharing/groups. Add groups to a project or update/remove their project sharing access. Use CAN_VIEW for the UI permission labeled "Can explore" and APP_ONLY for "Can view app". Use NONE to remove a group's access. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_patch_projects_by_projectid_sharing_usersWRITEEdit Project Sharing Users via PATCH /projects/{projectId}/sharing/users. Add users to a project or update/remove their project sharing access. Use CAN_VIEW for the UI permission labeled "Can explore" and APP_ONLY for "Can view app". Use NONE to remove a user's access. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_patch_projects_by_projectid_sharing_workspaceandpublicWRITEEdit Project Sharing Org And Public via PATCH /projects/{projectId}/sharing/workspaceAndPublic. Update workspace or public-web sharing for a project. For projects, use CAN_VIEW to grant the UI permission labeled "Can explore" and APP_ONLY for "Can view app". Use NONE to remove access. Omitted fields are left unchanged. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_patch_semantic_models_by_semanticprojectidWRITEUpdate Semantic Project (via /semantic-models) via PATCH /semantic-models/{semanticProjectId}. Use this endpoint to add or remove a status (including endorsements) from datasets and views within a semantic project This endpoint uses atomic semantics - if any update in the batch fails validation, the entire request fails and no changes are applied. Hex publishes this route as the regex alternation `/semantic-(projects|models)/{semanticProjectId}` in its own OpenAPI document; the literal alternation is NOT a route (404 NOT_FOUND, measured 2026-09-16) and both spellings are, answering 401 to a bogus token. This tool calls the spelling in its name; the other spelling is the same resource under an alias path, so either will do.
hex_patch_semantic_projects_by_semanticprojectidWRITEUpdate Semantic Project (via /semantic-projects) via PATCH /semantic-projects/{semanticProjectId}. Use this endpoint to add or remove a status (including endorsements) from datasets and views within a semantic project This endpoint uses atomic semantics - if any update in the batch fails validation, the entire request fails and no changes are applied. Hex publishes this route as the regex alternation `/semantic-(projects|models)/{semanticProjectId}` in its own OpenAPI document; the literal alternation is NOT a route (404 NOT_FOUND, measured 2026-09-16) and both spellings are, answering 401 to a bogus token. This tool calls the spelling in its name; the other spelling is the same resource under an alias path, so either will do.
hex_post_cellsWRITECreate Cell via POST /cells. Create a new cell in the draft version of a project This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_post_collectionsWRITECreate Collection via POST /collections.
hex_post_data_connectionsWRITECreate Data Connection via POST /data-connections.
hex_post_embedding_createpresignedurl_by_projectidWRITECreate Presigned Url via POST /embedding/createPresignedUrl/{projectId}. Create an embedded url for a project
hex_post_groupsWRITECreate Group via POST /groups.
hex_post_guides_publishWRITEPublish Guide Drafts via POST /guides/publish. Publish all currently drafted guides.
hex_post_projectsWRITECreate Project via POST /projects. Create a new project in the workspace with the specified title, and optionally a description. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_post_projects_by_projectid_runsWRITERun Project via POST /projects/{projectId}/runs. Trigger a run of the latest published version of a project. This endpoint is subject to the following rate limits: - `hex-run-kernel`: Rate limits for starting project runs or sending thread messages - Max requests per minute may vary - Max requests per hour may vary
hex_post_projects_exportWRITEExport Project via POST /projects/export. Exports a Hex project in the *.hex.yaml format. Availability of this endpoint varies by organization. Contact Hex support to request access. This endpoint is subject to the following rate limits: - `hex-api`: Default rate limit group for the Hex API - Max requests per minute may vary (default: 30) - Max requests per hour may vary (default: 1800)
hex_post_semantic_models_by_semanticprojectid_ingestWRITEIngest Semantic Project (via /semantic-models) via POST /semantic-models/{semanticProjectId}/ingest. Ingest a semantic project from a zip file. This API endpoint is subject to a maximum of 3 requests per minute. Hex publishes this route as the regex alternation `/semantic-(projects|models)/{semanticProjectId}` in its own OpenAPI document; the literal alternation is NOT a route (404 NOT_FOUND, measured 2026-09-16) and both spellings are, answering 401 to a bogus token. This tool calls the spelling in its name; the other spelling is the same resource under an alias path, so either will do.
hex_post_semantic_projects_by_semanticprojectid_ingestWRITEIngest Semantic Project (via /semantic-projects) via POST /semantic-projects/{semanticProjectId}/ingest. Ingest a semantic project from a zip file. This API endpoint is subject to a maximum of 3 requests per minute. Hex publishes this route as the regex alternation `/semantic-(projects|models)/{semanticProjectId}` in its own OpenAPI document; the literal alternation is NOT a route (404 NOT_FOUND, measured 2026-09-16) and both spellings are, answering 401 to a bogus token. This tool calls the spelling in its name; the other spelling is the same resource under an alias path, so either will do.
hex_post_suggestions_by_suggestionidWRITEUpdate Suggestion via POST /suggestions/{suggestionId}. Update the status of a context suggestion. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_post_suggestions_by_suggestionid_changes_by_changeidWRITEUpdate Suggestion Change via POST /suggestions/{suggestionId}/changes/{changeId}. Update the status of an individual proposed change within a context suggestion. The change is either a file update or a data-warehouse update, selected by `updateTarget`. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_post_suggestions_by_suggestionid_reviewWRITETrigger Suggestion Review via POST /suggestions/{suggestionId}/review. Trigger a background review agent run for the given context suggestion. If a review is already in flight for this suggestion, returns the current run. This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute
hex_post_threadsWRITECreate Thread via POST /threads. Start an agent thread with a prompt. The Hex agent will analyze data and respond to the prompt. The thread runs asynchronously — poll its status or visit the returned URL to view progress. Availability of this endpoint varies by organization. Contact Hex support to request access. This endpoint is subject to the following rate limits: - `hex-run-kernel`: Rate limits for starting project runs or sending thread messages - Max requests per minute may vary - Max requests per hour may vary
hex_post_threads_by_id_followupWRITEContinue Thread via POST /threads/{id}/followup. Continue an existing agent thread with a follow-up prompt. This endpoint does not support queuing: the thread must be idle before a follow-up can be sent. Availability of this endpoint varies by organization. Contact Hex support to request access. This endpoint is subject to the following rate limits: - `hex-run-kernel`: Rate limits for starting project runs or sending thread messages - Max requests per minute may vary - Max requests per hour may vary
hex_post_users_by_userid_deactivateWRITEDeactivate User via POST /users/{userId}/deactivate. Deactivate a user This endpoint is subject to the following rate limits: - `hex-api-30rpm`: Rate limit group for the Hex API at 30 requests per minute - Max 30 requests per minute Destructive and permanent; Hex offers no undo through this API.
hex_put_guides_draftWRITEUpsert Guide Draft via PUT /guides/draft. Update or create guide drafts by filePath. Accepts a dictionary mapping file paths to their contents. For each file: - If the guide doesn't exist, it will be created. - If the guide exists but has no draft, a new draft will be created. - If the guide exists with a draft, the draft contents will be updated.
Often connected alongside
Put Hex behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.