- Is scheduled to start running later (programmatically, an event type of
job.scheduled) - Has begun running (
job.in_progress) - Has stopped running (
job.stopped) - Has failed to successfully complete (
job.failed) - less than 90% of the job’s files or data were successfully processed. - Has successfully completed (
job.completed) - 90% or more of the job’s files or data were successfully processed.
-
At the workspace level, known as a workspace-scoped notification channel. This allows any job that is associated with a
workspace in an Unstructured account to trigger the webhook. This can be useful for example for routing pager requests to a team of on-call engineers in an
IT operations center whenever any job fails across the workspace.
Each Let’s Go or Pay-As-You-Go account has one and only one workspace.An Unstructured Business account can have multiple workspaces.
- At the workflow level, known as a workflow-scoped notification channel. This allows any job that is associated only with the target workflow in an Unstructured account to trigger the webhook. This can be useful for example for emailing a department’s data analyst that a long-running job for a specific workflow has now completed, allowing them to begin working with the latest output.
The Unstructured user interface (UI) allows limited creation, viewing, and managing of webhooks only, as follows (learn how):
- Webhooks for a personal Unstructured workspace. Each personal Unstructured account has one and only one personal Unstructured workspace.
- Webhooks for a workspace within an Unstructured Business account.
Requirements
To create, view, and manage webhooks, Unstructured provides a set of Representational State Transfer (REST) endpoints. You can call these endpoints through standard REST-enabled utilities, tools, programming languages, packages, and libraries. The examples, shown later on this page, describe how to call the Unstructured API’s webhook operations withcurl and Postman. You can adapt this information as needed for your preferred programming languages and libraries,
for example by using the requests library with Python.
To call the Unstructured API’s webhook operations, you must have an Unstructured API URL and a valid Unstructured API key.
To get your Unstructured API URL, do the following:
-
If you do not already have an Unstructured account, sign up for free.
After you sign up, you are automatically signed in to your new Unstructured Let’s Go account, at https://platform.unstructured.io.
To sign up for a Business account instead, contact Unstructured Sales, or learn more.
-
If you have an Unstructured Let’s Go, Pay-As-You-Go, or Business SaaS account and are not already signed in, sign in to your account at https://platform.unstructured.io.
For other types of Business accounts, see your Unstructured account administrator for sign-in instructions, or email Unstructured Support at support@unstructured.io.
-
Get your Unstructured API URL:
a. After you sign in to your Unstructured Let’s Go, Pay-As-You-Go, or Business account, click API Keys on the sidebar.
b. Copy the value of Unstructured API Endpoint to your system’s clipboard.For a Business account, before you click API Keys, make sure you have selected the organizational workspace you want to get the API URL for. Learn more.
-
If you do not already have an Unstructured account, sign up for free.
After you sign up, you are automatically signed in to your new Unstructured Let’s Go account, at https://platform.unstructured.io.
To sign up for a Business account instead, contact Unstructured Sales, or learn more.
-
If you have an Unstructured Let’s Go, Pay-As-You-Go, or Business SaaS account and are not already signed in, sign in to your account at https://platform.unstructured.io.
For other types of Business accounts, see your Unstructured account administrator for sign-in instructions, or email Unstructured Support at support@unstructured.io.
-
Get your Unstructured API key:
a. After you sign in to your Unstructured Let’s Go, Pay-As-You-Go, or Business account, click API Keys on the sidebar.
b. Click Generate API Key.For a Business account, before you click API Keys, make sure you have selected the organizational workspace you want to create an API key for. Each API key works with one and only one organizational workspace. Learn more.
c. Follow the on-screen instructions to finish generating the key.
d. Click the Copy icon next to your new key to add the key to your system’s clipboard. If you lose this key, simply return and click the Copy icon again.
UNSTRUCTURED_API_URLUNSTRUCTURED_API_KEY
curl or Postman documentation.
Create a workspace-scoped notification channel
To create a notification channel that is used for all corresponding events across a workspace, call thePOST /notifications/channels operation.
In the following examples, replace the following placeholders:
- Replace
<webhook-url>with your receiver’s webhook URL. - Replace
<event-type>with the programmatic name of the event that you want to trigger. To allow multiple events to be triggered, add multiple<event-type>entries. For the list of available event types, see this article’s introductory section. - Replace
<description>with some meaningful description of the notification channel, for your own reference.
curl
curl
Postman
Postman
- In the method drop-down list, select POST.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following headers:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}} - Key:
accept, Value:application/json
- Key:
-
On the Body tab, select raw and JSON, and specify the settings for the notification channel:
- Click Send.
List all workspace-scoped notification channels
To get a list of all notification channels that are used for all corresponding events across a workspace, call theGET /notifications/channels operation.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Params tab, enter the following query parameter:
- Key:
channel_type, Value:webhook
- Key:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Get a workspace-scoped notification channel
To get information about a notification channel that is used for all corresponding events across a workspace, call theGET /notifications/channels/<channel-id> operation.
In the following examples, replace <channel-id> with the workspace-scoped notification channel’s unique ID.
To get this ID, see List all workspace-scoped notification channels.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Update a workspace-scoped notification channel
To change the settings of a notification channel that is used for all corresponding events across a workspace, call thePATCH /notifications/channels/<channel-id> operation.
In the following examples, replace the following placeholders:
-
Replace
<channel-id>with the workspace-scoped notification channel’s unique ID. To get this ID, see List all workspace-scoped notification channels. -
Replace any or all of the following settings with the new settings you want to use for the notification channel:
<webhook-url>: Your receiver’s webhook URL.<event-type>: The programmatic name of the event that you want to trigger. To allow multiple events to be triggered, add multiple<event-type>entries. For the list of available event types, see this article’s introductory section.<description>: Some meaningful description of the notification channel, for your own reference.- For
enabled: Set to true to enable the notification channel, or false to disable it.
curl
curl
Postman
Postman
- In the method drop-down list, select PATCH.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
-
On the Body tab, select raw and JSON, and specify any settings to change for the notification channel:
- Click Send.
Delete a workspace-scoped notification channel
To delete a notification channel that is used for all corresponding events across a workspace, call theDELETE /notifications/channels/<channel-id> operation.
In the following examples, replace <channel-id> with the workspace-scoped notification channel’s unique ID.
To get this ID, see List all workspace-scoped notification channels.
curl
curl
Postman
Postman
- In the method drop-down list, select DELETE.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Create a workflow-scoped notification channel
To create a notification channel that is used only for a specific workflow, call thePOST /workflows/<workflow-id>/notifications/channels operation.
In the following examples, replace the following placeholders:
- Replace
<workflow-id>with the workflow’s unique ID. To get this ID, see List workflows. - Replace
<webhook-url>with your receiver’s webhook URL. - Replace
<event-type>with the programmatic name of the event that you want to trigger. To allow multiple events to be triggered, add multiple<event-type>entries. For the list of available event types, see this article’s introductory section. - Replace
<description>with some meaningful description of the notification channel, for your own reference.
curl
curl
Postman
Postman
- In the method drop-down list, select POST.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following headers:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}} - Key:
accept, Value:application/json
- Key:
-
On the Body tab, select raw and JSON, and specify the settings for the notification channel:
- Click Send.
List all workflow-scoped notification channels
To get a list of all notification channels that are used only for a specific workflow, call theGET /workflows/<workflow-id>/notifications/channels operation.
In the following examples, replace <workflow-id> with the workflow’s unique ID.
To get this ID, see List workflows.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Params tab, enter the following query parameter:
- Key:
channel_type, Value:webhook
- Key:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Get a workflow-scoped notification channel
To get information about a notification channel that is used only for a specific workflow, call theGET /workflows/<workflow-id>/notifications/channels/<channel-id> operation.
In the following examples, replace the following placeholders:
- Replace
<workflow-id>with the workflow’s unique ID. To get this ID, see List workflows. - Replace
<channel-id>with the workspace-scoped notification channel’s unique ID. To get this ID, see List all workflow-scoped notification channels.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Update a workflow-scoped notification channel
To change the settings of a notification channel that is used only for a specific workflow, call thePATCH /workflows/<workflow-id>/notifications/channels/<channel-id> operation.
In the following examples, replace the following placeholders:
-
Replace
<workflow-id>with the workflow’s unique ID. To get this ID, see List workflows. -
Replace
<channel-id>with the workspace-scoped notification channel’s unique ID. To get this ID, see List all workflow-scoped notification channels. -
Replace any or all of the following settings with the new settings you want to use for the notification channel:
<webhook-url>: Your receiver’s webhook URL.<event-type>: The programmatic name of the event that you want to trigger. To allow multiple events to be triggered, add multiple<event-type>entries. For the list of available event types, see this article’s introductory section.<description>: Some meaningful description of the notification channel, for your own reference.- For
enabled: Set to true to enable the notification channel, or false to disable it.
curl
curl
Postman
Postman
- In the method drop-down list, select PATCH.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
-
On the Body tab, select raw and JSON, and specify any settings to update for the notification channel:
- Click Send.
Delete a workflow-scoped notification channel
To delete a notification channel that is used only for a specific workflow, call theDELETE /workflows/<workflow-id>/notifications/channels/<channel-id> operation.
In the following examples, replace the following placeholders:
- Replace
<workflow-id>with the workflow’s unique ID. To get this ID, see List workflows. - Replace
<channel-id>with the workflow-scoped notification channel’s unique ID. To get this ID, see List all workflow-scoped notification channels.
curl
curl
Postman
Postman
- In the method drop-down list, select DELETE.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
List all notifications for a workspace
To list all notifications for a workspace, call theGET /notifications operation.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Get a notification
To get information about a notification for a workspace, call theGET /notifications/<notification-id> operation.
In the following examples, replace <notification-id> with the notification’s unique ID.
To get this ID, see List all notifications for a workspace.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.
Mark notifications as read
To mark any number of notifications as read, call theGET /notifications/mark-read operation.
In the following examples, replace the following placeholders:
- Replace
<webhook-url>with your receiver’s webhook URL. - Replace
<notification-id>with the unique ID of the notification that you want to mark as read. To allow multiple notifications to be marked as read, add multiple<notification-id>entries. To get these IDs, see List all notifications for a workspace. - Replace
<before>to mark all notifications sent before the specified timestamp as read. The value must be a valid ISO 8601 timestamp in the formatYYYY-MM-DDTHH:MM:SSZ, for example2024-09-19T15:45:30Z. - For
mark_all, set totrueto mark all notifications as read. - Replace
<workflow-id>with the unique ID of the workflow that the notification is associated with. To get this ID, see List workflows. - Only one of the following can be specified:
notification_ids,before, ormark_all. - If you specify
workflow_id, you must also specifybeforeormark_all.
- If you specify
notification_idsonly, it will mark all notifications with the specified IDs as read. - If you specify
beforeonly, it will mark all notifications created in the workspace before the specified timestamp as read. - If you specify
mark_allonly, it will mark at the time of the API call all existing notifications in the workspace as read. - If you specify
workflow_idandbefore, it will mark all notifications created before the specified timestamp for the specified workflow as read. - If you specify
workflow_idandmark_all, it will mark at the time of the API call all existing notifications associated with the specified workflow as read.
curl
curl
Postman
Postman
- In the method drop-down list, select POST.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following headers:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}} - Key:
accept, Value:application/json
- Key:
-
On the Body tab, select raw and JSON, and specify the settings for the notification channel:
- Click Send.
Get a count of all unread notifications for a workspace
To get a count of all unread notifications for a workspace, call theGET /notifications/count operation.
curl
curl
Postman
Postman
- In the method drop-down list, select GET.
-
In the address box, enter the following URL:
-
On the Headers tab, enter the following header:
- Key:
unstructured-api-key, Value:{{UNSTRUCTURED_API_KEY}}
- Key:
- Click Send.

