Webhooks and notify
Create webhooks that start runs, and set a callback URL for a deployment.
hook:create
Create a webhook that starts a run of one task.
- needs API key
- --json: full
$ ignitify hook:create <deployment-id> --task-name <name>$ ignitify hook:create dep_Hn4TqXw8Zc2P --task-name image-resize⚠️ The secret below is shown ONCE and cannot be read back — hook:list never returns it. Store it now; if it is lost, delete the hook and create a new one.A webhook body over 10 KiB is refused with 413 before the signature is checked.✓ Webhook Createdresource_id hok_Wd3Lm8Qz5RtYhook_id 4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863furl https://api.ignitify.dev/hooks/trigger/4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863fsecret (shown ONCE) 9d3f6a1c8e5b2074a6c91f3e8d0b5a72c4e61f98b3d7a05e2c4f1a86d09b37e
$ ignitify hook:create dep_Hn4TqXw8Zc2P --task-name image-resize --json{
"resource_id": "hok_Wd3Lm8Qz5RtY",
"hook_id": "4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863f",
"secret": "9d3f6a1c8e5b2074a6c91f3e8d0b5a72c4e61f98b3d7a05e2c4f1a86d09b37e",
"url": "https://api.ignitify.dev/hooks/trigger/4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863f"
}$ ignitify hook:create dep_Hn4TqXw8Zc2PError: --task-name <name> is required: a hook starts a run of ONE task in the deployment, and a run without a task name fails.usage: ignitify hook:create <deployment-id> --task-name <name>
More examples (1)
$ ignitify hook:create dep_Hn4TqXw8Zc2P --task-name image-resizeError: API 403: {"error":"webhooks are not included in your current tier (capability 'may_use_webhooks'; deployment 019f3c24-1b05-7c9a-8e21-4d6f0b93a7e2)"}server trace id: 5d1e8c0a-4b7f-4f6e-9a21-3c0d7e5b8f12
| Flag | Value | Default | Description |
|---|---|---|---|
<deployment-id>required | — | — | The deployment the webhook belongs to. |
--task-namerequired | <name> | — | The task that each run starts. Required. |
hook:list
List the webhooks of a deployment, oldest first.
- needs API key
- --json: full
$ ignitify hook:list <deployment-id> [--limit N] [--after-id <id>] [--after <iso>]$ ignitify hook:list dep_Hn4TqXw8Zc2Pid 019f3c30-6e12-7b44-8a07-9c15d3e2f8a6resource_id hok_Wd3Lm8Qz5RtYhook_id 4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863ftask_name image-resizecreated_at 2026-10-14T09:12:03.540Z
$ ignitify hook:list dep_Hn4TqXw8Zc2P --json{
"hooks": [
{
"id": "019f3c30-6e12-7b44-8a07-9c15d3e2f8a6",
"resource_id": "hok_Wd3Lm8Qz5RtY",
"hook_id": "4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863f",
"task_name": "image-resize",
"created_at": "2026-10-14T09:12:03.540Z"
}
]
}| Flag | Value | Default | Description |
|---|---|---|---|
<deployment-id>required | — | — | The deployment id. |
--limit | N | — | Rows on the page. The server sets the default and the largest value. |
--after | <iso> | — | Only rows after this ISO 8601 time. |
--after-id | <id> | — | Page cursor. Pass the id of the last row of the page before. |
hook:delete
Delete a webhook.
- needs API key
- asks to confirm
- deletes data
- --json: full
$ ignitify hook:delete <hook-resource-id> [--yes]$ ignitify hook:delete hok_Wd3Lm8Qz5RtYWill delete webhook hok_Wd3Lm8Qz5RtY. A sender that posts to it is refused from then on.Proceed? [y/N] y✓ Webhook deleted: hok_Wd3Lm8Qz5RtY
$ ignitify hook:delete hok_Wd3Lm8Qz5RtY --yes --json{
"deleted": {
"resource_id": "hok_Wd3Lm8Qz5RtY"
}
}| Flag | Value | Default | Description |
|---|---|---|---|
<hook-resource-id>required | — | — | The id of the hook (hok_…), not the id of the deployment. |
--yes, -y | — | — | Skip the question. |
What happens
- Prints which webhook it will delete.
- Asks you to confirm, unless you pass
--yes. - Deletes the webhook.
- Prints the hook id.
notify:set
Set or clear the callback URL of a deployment.
- needs API key
- --json: full
$ ignitify notify:set <deployment-id> --url <https://…> --secret-stdin$ ignitify notify:set <deployment-id> --clear$ printf %s "$NOTIFY_SECRET" | ignitify notify:set dep_Hn4TqXw8Zc2P --url https://your-domain.example/ignitify --secret-stdin✓ Notify URL for dep_Hn4TqXw8Zc2P set to https://your-domain.example/ignitify
More examples (1)
$ ignitify notify:set dep_Hn4TqXw8Zc2P --clear✓ Notify URL for dep_Hn4TqXw8Zc2P cleared
$ printf %s "$NOTIFY_SECRET" | ignitify notify:set dep_Hn4TqXw8Zc2P --url https://your-domain.example/ignitify --secret-stdin --json{
"notify_url": "https://your-domain.example/ignitify"
}$ ignitify notify:set dep_Hn4TqXw8Zc2P --url https://your-domain.example/ignitifyError: --url needs --secret-stdin: the server refuses a notify target with no signing secret.usage: ignitify notify:set <deployment-id> --url <https://…> --secret-stdin ignitify notify:set <deployment-id> --clear --secret-stdin reads the signing secret (at least 32 characters) from stdin; it is required with --url. There is no --secret flag: a value on argv is visible in `ps` and lands in your shell history.
| Flag | Value | Default | Description |
|---|---|---|---|
<deployment-id>required | — | — | The deployment id. |
--url | <https://…> | — | The HTTPS address to call. Needs --secret-stdin. |
--clear | — | — | Remove the callback URL. Cannot be used with --url. |
--secret-stdin | — | — | Read the signing secret from stdin. Needed with --url. |