Hex API (1.0.0)
Download OpenAPI specification:Download
API specification for the Hex External API
CreatePresignedUrl
Create an embedded url for a project
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
Request Body schema: application/jsonrequired
| hexUserAttributes | object A map of attributes meant to populate hex_user_attributes in the app for the running user. This must be a string to string map. For more complexity, you can do json serialization |
| scope | Array of strings Optionally include additional permissions for a user to do in an embedded app. Valid scopes include: EXPORT_PDF: allow users to download the app as a pdf EXPORT_CSV: allow users to download CSVs from tables |
| inputParameters | object Optionall sets default values for input states. The keys are the names of the inputs and the values are the default values for those inputs. |
| expiresIn | number <double> Default: "15000" Optionally specify the expiration time of the embedding url in milliseconds. This represents the maximum allowed time between receiving the API response with the single-use signed URL, and requesting the signed URL for the iframe. Default is 15 seconds. Maximum value is 300 seconds (5 minutes). |
object Optionally customize the display of the embedded app | |
| testMode | boolean Run the embed API call in test mode. Does not run the app and will not count towards rate limits or embedding usage counts. |
| property name* additional property | any |
Responses
Request samples
- Payload
{- "hexUserAttributes": {
- "orgId": "my-org-id",
- "groupId": "my-group-id"
}, - "scope": [
- "string"
], - "inputParameters": {
- "property1": null,
- "property2": null
}, - "expiresIn": "15000",
- "displayOptions": {
- "theme": "light",
- "showEmbeddedRunButton": true,
- "noEmbedHeaderPadding": true,
- "noEmbedBasePadding": true,
- "noEmbedOutline": true,
- "noEmbedFooter": true,
- "property1": null,
- "property2": null
}, - "testMode": true,
- "property1": null,
- "property2": null
}Response samples
- 200
- 400
- 403
- 422
{- "url": "string"
}CreateProject
Create a new project.
Creates a new project in the workspace with the specified title. Optionally provide a description and project language.
Authorizations:
Request Body schema: application/jsonrequired
| description | string |
| title required | string |
Responses
Request samples
- Payload
{- "description": "string",
- "title": "string"
}Response samples
- 201
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}ListProjects
List all viewable projects, sorted by most recently created first.
Authorizations:
query Parameters
| includeArchived | boolean Default: false |
| includeComponents | boolean Default: false |
| includeTrashed | boolean Default: false |
| includeSharing | boolean Default: false |
| statuses | Array of strings Default: "" |
| categories | Array of strings Default: "" |
| creatorEmail | string Default: null |
| ownerEmail | string Default: null |
| collectionId | string Default: null |
| limit | integer <int32> (PageSize) [ 1 .. 100 ] Default: "25" Number of results to fetch per page for paginated requests |
| after | any Default: null |
| before | any Default: null |
| sortBy | string (SortByEnum) Enum: "CREATED_AT" "LAST_EDITED_AT" "LAST_PUBLISHED_AT" |
| sortDirection | string (SortDirectionEnum) Enum: "DESC" "ASC" |
Responses
Response samples
- 200
- 400
- 403
{- "values": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}
], - "pagination": {
- "after": "string",
- "before": "string"
}
}GetQueriedTables
Given a project ID, return the list of warehouse tables queried in the project.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
query Parameters
| limit | integer <int32> (PageSize) [ 1 .. 100 ] Default: "25" Number of results to fetch per page for paginated requests |
| after | any Default: null |
| before | any Default: null |
Responses
Response samples
- 200
- 400
- 403
- 404
- 422
- 500
{- "values": [
- {
- "dataConnectionId": "2e0fe5a4-5860-44c6-b0fa-f448a08c1b28",
- "dataConnectionName": "string",
- "tableName": "string"
}
], - "pagination": {
- "after": "string",
- "before": "string"
}, - "traceId": "string"
}EditProjectSharingCollections
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.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
Request Body schema: application/jsonrequired
required | object | ||||||||||||
| |||||||||||||
Responses
Request samples
- Payload
{- "sharing": {
- "upsert": {
- "collections": [
- {
- "access": "NONE",
- "collection": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}
}Response samples
- 200
- 400
- 403
- 404
- 500
{- "project": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}, - "errors": [
- {
- "collectionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "reason": "string"
}
]
}EditProjectSharingOrgAndPublic
Update workspace or public-web sharing for a project.
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".
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
Request Body schema: application/jsonrequired
required | object | ||||
| |||||
Responses
Request samples
- Payload
{- "sharing": {
- "publicWeb": "NONE",
- "workspace": "NONE"
}
}Response samples
- 200
- 400
- 403
- 404
- 500
{- "project": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}, - "errors": [
- {
- "type": "workspace",
- "reason": "string"
}
]
}EditProjectSharingGroups
Add groups to a project or update/remove their project sharing access.
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".
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
Request Body schema: application/jsonrequired
required | object | ||||||||||||
| |||||||||||||
Responses
Request samples
- Payload
{- "sharing": {
- "upsert": {
- "groups": [
- {
- "access": "NONE",
- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}
}Response samples
- 200
- 400
- 403
- 404
- 500
{- "project": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}, - "errors": [
- {
- "groupIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "reason": "string"
}
]
}EditProjectSharingUsers
Add users to a project or update/remove their project sharing access.
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".
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
Request Body schema: application/jsonrequired
required | object | ||||||||||||
| |||||||||||||
Responses
Request samples
- Payload
{- "sharing": {
- "upsert": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}
}Response samples
- 200
- 400
- 403
- 404
- 500
{- "project": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}, - "errors": [
- {
- "userIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "reason": "string"
}
]
}UpdateProject
Use this endpoint to add or remove a status (including endorsements) from a project
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
Request Body schema: application/jsonrequired
| status | string or null |
Responses
Request samples
- Payload
{- "status": "string"
}Response samples
- 200
- 400
- 403
- 404
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "description": "string",
- "name": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "publishedResultsUpdatedAt": "string",
- "lastViewedAt": "string",
- "appViews": {
- "lastThirtyDays": 0,
- "lastFourteenDays": 0,
- "lastSevenDays": 0,
- "allTime": 0
}
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "timezone": "string",
- "minute": 59
}, - "daily": {
- "timezone": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezone": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezone": "string",
- "cron": "string"
}
}
], - "sharing": {
- "users": [
- {
- "access": "NONE",
- "user": {
- "email": "string"
}
}
], - "collections": [
- {
- "access": "NONE",
- "collection": {
- "name": "string"
}
}
], - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string"
}
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}GetProject
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 30 requests per minute
Authorizations:
path Parameters
| projectId required | string The project to fetch. |
query Parameters
| includeSharing | boolean Default: false Whether to include sharing metadata in the response. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "id": "string",
- "title": "string",
- "description": "string",
- "type": "PROJECT",
- "creator": {
- "email": "string"
}, - "owner": {
- "email": "string"
}, - "status": {
- "name": "string"
}, - "categories": [
- {
- "name": "string",
- "description": "string"
}
], - "reviews": {
- "required": true
}, - "analytics": {
- "appViews": {
- "allTime": 0,
- "lastSevenDays": 0,
- "lastFourteenDays": 0,
- "lastThirtyDays": 0
}, - "lastViewedAt": "string",
- "publishedResultsUpdatedAt": "string"
}, - "lastEditedAt": "string",
- "lastPublishedAt": "string",
- "createdAt": "string",
- "archivedAt": "string",
- "trashedAt": "string",
- "schedules": [
- {
- "cadence": "HOURLY",
- "enabled": true,
- "hourly": {
- "minute": 0,
- "timezone": "string"
}, - "daily": {
- "hour": 0,
- "minute": 0,
- "timezone": "string"
}, - "weekly": {
- "dayOfWeek": "SUNDAY",
- "hour": 0,
- "minute": 0,
- "timezone": "string"
}, - "monthly": {
- "day": 0,
- "hour": 0,
- "minute": 0,
- "timezone": "string"
}, - "custom": {
- "cron": "string",
- "timezone": "string"
}
}
], - "sharing": {
- "users": [
- {
- "user": {
- "email": "string"
}, - "access": "NONE"
}
], - "collections": [
- {
- "collection": {
- "name": "string"
}, - "access": "NONE"
}
], - "groups": [
- {
- "group": {
- "name": "string"
}, - "access": "NONE"
}
], - "workspace": {
- "access": "NONE"
}, - "publicWeb": {
- "access": "NONE"
}, - "support": {
- "access": "NONE"
}
}
}IngestSemanticProject
Ingest a semantic project from a zip file.
This API endpoint is subject to a maximum of 3 requests per minute.
Authorizations:
path Parameters
| semanticProjectId required | string <uuid> (SemanticProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex semantic project. This can be found from the semantic projects admin panel (in Settings). |
Request Body schema: application/jsonrequired
| verbose | boolean Default: true Whether to respond with detail on which components of the semantic layer were successfully synced |
| debug | boolean Default: false Whether to include additional debug information |
| dryRun | boolean If enabled, the sync will not actually write to the database |
Responses
Request samples
- Payload
{- "verbose": true,
- "debug": false,
- "dryRun": true
}Response samples
- 201
- 400
- 403
- 415
- 500
- 502
{- "traceId": "string",
- "contents": [
- "string"
], - "warnings": [
- "string"
], - "skipped": {
- "property1": null,
- "property2": null
}, - "problems": [
- {
- "severity": "fatal",
- "message": "string",
- "cause_paths": [
- [
- "string"
]
], - "impact_paths": [
- [
- "string"
]
], - "validated_by_json_schema": true,
- "display": "string"
}
], - "debug": {
- "metricflowModelSchemas": { }
}
}UpdateSemanticProject
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.
Authorizations:
path Parameters
| semanticProjectId required | string <uuid> (SemanticProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex semantic project. This can be found from the semantic projects admin panel (in Settings). |
Request Body schema: application/jsonrequired
required | Array of objects (SemanticObjectUpdate) Array of updates to apply | ||||||
Array
| |||||||
Responses
Request samples
- Payload
{- "updates": [
- {
- "type": "DATASET",
- "name": "string",
- "status": "string"
}
]
}Response samples
- 200
- 400
- 403
- 404
{- "updated": {
- "views": [
- {
- "status": "string",
- "name": "string"
}
], - "datasets": [
- {
- "status": "string",
- "name": "string"
}
]
}
}RunProject
Trigger a run of the latest published version of a project.
This API endpoint is subject to a maximum of 20 requests per minute and 60 requests per hour.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
header Parameters
| flag-config-override | string |
Request Body schema: application/jsonoptional
| inputParams | object Optionally specify input parameters for this project run. These should be structured as a dictionary of key/value pairs, where the key name matches the name of the variable in the Hex project. Only parameters that are added to the published app can be set via this request parameter. Any additional inputs will be ignored. It is invalid to pass in both a viewId and inputParams. If no input parameters are provided, the project will be run with the default input values. Note that if input parameters are provided, this run will not be able to update the cached values for the project, and the updateCache setting (below) will be ignored. |
| dryRun | boolean Default: "false" When true, this endpoint will perform a dry run that does not run the project. This can be useful for validating the structure of an API call, and inspecting a dummy response, without running a project. |
| updateCache | boolean Deprecated |
Array of objects (ProjectRunNotification) Optionally specify a list of notification details that will be delivered once a project run completes. Notifications can be configured for delivery to Slack channels, Hex users, or Hex groups. | |
| updatePublishedResults | boolean Default: "false" When true, the cached state of the published app will be updated with the latest run results. You must have at least "Can Edit" permissions on the project to do so. Note: this cannot be set to true if custom input parameters are provided. |
| useCachedSqlResults | boolean Default: "true" When false, the project will run without using any cached SQL results, and will update those cached SQL results. |
| viewId | string Optionally specify a SavedView viewId to use for the project run. If specified, the saved view's inputs will be used for the project run. It is invalid to pass in both a viewId and inputParams. If not specified, the default inputs will be used. |
Responses
Request samples
- Payload
{- "inputParams": {
- "text_input_1": "Hello World",
- "numeric_input_1": 123
}, - "dryRun": "false",
- "updateCache": true,
- "notifications": [
- {
- "type": "ALL",
- "includeSuccessScreenshot": "true",
- "slackChannelIds": [
- "C0000000"
], - "userIds": [
- "uuid-user-1",
- "uuid-user-2"
]
}, - {
- "type": "FAILURE",
- "includeSuccessScreenshot": "false",
- "userIds": [
- "uuid-user-1"
], - "groupIds": [
- "uuid-group-1"
]
}
], - "updatePublishedResults": "false",
- "useCachedSqlResults": "true",
- "viewId": "string"
}Response samples
- 201
- 400
- 403
- 422
- 503
{- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "runUrl": "string",
- "runStatusUrl": "string",
- "traceId": "string",
- "projectVersion": 0,
- "notifications": [
- {
- "type": "SUCCESS",
- "subject": "string",
- "body": "string",
- "recipientType": "USER",
- "includeSuccessScreenshot": true,
- "screenshotFormat": [
- "png"
], - "recipient": {
- "id": "C0123456",
- "name": "data-team",
- "isPrivate": false
}
}
]
}GetProjectRuns
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.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
query Parameters
| limit | integer <int32> (PageSize) [ 1 .. 100 ] Default: "25" Number of results to fetch per page for paginated requests |
| offset | integer <int32> (Offset) >= 0 Default: "0" Offset for paginated requests |
| statusFilter | string (ProjectRunStatus) Enum: "PENDING" "RUNNING" "ERRORED" "COMPLETED" "KILLED" "UNABLE_TO_ALLOCATE_KERNEL" Current status of a project run |
| runTriggerFilter | string (RunTypeFilter) Enum: "API" "SCHEDULED" "APP_REFRESH" "ALL" Filter by how the run was triggered
Valid values: |
Responses
Response samples
- 200
- 400
- 403
- 422
{- "runs": [
- {
- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "projectVersion": 0,
- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "runUrl": "string",
- "status": "PENDING",
- "runTrigger": "API",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "elapsedTime": 0.1,
- "flagConfigOverride": "string",
- "traceId": "string",
- "notifications": [
- {
- "type": "SUCCESS",
- "subject": "string",
- "body": "string",
- "recipientType": "USER",
- "includeSuccessScreenshot": true,
- "screenshotFormat": [
- "png"
], - "recipient": {
- "id": "C0123456",
- "name": "data-team",
- "isPrivate": false
}
}
], - "stateEvents": [
- {
- "type": "string",
- "value": "string",
- "timestamp": "string"
}
]
}
], - "nextPage": "string",
- "previousPage": "string",
- "traceId": "string"
}GetRunStatus
Get the status of a project run.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
| runId required | string <uuid> (InputRunId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a run of a Hex project. This ID is part of the response returned by the RunProject endpoint. The GetProjectRuns endpoint can also be used to find the specific runs for a project. |
header Parameters
| enable-expanded-stats | string |
Responses
Response samples
- 200
- 400
- 403
- 422
{- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "projectVersion": 0,
- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "runUrl": "string",
- "status": "PENDING",
- "runTrigger": "API",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "elapsedTime": 0.1,
- "flagConfigOverride": "string",
- "traceId": "string",
- "notifications": [
- {
- "type": "SUCCESS",
- "subject": "string",
- "body": "string",
- "recipientType": "USER",
- "includeSuccessScreenshot": true,
- "screenshotFormat": [
- "png"
], - "recipient": {
- "id": "C0123456",
- "name": "data-team",
- "isPrivate": false
}
}
], - "stateEvents": [
- {
- "type": "string",
- "value": "string",
- "timestamp": "string"
}
]
}CancelRun
Cancel a project run.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
| runId required | string <uuid> (InputRunId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a run of a Hex project. This ID is part of the response returned by the RunProject endpoint. The GetProjectRuns endpoint can also be used to find the specific runs for a project. |
Responses
Response samples
- 400
- 403
- 422
{- "details": "string",
- "traceId": "string",
- "reason": "string"
}GetChartImageFromRun
Get the rendered PNG image of a chart cell from a completed run by staticCellId. The "staticId" path parameter should be the cell's staticId (which remains stable across project versions), as opposed to its cellId (which is scoped to a specific version).
Returns a JSON object containing the base64-encoded PNG image of the chart cell as rendered at the time of the specified run, along with project/run/cell IDs and MIME type. The cell must have been executed and must not be in an error state. Only chart-type cells are supported.
The optional width and height query params set the output image size in pixels.
Both must be provided to apply, and must be between 100 and 2000.
The optional includeTitle query param includes the chart title in the image when true.
Rate limit: 20 requests per minute.
Authorizations:
path Parameters
| projectId required | string <uuid> (ProjectId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a Hex project. This can be found in the Variables side bar of the Logic View of a project, or by visiting the Project, and copying the UUID after |
| runId required | string <uuid> (InputRunId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a run of a Hex project. This ID is part of the response returned by the RunProject endpoint. The GetProjectRuns endpoint can also be used to find the specific runs for a project. |
| staticId required | string <uuid> (StaticCellId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique static ID for a cell. This can be found by going into the menu of a cell in the notebook. |
query Parameters
| width | integer <int32> (ChartImageDimension) [ 100 .. 2000 ] Chart image total dimension (width or height) in pixels. |
| height | integer <int32> (ChartImageDimension) [ 100 .. 2000 ] Chart image total dimension (width or height) in pixels. |
| includeTitle | boolean |
Responses
Response samples
- 200
- 400
- 403
- 404
- 422
- 500
{- "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "staticId": "a1fad2c1-0d45-4ff9-a7df-774e2bcf0e0b",
- "imageBase64": "string",
- "mimeType": "string"
}GetGroup
Authorizations:
path Parameters
| groupId required | string <uuid> (GroupId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a group. This can be found from the groups page (in Settings). |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "string"
}DeleteGroup
Authorizations:
path Parameters
| groupId required | string <uuid> (GroupId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a group. This can be found from the groups page (in Settings). |
Responses
Response samples
- 400
- 403
- 500
{- "details": "string",
- "traceId": "string",
- "reason": "string"
}EditGroup
Authorizations:
path Parameters
| groupId required | string <uuid> (GroupId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a group. This can be found from the groups page (in Settings). |
Request Body schema: application/jsonrequired
object | |
| name | string (Name) non-empty |
Responses
Request samples
- Payload
{- "members": {
- "remove": {
- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}, - "add": {
- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
}, - "name": "string"
}Response samples
- 200
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "string"
}ListGroups
Authorizations:
query Parameters
| after | any Default: null |
| before | any Default: null |
| limit | integer <int32> (LargerPageSize) [ 1 .. 500 ] Default: "25" Number of results to fetch per page for paginated requests |
| sortBy | string (ListGroupsSortByEnum) Enum: "CREATED_AT" "NAME" |
| sortDirection | string (SortDirectionEnum) Enum: "DESC" "ASC" |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "values": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "string"
}
], - "pagination": {
- "after": "string",
- "before": "string"
}
}CreateGroup
Authorizations:
Request Body schema: application/jsonrequired
object (GroupMembers) | |
| name required | string (Name) non-empty |
Responses
Request samples
- Payload
{- "members": {
- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}, - "name": "string"
}Response samples
- 201
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "members": {
- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
}GetDataConnection
Authorizations:
path Parameters
| dataConnectionId required | string <uuid> (DataConnectionId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a data connection. |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "athena",
- "description": "string",
- "connectionDetails": {
- "athena": {
- "accessKeyId": "string",
- "workgroup": "string",
- "catalog": "string",
- "s3OutputPath": "string",
- "port": 0.1,
- "hostname": "string"
}
}, - "connectViaSsh": true,
- "includeMagic": true,
- "allowWritebackCells": true,
- "schemaFilters": {
- "tables": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "schemas": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "databases": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}
}, - "schemaRefreshSchedule": {
- "cadence": "HOURLY",
- "enabled": true,
- "daily": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezoneString": "string",
- "cron": "string"
}
}, - "schemaRefreshAccess": "ADMINS",
- "sharing": {
- "workspace": {
- "public": "NONE",
- "guests": "NONE",
- "members": "NONE"
}, - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}EditDataConnection
Authorizations:
path Parameters
| dataConnectionId required | string <uuid> (DataConnectionId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a data connection. |
Request Body schema: application/jsonrequired
object | |
| schemaRefreshAccess | string (DataConnectionSchemaRefreshAccess) Enum: "ADMINS" "USERS_WITH_QUERY_ACCESS" |
object or null | |
object | |
| allowWritebackCells | boolean |
| includeMagic | boolean |
| connectViaSsh | boolean |
| description | string |
object or object or object or object or object or object or object (EditConnectionDetails) | |
| name | string |
Responses
Request samples
- Payload
{- "sharing": {
- "workspace": {
- "public": "NONE",
- "guests": "NONE",
- "members": "NONE"
}, - "groups": {
- "upsert": [
- {
- "access": "NONE",
- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}, - "schemaRefreshAccess": "ADMINS",
- "schemaRefreshSchedule": {
- "cadence": "HOURLY",
- "enabled": true,
- "daily": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezoneString": "string",
- "cron": "string"
}
}, - "schemaFilters": {
- "tables": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "schemas": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "databases": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}
}, - "allowWritebackCells": true,
- "includeMagic": true,
- "connectViaSsh": true,
- "description": "string",
- "connectionDetails": {
- "athena": {
- "secretAccessKey": "string",
- "accessKeyId": "string",
- "workgroup": "string",
- "catalog": "string",
- "s3OutputPath": "string",
- "port": 0.1,
- "hostname": "string"
}
}, - "name": "string"
}Response samples
- 201
- 400
- 403
- 404
- 422
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "athena",
- "description": "string",
- "connectionDetails": {
- "athena": {
- "accessKeyId": "string",
- "workgroup": "string",
- "catalog": "string",
- "s3OutputPath": "string",
- "port": 0.1,
- "hostname": "string"
}
}, - "connectViaSsh": true,
- "includeMagic": true,
- "allowWritebackCells": true,
- "schemaFilters": {
- "tables": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "schemas": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "databases": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}
}, - "schemaRefreshSchedule": {
- "cadence": "HOURLY",
- "enabled": true,
- "daily": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezoneString": "string",
- "cron": "string"
}
}, - "schemaRefreshAccess": "ADMINS",
- "sharing": {
- "workspace": {
- "public": "NONE",
- "guests": "NONE",
- "members": "NONE"
}, - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}ListDataConnections
Authorizations:
query Parameters
| after | any Default: null |
| before | any Default: null |
| limit | integer <int32> (PageSize) [ 1 .. 100 ] Default: "25" Number of results to fetch per page for paginated requests |
| sortBy | string (ListDataConnectionsSortByEnum) Enum: "CREATED_AT" "NAME" |
| sortDirection | string (SortDirectionEnum) Enum: "DESC" "ASC" |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "values": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "athena",
- "description": "string"
}
], - "pagination": {
- "after": "string",
- "before": "string"
}
}CreateDataConnection
Authorizations:
Request Body schema: application/jsonrequired
object | |
| schemaRefreshAccess | string (DataConnectionSchemaRefreshAccess) Enum: "ADMINS" "USERS_WITH_QUERY_ACCESS" |
object (SchemaRefreshScheduleApiResource) | |
object | |
| allowWritebackCells | boolean |
| includeMagic | boolean |
| connectViaSsh | boolean |
| description | string |
required | object or object or object or object or object or object or object (CreateConnectionDetails) |
| type required | string (DataConnectionApiType) Enum: "athena" "bigquery" "clickhouse" "databricks" "postgres" "redshift" "snowflake" "trino" |
| name required | string (Name) non-empty |
Responses
Request samples
- Payload
{- "sharing": {
- "workspace": {
- "public": "NONE",
- "guests": "NONE",
- "members": "NONE"
}, - "groups": [
- {
- "access": "NONE",
- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}, - "schemaRefreshAccess": "ADMINS",
- "schemaRefreshSchedule": {
- "cadence": "HOURLY",
- "enabled": true,
- "daily": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezoneString": "string",
- "cron": "string"
}
}, - "schemaFilters": {
- "tables": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "schemas": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "databases": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}
}, - "allowWritebackCells": true,
- "includeMagic": true,
- "connectViaSsh": true,
- "description": "string",
- "connectionDetails": {
- "athena": {
- "secretAccessKey": "string",
- "accessKeyId": "string",
- "workgroup": "string",
- "catalog": "string",
- "s3OutputPath": "string",
- "port": 0.1,
- "hostname": "string"
}
}, - "type": "athena",
- "name": "string"
}Response samples
- 201
- 400
- 403
- 404
- 422
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "athena",
- "description": "string",
- "connectionDetails": {
- "athena": {
- "accessKeyId": "string",
- "workgroup": "string",
- "catalog": "string",
- "s3OutputPath": "string",
- "port": 0.1,
- "hostname": "string"
}
}, - "connectViaSsh": true,
- "includeMagic": true,
- "allowWritebackCells": true,
- "schemaFilters": {
- "tables": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "schemas": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}, - "databases": {
- "exclude": {
- "values": [
- "string"
], - "matchType": "EXACT"
}, - "include": {
- "values": [
- "string"
], - "matchType": "EXACT"
}
}
}, - "schemaRefreshSchedule": {
- "cadence": "HOURLY",
- "enabled": true,
- "daily": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23
}, - "weekly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "dayOfWeek": "SUNDAY"
}, - "monthly": {
- "timezoneString": "string",
- "minute": 59,
- "hour": 23,
- "day": 1
}, - "custom": {
- "timezoneString": "string",
- "cron": "string"
}
}, - "schemaRefreshAccess": "ADMINS",
- "sharing": {
- "workspace": {
- "public": "NONE",
- "guests": "NONE",
- "members": "NONE"
}, - "groups": [
- {
- "access": "NONE",
- "group": {
- "name": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}
]
}
}UpdateDataConnectionSchema
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
Authorizations:
path Parameters
| dataConnectionId required | string <uuid> (DataConnectionId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a data connection. |
Request Body schema: application/jsonrequired
required | Array of objects (SchemaObjectUpdate) Array of updates to apply | ||||||
Array
| |||||||
Responses
Request samples
- Payload
{- "updates": [
- {
- "type": "DATABASE",
- "name": "string",
- "status": "string"
}
]
}Response samples
- 200
- 400
- 403
- 404
{- "updated": {
- "tables": [
- {
- "status": "string",
- "name": "string"
}
], - "schemas": [
- {
- "status": "string",
- "name": "string"
}
], - "databases": [
- {
- "status": "string",
- "name": "string"
}
]
}
}GetCollection
Authorizations:
path Parameters
| collectionId required | string <uuid> (CollectionId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a collection. |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "creator": {
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "sharing": {
- "users": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "groups": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "workspace": {
- "members": "string"
}
}
}EditCollection
Authorizations:
path Parameters
| collectionId required | string <uuid> (CollectionId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a collection. |
Request Body schema: application/jsonrequired
object | |
| description | string |
| name | string (Name) non-empty |
Responses
Request samples
- Payload
{- "sharing": {
- "upsert": {
- "users": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "groups": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "workspace": {
- "members": "string"
}
}
}, - "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "creator": {
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "sharing": {
- "users": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "groups": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "workspace": {
- "members": "string"
}
}
}ListCollections
Authorizations:
query Parameters
| after | any Default: null |
| before | any Default: null |
| limit | integer <int32> (PageSize) [ 1 .. 100 ] Default: "25" Number of results to fetch per page for paginated requests |
| sortBy | string (ListCollectionsSortByEnum) Value: "NAME" |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "values": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "creator": {
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "sharing": {
- "users": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "groups": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "workspace": {
- "members": "string"
}
}
}
], - "pagination": {
- "after": "string",
- "before": "string"
}
}CreateCollection
Authorizations:
Request Body schema: application/jsonrequired
object (CollectionApiResourceSharing) | |
| description | string |
| name required | string |
Responses
Request samples
- Payload
{- "sharing": {
- "users": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "groups": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "workspace": {
- "members": "string"
}
}, - "description": "string",
- "name": "string"
}Response samples
- 201
- 400
- 403
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "creator": {
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "sharing": {
- "users": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "groups": [
- {
- "access": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "workspace": {
- "members": "string"
}
}
}UpsertGuideDraft
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.
Authorizations:
Request Body schema: application/jsonrequired
| forceWrite | boolean If true, will overwrite an existing guide that is synced from a different source if there is a guide of the same name e.g. guide1.md is authored in Hex, request.files includes guide1.md -> this will overwrite the guide that was authored in Hex default: false |
required | Array of objects A mapping from filePath -> contents |
Responses
Request samples
- Payload
{- "forceWrite": true,
- "files": [
- {
- "externalSource": {
- "id": "string",
- "source": "unknown"
}, - "contents": "string",
- "filePath": "string",
- "property1": null,
- "property2": null
}
]
}Response samples
- 200
- 400
- 403
- 500
{- "files": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "filePath": "string"
}
], - "warnings": [
- {
- "message": "string",
- "filePath": "string"
}
], - "traceId": "string"
}PublishGuideDrafts
Publish all currently drafted guides.
Authorizations:
Request Body schema: application/jsonrequired
| orgGuideFileIds | Array of strings <uuid> (OrgGuideFileId) [ items <uuid >^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... ] The IDs of the guides to publish if publishAllGuides is false. |
| publishAllDraftGuides | boolean Publish all draft guides (ignores the orgGuideFileIds field if true) |
Responses
Request samples
- Payload
{- "orgGuideFileIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "publishAllDraftGuides": true
}Response samples
- 200
- 400
- 403
- 500
{- "message": "string",
- "publishedGuides": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "filePath": "string"
}
], - "traceId": "string"
}DeleteGuideDraft
Authorizations:
path Parameters
| orgGuideFileId required | string <uuid> (OrgGuideFileId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a guide file. This can be found by going into the menu of a guide file in the guide files side bar. |
Responses
Response samples
- 400
- 403
- 500
{- "details": "string",
- "traceId": "string",
- "reason": "string"
}GetChartImageFromLogic
Get the rendered PNG image of a chart cell from the current notebook session by cellId. The "cellId" path parameter should be the cell's ID (scoped to a specific version), as opposed to its staticId (which remains stable across versions).
Returns a JSON object containing the base64-encoded PNG image of the chart cell as it currently appears in the Logic view, along with the cell ID and MIME type. The cell must have been executed and must not be in an error state. Only chart-type cells are supported.
The optional width and height query params set the output image size in pixels.
Both must be provided to apply, and must be between 100 and 2000.
The optional includeTitle query param includes the chart title in the image when true.
Rate limit: 20 requests per minute.
Authorizations:
path Parameters
| cellId required | string <uuid> (CellId) ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}... Unique ID for a cell. This can be found by going into the menu of a cell in the notebook. |
query Parameters
| width | integer <int32> (ChartImageDimension) [ 100 .. 2000 ] Chart image total dimension (width or height) in pixels. |
| height | integer <int32> (ChartImageDimension) [ 100 .. 2000 ] Chart image total dimension (width or height) in pixels. |
| includeTitle | boolean |
Responses
Response samples
- 200
- 400
- 403
- 404
- 422
- 500
{- "cellId": "e0f2424e-962c-4579-836d-e31fbb8fbece",
- "imageBase64": "string",
- "mimeType": "string"
}GetCell
Get a single cell by ID
This endpoint is subject to the following rate limits:
hex-api: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
path Parameters
| cellId required | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "id": "string",
- "staticId": "string",
- "cellType": "CODE",
- "label": "string",
- "dataConnectionId": "string",
- "contents": {
- "codeCell": {
- "source": "string"
}, - "sqlCell": {
- "source": "string",
- "outputDataframe": "string"
}, - "markdownCell": {
- "source": "string"
}
}, - "projectId": "string"
}UpdateCell
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: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
path Parameters
| cellId required | string |
Request Body schema: application/jsonrequired
| dataConnectionId | string or null Data connection to attach to a SQL cell. Pass null to detach the existing data connection. |
object |
Responses
Request samples
- Payload
{- "dataConnectionId": "string",
- "contents": {
- "codeCell": {
- "source": "string"
}, - "sqlCell": {
- "source": "string",
- "outputDataframe": "string"
}, - "markdownCell": {
- "source": "string"
}
}
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "id": "string",
- "staticId": "string",
- "cellType": "CODE",
- "label": "string",
- "dataConnectionId": "string",
- "contents": {
- "codeCell": {
- "source": "string"
}, - "sqlCell": {
- "source": "string",
- "outputDataframe": "string"
}, - "markdownCell": {
- "source": "string"
}
}, - "projectId": "string"
}DeleteCell
Delete a cell from the draft version of a project by ID
This endpoint is subject to the following rate limits:
hex-api: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
path Parameters
| cellId required | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "cellId": "string"
}CreateCell
Create a new cell in the draft version of a project
This endpoint is subject to the following rate limits:
hex-api: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
Request Body schema: application/jsonrequired
| projectId required | string The project to create the cell in. |
| cellType required | string Enum: "CODE" "SQL" "MARKDOWN" The type of cell to create. Determines which |
| label | string Optional label for the cell. |
required | object or object or object Cell contents. Provide exactly the variant matching |
object Controls where the new cell is placed. If omitted, the cell is appended to the end of the project. |
Responses
Request samples
- Payload
{- "projectId": "string",
- "cellType": "CODE",
- "label": "string",
- "contents": {
- "codeCell": {
- "source": "string"
}
}, - "location": {
- "insertAfterCellId": "string",
- "parentCellId": "string",
- "childPosition": "FIRST"
}
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "id": "string",
- "staticId": "string",
- "cellType": "CODE",
- "label": "string",
- "dataConnectionId": "string",
- "contents": {
- "codeCell": {
- "source": "string"
}, - "sqlCell": {
- "source": "string",
- "outputDataframe": "string"
}, - "markdownCell": {
- "source": "string"
}
}, - "projectId": "string"
}ListCells
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: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
query Parameters
| projectId required | string The project to list cells from |
| after | string or null Default: null |
| before | string or null Default: null |
| limit | number [ 1 .. 100 ] Default: 25 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "values": [
- {
- "id": "string",
- "staticId": "string",
- "cellType": "CODE",
- "label": "string",
- "dataConnectionId": "string",
- "contents": {
- "codeCell": {
- "source": "string"
}, - "sqlCell": {
- "source": "string",
- "outputDataframe": "string"
}, - "markdownCell": {
- "source": "string"
}
}, - "projectId": "string"
}
], - "pagination": {
- "before": null,
- "after": null
}
}ExportProject
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 30 requests per minute
Authorizations:
Request Body schema: application/jsonrequired
| projectId required | string The project to export. |
integer or string or string Default: "draft" Used to specify the version to export. "draft" is the current notebook version; "latest" is the latest published app version. |
Responses
Request samples
- Payload
{- "projectId": "string",
- "version": "draft"
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "filename": "string",
- "content": "string"
}CreateThread
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-send-thread-message: Rate limits for sending messages to threads- Dynamic per minute maximum based on Hex traffic
- Dynamic per hour maximum based on Hex traffic
Authorizations:
Request Body schema: application/jsonrequired
| prompt required | string non-empty |
object Entities referenced by the prompt | |
| previewId | string or null |
| projectId | string or null Run the thread against an existing project. Mutually exclusive with |
| newProject | boolean or null Create a new project for the thread to work on. Mutually exclusive with |
| muted | boolean or null If true, the thread will not be shown in any aggregated UI surfaces and will not contribute to user-facing statistics. The thread is still individually viewable. Only applies for non-project-backed threads (ignored when |
Responses
Request samples
- Payload
{- "prompt": "string",
- "attachments": {
- "dataConnectionId": "string",
- "tableIds": [
- "string"
], - "semanticDatasetIds": [
- "string"
], - "semanticViewIds": [
- "string"
], - "projectIds": [
- "string"
]
}, - "previewId": "string",
- "projectId": "string",
- "newProject": true,
- "muted": true
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "threadId": "string",
- "url": "string",
- "createdAt": "string",
- "projectId": "string"
}ListThreads
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 30 requests per minute
Authorizations:
query Parameters
| after | string or null Default: null |
| before | string or null Default: null |
| limit | number [ 1 .. 100 ] Default: 25 |
| source | string or null Enum: "HEX" "SLACK" "MCP" "PUBLIC_API" null |
| userId | string or null |
| type | string or null Enum: "THREADS" "NOTEBOOK" "MODELING" null |
| numDays | integer or null > 0 |
| hasFeedback | boolean or null |
| roles | string or null Comma-separated list of user org roles to filter by (ADMIN, MANAGER, EDITOR, EXPLORER, MEMBER, GUEST) |
| warnings | string or null Comma-separated list of warning types to filter by (DATA_LIMITATION, USER_DOUBT, MISSING_CONTEXT, OTHER) |
| topicIds | string or null Comma-separated list of topic IDs to filter by |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "threads": [
- {
- "title": "string",
- "creditsUsed": 0,
- "topics": [
- {
- "id": "string",
- "name": "string"
}
], - "warnings": [
- {
- "id": "string",
- "type": "string",
- "summary": "string"
}
], - "feedback": [
- {
- "id": "string",
- "userFeedback": "string",
- "type": "THUMBS",
- "selectedReason": "string",
- "userLiked": true
}
], - "warningsGeneratedAt": "string",
- "threadSummary": "string",
- "threadIntent": "string",
- "model": "string",
- "userId": "string",
- "type": "string",
- "source": "string",
- "createdAt": "string",
- "sensitive": true,
- "id": "string",
- "orgId": "string",
- "url": "string"
}
], - "pagination": {
- "before": null,
- "after": null
}
}GetThread
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 30 requests per minute
Authorizations:
path Parameters
| id required | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "title": "string",
- "creditsUsed": 0,
- "topics": [
- {
- "id": "string",
- "name": "string"
}
], - "warnings": [
- {
- "id": "string",
- "type": "string",
- "summary": "string"
}
], - "feedback": [
- {
- "id": "string",
- "userFeedback": "string",
- "type": "THUMBS",
- "selectedReason": "string",
- "userLiked": true
}
], - "warningsGeneratedAt": "string",
- "threadSummary": "string",
- "threadIntent": "string",
- "model": "string",
- "userId": "string",
- "type": "string",
- "source": "string",
- "createdAt": "string",
- "sensitive": true,
- "threadId": "string",
- "status": "IDLE",
- "url": "string",
- "error": {
- "type": "NO_CONTEXT",
- "message": "string"
}, - "response": [
- {
- "type": "text",
- "text": "string"
}
]
}GetThreadMessages
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. 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. 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 30 requests per minute
Authorizations:
path Parameters
| threadId required | string |
query Parameters
| after | string or null Default: null |
| before | string or null Default: null |
| limit | number [ 1 .. 50 ] Default: 25 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "content": [
- {
- "type": "text",
- "text": "string"
}
], - "pagination": {
- "before": null,
- "after": null
}
}ContinueThread
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-send-thread-message: Rate limits for sending messages to threads- Dynamic per minute maximum based on Hex traffic
- Dynamic per hour maximum based on Hex traffic
Authorizations:
path Parameters
| id required | string |
Request Body schema: application/jsonrequired
| prompt required | string non-empty |
object Entities referenced by the prompt |
Responses
Request samples
- Payload
{- "prompt": "string",
- "attachments": {
- "dataConnectionId": "string",
- "tableIds": [
- "string"
], - "semanticDatasetIds": [
- "string"
], - "semanticViewIds": [
- "string"
], - "projectIds": [
- "string"
]
}
}Response samples
- 200
- 400
- 401
- 403
- 500
{- "threadId": "string",
- "url": "string"
}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: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "org": {
- "id": "string"
}, - "token": {
- "exp": 0
}
}ListUsers
List all users in the workspace
This endpoint is subject to the following rate limits:
hex-api: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
query Parameters
| after | string or null Default: null |
| before | string or null Default: null |
| limit | number [ 1 .. 500 ] Default: 25 |
| sortBy | string Default: "NAME" Enum: "NAME" "EMAIL" |
| sortDirection | string Default: "ASC" Enum: "ASC" "DESC" |
| groupId | string or null |
| userIds | string or null Comma-separated list of user IDs |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "values": [
- {
- "id": "string",
- "name": "string",
- "email": "string",
- "role": "ADMIN",
- "lastLoginDate": "string"
}
], - "pagination": {
- "before": null,
- "after": null
}
}DeactivateUser
Deactivate a user
This endpoint is subject to the following rate limits:
hex-api: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
path Parameters
| userId required | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 500
{- "user": {
- "id": "string",
- "name": "string",
- "email": "string",
- "role": "ADMIN",
- "lastLoginDate": "string"
}
}ListTopics
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 30 requests per minute
Authorizations:
query Parameters
| after | string or null Default: null |
| before | string or null Default: null |
| limit | number [ 1 .. 100 ] Default: 25 |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "topics": [
- {
- "id": "string",
- "name": "string"
}
], - "pagination": {
- "before": null,
- "after": null
}
}ListDraftGuides
List draft guides
This endpoint is subject to the following rate limits:
hex-api: Default rate limit group for the Hex API- Max 30 requests per minute
Authorizations:
query Parameters
| limit | number [ 1 .. 100 ] Default: 100 |
| after | string or null Default: null |
| before | string or null Default: null |
| externalSource | string or null |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "values": [
- {
- "id": "string",
- "filePath": "string"
}
], - "pagination": {
- "before": null,
- "after": null
}
}