Hex API (1.0.0)
Download OpenAPI specification:Download
API specification for the Hex External API
GetProject
[Beta] Get metadata about a single 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
includeSharing | boolean Default: false |
Responses
Response samples
- 200
- 403
{- "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
[Beta] 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 |
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"
}
}
RunProject
Trigger a run of the latest published version of 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/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. 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. |
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"
}
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",
- "recipientType": "USER",
- "includeSuccessScreenshot": true,
- "screenshotFormat": [
- "png"
], - "recipient": {
- "id": "C0123456",
- "name": "data-team",
- "isPrivate": false
}
}
]
}
GetProjectRuns
Get the status of the API-triggered runs of 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 |
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 |
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",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "elapsedTime": 0.1,
- "traceId": "string",
- "notifications": [
- {
- "type": "SUCCESS",
- "recipientType": "USER",
- "includeSuccessScreenshot": true,
- "screenshotFormat": [
- "png"
], - "recipient": {
- "id": "C0123456",
- "name": "data-team",
- "isPrivate": false
}
}
]
}
], - "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. |
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",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "elapsedTime": 0.1,
- "traceId": "string",
- "notifications": [
- {
- "type": "SUCCESS",
- "recipientType": "USER",
- "includeSuccessScreenshot": true,
- "screenshotFormat": [
- "png"
], - "recipient": {
- "id": "C0123456",
- "name": "data-team",
- "isPrivate": false
}
}
]
}
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"
}