Ignitify.dev
Webhooks and notify
CLI reference

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
synopsis
$ ignitify hook:create <deployment-id> --task-name <name>
terminal
$ 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
terminal
$ ignitify hook:create dep_Hn4TqXw8Zc2P --task-name image-resize --json
--json
{
  "resource_id": "hok_Wd3Lm8Qz5RtY",
  "hook_id": "4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863f",
  "secret": "9d3f6a1c8e5b2074a6c91f3e8d0b5a72c4e61f98b3d7a05e2c4f1a86d09b37e",
  "url": "https://api.ignitify.dev/hooks/trigger/4f1c9a7e2b6d03581a9c7e4d2f60b8315ce79a04d1b2863f"
}
No task name
$ 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)
Not in your plan
$ 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
FlagValueDefaultDescription
<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
synopsis
$ ignitify hook:list <deployment-id> [--limit N] [--after-id <id>] [--after <iso>]
terminal
$ 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
terminal
$ ignitify hook:list dep_Hn4TqXw8Zc2P --json
--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"
    }
  ]
}
FlagValueDefaultDescription
<deployment-id>required——The deployment id.
--limitN—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
synopsis
$ ignitify hook:delete <hook-resource-id> [--yes]
terminal
$ 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
terminal
$ ignitify hook:delete hok_Wd3Lm8Qz5RtY --yes --json
--json
{
  "deleted": {
    "resource_id": "hok_Wd3Lm8Qz5RtY"
  }
}
FlagValueDefaultDescription
<hook-resource-id>required——The id of the hook (hok_…), not the id of the deployment.
--yes, -y——Skip the question.

What happens

  1. Prints which webhook it will delete.
  2. Asks you to confirm, unless you pass --yes.
  3. Deletes the webhook.
  4. Prints the hook id.

notify:set

Set or clear the callback URL of a deployment.

  • needs API key
  • --json: full
synopsis
$ ignitify notify:set <deployment-id> --url <https://…> --secret-stdin
or
$ ignitify notify:set <deployment-id> --clear
terminal
$ 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)
Clear the URL
$ ignitify notify:set dep_Hn4TqXw8Zc2P --clear✓ Notify URL for dep_Hn4TqXw8Zc2P cleared
terminal
$ printf %s "$NOTIFY_SECRET" | ignitify notify:set dep_Hn4TqXw8Zc2P --url https://your-domain.example/ignitify --secret-stdin --json
--json
{
  "notify_url": "https://your-domain.example/ignitify"
}
URL without a secret
$ 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.
FlagValueDefaultDescription
<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.