Skip to content
Niftyhelp 2026.10.2 Support

Webhooks

Addresses Nifty tells when things change, with a signed POST for each event.

On this page

List webhooks

GET/webhooks

Oldest first. Never includes the secret. Not paged.

curl "$NIFTY_URL/api/v1/webhooks" \
  -H "Authorization: Bearer $NIFTY_TOKEN"

Response

200 OK Errors: 401 403 429

{
  "data": [
    {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "name": "Automations",
      "url": "https://hooks.example.com/nifty",
      "events": [
        "task.created"
      ],
      "enabled": true,
      "last_delivery": {
        "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
        "event": "task.created",
        "outcome": "pending",
        "http_status": 100,
        "error": "The address answered 500.",
        "duration_ms": 0,
        "payload": {
          "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "type": "task.created",
          "created_at": "2026-10-10T09:30:00Z",
          "data": {
            "task": {
              "planned_start_on": "2026-10-10",
              "delays": 0,
              "deadline_moves": 0,
              "delegated_at": "2026-10-10T09:30:00Z",
              "now_since": "2026-10-10T09:30:00Z",
              "received_via_api": {
                "at": "2026-10-10T09:30:00Z",
                "source": "Zapier"
              },
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Book the plumber",
              "status": "open",
              "start_on": "2026-10-10",
              "deadline_on": "2026-10-10",
              "expires_on": "2026-10-10",
              "completed_at": "2026-10-10T09:30:00Z",
              "archived_at": "2026-10-10T09:30:00Z",
              "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "position": 1,
              "description_html": "<p>Ask about the boiler too.</p>",
              "description_text": "Ask about the boiler too.",
              "has_documents": true,
              "document_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "note_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "expired": true,
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            },
            "document": {
              "received_via_api": {
                "at": "2026-10-10T09:30:00Z",
                "source": "Zapier"
              },
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "kind": "pdf",
              "name": "Boiler warranty",
              "dated_on": "2026-10-10",
              "dated_on_set": true,
              "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "email": {
                "subject": "string",
                "from": {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                },
                "to": [
                  null
                ],
                "cc": [
                  null
                ],
                "sent_at": "2026-10-10T09:30:00Z",
                "forwarded": true,
                "forward_note": "string",
                "forwarded_at": "2026-10-10T09:30:00Z",
                "has_html": true,
                "remote_images": true,
                "body_url": "https://example.com",
                "attachments": [
                  null
                ]
              },
              "from_email": {
                "subject": "string",
                "from": {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                },
                "sent_at": "2026-10-10T09:30:00Z",
                "forwarded_at": "2026-10-10T09:30:00Z"
              },
              "note_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "project_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "task_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "person_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "links": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "file": {
                "filename": "string",
                "byte_size": 1,
                "content_type": "application/pdf",
                "width": 1,
                "height": 1,
                "url": "https://example.com",
                "download_url": "https://example.com",
                "thumbnail_url": "https://example.com"
              },
              "analysis": {
                "status": "reading",
                "type": "payslip",
                "type_label": "Payslip"
              },
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            },
            "person": {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "name": "Maya Okafor",
              "aliases": [
                "Mum"
              ],
              "is_me": true,
              "time_zone": "America/New_York",
              "avatar": {
                "url": "https://example.com",
                "thumb_url": "https://example.com",
                "large_url": "https://example.com"
              },
              "key_dates": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "kind": "birthday",
                  "label": "Graduation",
                  "day": null,
                  "month": null,
                  "year": null,
                  "created_at": null,
                  "updated_at": null
                }
              ],
              "email_addresses": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "address": "[email protected]",
                  "label": "Work",
                  "created_at": null,
                  "updated_at": null
                }
              ],
              "phone_numbers": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "number": "+44 20 7946 0958",
                  "label": "Mobile",
                  "created_at": null,
                  "updated_at": null
                }
              ],
              "social_profiles": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "url": null,
                  "platform": "website",
                  "platform_detected": null,
                  "label": "Blog",
                  "created_at": null,
                  "updated_at": null
                }
              ],
              "positions": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "title": "Head of Design",
                  "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "created_at": null,
                  "updated_at": null
                }
              ],
              "connections": [
                {
                  "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                  "kind": "spouse",
                  "note": "Met at university"
                }
              ],
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            },
            "note": {
              "received_via_api": {
                "at": "2026-10-10T09:30:00Z",
                "source": "Zapier"
              },
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Coffee with Maya",
              "name": "Coffee with Maya",
              "title_generated": true,
              "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "mood": "anxious",
              "kind": "meeting",
              "kind_source": "owner",
              "tag_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "person_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "project_ids": [
                "01j9zq3k8m5x2v7c4n6b0t1r9e"
              ],
              "body_html": "<p>Talked about the move.</p>",
              "body_text": "Talked about the move.",
              "pinned": true,
              "pinned_at": "2026-10-10T09:30:00Z",
              "event": {
                "link_key": "string",
                "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "title": "Planning",
                "all_day": true,
                "starts_at": "2026-10-10T09:30:00Z",
                "start_on": "2026-10-10",
                "linked_at": "2026-10-10T09:30:00Z"
              },
              "edit_version": 1,
              "edited_at": "2026-10-10T09:30:00Z",
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            },
            "previous": {
              "deadline_on": "2026-10-10",
              "start_on": "2026-10-10"
            }
          }
        },
        "response_body": "string",
        "created_at": "2026-10-10T09:30:00Z",
        "sent_at": "2026-10-10T09:30:00Z"
      },
      "created_at": "2026-10-10T09:30:00Z",
      "updated_at": "2026-10-10T09:30:00Z"
    }
  ]
}

Add a webhook

POST/webhooks

The signing secret is in this response only (Cache-Control: no-store); POST /webhooks/{id}/rotate_secret makes a new one. url and events are required. A blank name takes the address's host. Ignores Idempotency-Key, so the secret is never stored to replay.

curl -X POST "$NIFTY_URL/api/v1/webhooks" \
  -H "Authorization: Bearer $NIFTY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"webhook":{"name":"Automations","url":"https://hooks.example.com/nifty","events":["task.created","task.completed"],"enabled":true}}'

Request body

NameDescription
webhookobject
webhook.namestring or null · optionalSpaces are squished. Blank on create takes the address's host; blank on update is a 422.
webhook.urlstring · optionalRequired on create. An https:// or http:// address.
webhook.eventsWebhookEvent[] · optionalRequired on create. The events to send; at least one, each once.
webhook.enabledboolean · optionalFalse sends nothing (but POST /webhooks/{id}/test). True on create unless sent.

Response

201 Created Errors: 400 401 403 415 422 429

{
  "data": {
    "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
    "name": "Automations",
    "url": "https://hooks.example.com/nifty",
    "events": [
      "task.created"
    ],
    "enabled": true,
    "last_delivery": {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "event": "task.created",
      "outcome": "pending",
      "http_status": 100,
      "error": "The address answered 500.",
      "duration_ms": 0,
      "payload": {
        "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
        "type": "task.created",
        "created_at": "2026-10-10T09:30:00Z",
        "data": {
          "task": {
            "planned_start_on": "2026-10-10",
            "delays": 0,
            "deadline_moves": 0,
            "delegated_at": "2026-10-10T09:30:00Z",
            "now_since": "2026-10-10T09:30:00Z",
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Book the plumber",
            "status": "open",
            "start_on": "2026-10-10",
            "deadline_on": "2026-10-10",
            "expires_on": "2026-10-10",
            "completed_at": "2026-10-10T09:30:00Z",
            "archived_at": "2026-10-10T09:30:00Z",
            "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "position": 1,
            "description_html": "<p>Ask about the boiler too.</p>",
            "description_text": "Ask about the boiler too.",
            "has_documents": true,
            "document_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "expired": true,
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "document": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "kind": "pdf",
            "name": "Boiler warranty",
            "dated_on": "2026-10-10",
            "dated_on_set": true,
            "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "to": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "cc": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded": true,
              "forward_note": "string",
              "forwarded_at": "2026-10-10T09:30:00Z",
              "has_html": true,
              "remote_images": true,
              "body_url": "https://example.com",
              "attachments": [
                {
                  "filename": null,
                  "content_type": "application/pdf",
                  "byte_size": null,
                  "status": "saved",
                  "document_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ]
            },
            "from_email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded_at": "2026-10-10T09:30:00Z"
            },
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "task_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "links": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "file": {
              "filename": "string",
              "byte_size": 1,
              "content_type": "application/pdf",
              "width": 1,
              "height": 1,
              "url": "https://example.com",
              "download_url": "https://example.com",
              "thumbnail_url": "https://example.com"
            },
            "analysis": {
              "status": "reading",
              "type": "payslip",
              "type_label": "Payslip"
            },
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "person": {
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "name": "Maya Okafor",
            "aliases": [
              "Mum"
            ],
            "is_me": true,
            "time_zone": "America/New_York",
            "avatar": {
              "url": "https://example.com",
              "thumb_url": "https://example.com",
              "large_url": "https://example.com"
            },
            "key_dates": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "birthday",
                "label": "Graduation",
                "day": 1,
                "month": 1,
                "year": 1,
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "email_addresses": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "address": "[email protected]",
                "label": "Work",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "phone_numbers": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "number": "+44 20 7946 0958",
                "label": "Mobile",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "social_profiles": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "url": "https://example.com",
                "platform": "website",
                "platform_detected": true,
                "label": "Blog",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "positions": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "title": "Head of Design",
                "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "connections": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "spouse",
                "note": "Met at university"
              }
            ],
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "note": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Coffee with Maya",
            "name": "Coffee with Maya",
            "title_generated": true,
            "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "mood": "anxious",
            "kind": "meeting",
            "kind_source": "owner",
            "tag_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "body_html": "<p>Talked about the move.</p>",
            "body_text": "Talked about the move.",
            "pinned": true,
            "pinned_at": "2026-10-10T09:30:00Z",
            "event": {
              "link_key": "string",
              "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Planning",
              "all_day": true,
              "starts_at": "2026-10-10T09:30:00Z",
              "start_on": "2026-10-10",
              "linked_at": "2026-10-10T09:30:00Z"
            },
            "edit_version": 1,
            "edited_at": "2026-10-10T09:30:00Z",
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "previous": {
            "deadline_on": "2026-10-10",
            "start_on": "2026-10-10"
          }
        }
      },
      "response_body": "string",
      "created_at": "2026-10-10T09:30:00Z",
      "sent_at": "2026-10-10T09:30:00Z"
    },
    "created_at": "2026-10-10T09:30:00Z",
    "updated_at": "2026-10-10T09:30:00Z",
    "secret": "whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw"
  }
}

Get a webhook

GET/webhooks/{id}

curl "$NIFTY_URL/api/v1/webhooks/01j9zq3k8m5x2v7c4n6b0t1r9e" \
  -H "Authorization: Bearer $NIFTY_TOKEN"

Path parameters

NameDescription
idULIDA record's ID.

Response

200 OK Errors: 401 403 404 429

{
  "data": {
    "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
    "name": "Automations",
    "url": "https://hooks.example.com/nifty",
    "events": [
      "task.created"
    ],
    "enabled": true,
    "last_delivery": {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "event": "task.created",
      "outcome": "pending",
      "http_status": 100,
      "error": "The address answered 500.",
      "duration_ms": 0,
      "payload": {
        "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
        "type": "task.created",
        "created_at": "2026-10-10T09:30:00Z",
        "data": {
          "task": {
            "planned_start_on": "2026-10-10",
            "delays": 0,
            "deadline_moves": 0,
            "delegated_at": "2026-10-10T09:30:00Z",
            "now_since": "2026-10-10T09:30:00Z",
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Book the plumber",
            "status": "open",
            "start_on": "2026-10-10",
            "deadline_on": "2026-10-10",
            "expires_on": "2026-10-10",
            "completed_at": "2026-10-10T09:30:00Z",
            "archived_at": "2026-10-10T09:30:00Z",
            "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "position": 1,
            "description_html": "<p>Ask about the boiler too.</p>",
            "description_text": "Ask about the boiler too.",
            "has_documents": true,
            "document_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "expired": true,
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "document": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "kind": "pdf",
            "name": "Boiler warranty",
            "dated_on": "2026-10-10",
            "dated_on_set": true,
            "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "to": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "cc": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded": true,
              "forward_note": "string",
              "forwarded_at": "2026-10-10T09:30:00Z",
              "has_html": true,
              "remote_images": true,
              "body_url": "https://example.com",
              "attachments": [
                {
                  "filename": null,
                  "content_type": "application/pdf",
                  "byte_size": null,
                  "status": "saved",
                  "document_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ]
            },
            "from_email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded_at": "2026-10-10T09:30:00Z"
            },
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "task_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "links": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "file": {
              "filename": "string",
              "byte_size": 1,
              "content_type": "application/pdf",
              "width": 1,
              "height": 1,
              "url": "https://example.com",
              "download_url": "https://example.com",
              "thumbnail_url": "https://example.com"
            },
            "analysis": {
              "status": "reading",
              "type": "payslip",
              "type_label": "Payslip"
            },
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "person": {
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "name": "Maya Okafor",
            "aliases": [
              "Mum"
            ],
            "is_me": true,
            "time_zone": "America/New_York",
            "avatar": {
              "url": "https://example.com",
              "thumb_url": "https://example.com",
              "large_url": "https://example.com"
            },
            "key_dates": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "birthday",
                "label": "Graduation",
                "day": 1,
                "month": 1,
                "year": 1,
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "email_addresses": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "address": "[email protected]",
                "label": "Work",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "phone_numbers": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "number": "+44 20 7946 0958",
                "label": "Mobile",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "social_profiles": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "url": "https://example.com",
                "platform": "website",
                "platform_detected": true,
                "label": "Blog",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "positions": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "title": "Head of Design",
                "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "connections": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "spouse",
                "note": "Met at university"
              }
            ],
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "note": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Coffee with Maya",
            "name": "Coffee with Maya",
            "title_generated": true,
            "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "mood": "anxious",
            "kind": "meeting",
            "kind_source": "owner",
            "tag_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "body_html": "<p>Talked about the move.</p>",
            "body_text": "Talked about the move.",
            "pinned": true,
            "pinned_at": "2026-10-10T09:30:00Z",
            "event": {
              "link_key": "string",
              "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Planning",
              "all_day": true,
              "starts_at": "2026-10-10T09:30:00Z",
              "start_on": "2026-10-10",
              "linked_at": "2026-10-10T09:30:00Z"
            },
            "edit_version": 1,
            "edited_at": "2026-10-10T09:30:00Z",
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "previous": {
            "deadline_on": "2026-10-10",
            "start_on": "2026-10-10"
          }
        }
      },
      "response_body": "string",
      "created_at": "2026-10-10T09:30:00Z",
      "sent_at": "2026-10-10T09:30:00Z"
    },
    "created_at": "2026-10-10T09:30:00Z",
    "updated_at": "2026-10-10T09:30:00Z"
  }
}

Change a webhook

PATCH/webhooks/{id}

Only the fields sent change. Turning one off (enabled false) sends nothing until it's turned on again; events meanwhile are missed.

curl -X PATCH "$NIFTY_URL/api/v1/webhooks/01j9zq3k8m5x2v7c4n6b0t1r9e" \
  -H "Authorization: Bearer $NIFTY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"webhook":{"name":"Automations","url":"https://hooks.example.com/nifty","events":["task.created","task.completed"],"enabled":true}}'

Path parameters

NameDescription
idULIDA record's ID.

Request body

NameDescription
webhookobject
webhook.namestring or null · optionalSpaces are squished. Blank on create takes the address's host; blank on update is a 422.
webhook.urlstring · optionalRequired on create. An https:// or http:// address.
webhook.eventsWebhookEvent[] · optionalRequired on create. The events to send; at least one, each once.
webhook.enabledboolean · optionalFalse sends nothing (but POST /webhooks/{id}/test). True on create unless sent.

Response

200 OK Errors: 400 401 403 404 415 422 429

{
  "data": {
    "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
    "name": "Automations",
    "url": "https://hooks.example.com/nifty",
    "events": [
      "task.created"
    ],
    "enabled": true,
    "last_delivery": {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "event": "task.created",
      "outcome": "pending",
      "http_status": 100,
      "error": "The address answered 500.",
      "duration_ms": 0,
      "payload": {
        "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
        "type": "task.created",
        "created_at": "2026-10-10T09:30:00Z",
        "data": {
          "task": {
            "planned_start_on": "2026-10-10",
            "delays": 0,
            "deadline_moves": 0,
            "delegated_at": "2026-10-10T09:30:00Z",
            "now_since": "2026-10-10T09:30:00Z",
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Book the plumber",
            "status": "open",
            "start_on": "2026-10-10",
            "deadline_on": "2026-10-10",
            "expires_on": "2026-10-10",
            "completed_at": "2026-10-10T09:30:00Z",
            "archived_at": "2026-10-10T09:30:00Z",
            "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "position": 1,
            "description_html": "<p>Ask about the boiler too.</p>",
            "description_text": "Ask about the boiler too.",
            "has_documents": true,
            "document_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "expired": true,
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "document": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "kind": "pdf",
            "name": "Boiler warranty",
            "dated_on": "2026-10-10",
            "dated_on_set": true,
            "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "to": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "cc": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded": true,
              "forward_note": "string",
              "forwarded_at": "2026-10-10T09:30:00Z",
              "has_html": true,
              "remote_images": true,
              "body_url": "https://example.com",
              "attachments": [
                {
                  "filename": null,
                  "content_type": "application/pdf",
                  "byte_size": null,
                  "status": "saved",
                  "document_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ]
            },
            "from_email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded_at": "2026-10-10T09:30:00Z"
            },
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "task_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "links": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "file": {
              "filename": "string",
              "byte_size": 1,
              "content_type": "application/pdf",
              "width": 1,
              "height": 1,
              "url": "https://example.com",
              "download_url": "https://example.com",
              "thumbnail_url": "https://example.com"
            },
            "analysis": {
              "status": "reading",
              "type": "payslip",
              "type_label": "Payslip"
            },
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "person": {
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "name": "Maya Okafor",
            "aliases": [
              "Mum"
            ],
            "is_me": true,
            "time_zone": "America/New_York",
            "avatar": {
              "url": "https://example.com",
              "thumb_url": "https://example.com",
              "large_url": "https://example.com"
            },
            "key_dates": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "birthday",
                "label": "Graduation",
                "day": 1,
                "month": 1,
                "year": 1,
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "email_addresses": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "address": "[email protected]",
                "label": "Work",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "phone_numbers": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "number": "+44 20 7946 0958",
                "label": "Mobile",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "social_profiles": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "url": "https://example.com",
                "platform": "website",
                "platform_detected": true,
                "label": "Blog",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "positions": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "title": "Head of Design",
                "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "connections": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "spouse",
                "note": "Met at university"
              }
            ],
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "note": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Coffee with Maya",
            "name": "Coffee with Maya",
            "title_generated": true,
            "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "mood": "anxious",
            "kind": "meeting",
            "kind_source": "owner",
            "tag_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "body_html": "<p>Talked about the move.</p>",
            "body_text": "Talked about the move.",
            "pinned": true,
            "pinned_at": "2026-10-10T09:30:00Z",
            "event": {
              "link_key": "string",
              "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Planning",
              "all_day": true,
              "starts_at": "2026-10-10T09:30:00Z",
              "start_on": "2026-10-10",
              "linked_at": "2026-10-10T09:30:00Z"
            },
            "edit_version": 1,
            "edited_at": "2026-10-10T09:30:00Z",
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "previous": {
            "deadline_on": "2026-10-10",
            "start_on": "2026-10-10"
          }
        }
      },
      "response_body": "string",
      "created_at": "2026-10-10T09:30:00Z",
      "sent_at": "2026-10-10T09:30:00Z"
    },
    "created_at": "2026-10-10T09:30:00Z",
    "updated_at": "2026-10-10T09:30:00Z"
  }
}

Remove a webhook

DELETE/webhooks/{id}

Permanent, with its deliveries. Deliveries not yet sent aren't.

curl -X DELETE "$NIFTY_URL/api/v1/webhooks/01j9zq3k8m5x2v7c4n6b0t1r9e" \
  -H "Authorization: Bearer $NIFTY_TOKEN"

Path parameters

NameDescription
idULIDA record's ID.

Response

204 Deleted Errors: 401 403 404 429

Make a new signing secret

POST/webhooks/{id}/rotate_secret

Replaces the secret at once: deliveries from now on are signed with the new one, which is in this response only (Cache-Control: no-store). Takes no body; ignores Idempotency-Key.

curl -X POST "$NIFTY_URL/api/v1/webhooks/01j9zq3k8m5x2v7c4n6b0t1r9e/rotate_secret" \
  -H "Authorization: Bearer $NIFTY_TOKEN"

Path parameters

NameDescription
idULIDA record's ID.

Response

200 OK Errors: 401 403 404 415 429

{
  "data": {
    "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
    "name": "Automations",
    "url": "https://hooks.example.com/nifty",
    "events": [
      "task.created"
    ],
    "enabled": true,
    "last_delivery": {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "event": "task.created",
      "outcome": "pending",
      "http_status": 100,
      "error": "The address answered 500.",
      "duration_ms": 0,
      "payload": {
        "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
        "type": "task.created",
        "created_at": "2026-10-10T09:30:00Z",
        "data": {
          "task": {
            "planned_start_on": "2026-10-10",
            "delays": 0,
            "deadline_moves": 0,
            "delegated_at": "2026-10-10T09:30:00Z",
            "now_since": "2026-10-10T09:30:00Z",
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Book the plumber",
            "status": "open",
            "start_on": "2026-10-10",
            "deadline_on": "2026-10-10",
            "expires_on": "2026-10-10",
            "completed_at": "2026-10-10T09:30:00Z",
            "archived_at": "2026-10-10T09:30:00Z",
            "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "position": 1,
            "description_html": "<p>Ask about the boiler too.</p>",
            "description_text": "Ask about the boiler too.",
            "has_documents": true,
            "document_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "expired": true,
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "document": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "kind": "pdf",
            "name": "Boiler warranty",
            "dated_on": "2026-10-10",
            "dated_on_set": true,
            "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "to": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "cc": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded": true,
              "forward_note": "string",
              "forwarded_at": "2026-10-10T09:30:00Z",
              "has_html": true,
              "remote_images": true,
              "body_url": "https://example.com",
              "attachments": [
                {
                  "filename": null,
                  "content_type": "application/pdf",
                  "byte_size": null,
                  "status": "saved",
                  "document_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ]
            },
            "from_email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded_at": "2026-10-10T09:30:00Z"
            },
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "task_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "links": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "file": {
              "filename": "string",
              "byte_size": 1,
              "content_type": "application/pdf",
              "width": 1,
              "height": 1,
              "url": "https://example.com",
              "download_url": "https://example.com",
              "thumbnail_url": "https://example.com"
            },
            "analysis": {
              "status": "reading",
              "type": "payslip",
              "type_label": "Payslip"
            },
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "person": {
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "name": "Maya Okafor",
            "aliases": [
              "Mum"
            ],
            "is_me": true,
            "time_zone": "America/New_York",
            "avatar": {
              "url": "https://example.com",
              "thumb_url": "https://example.com",
              "large_url": "https://example.com"
            },
            "key_dates": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "birthday",
                "label": "Graduation",
                "day": 1,
                "month": 1,
                "year": 1,
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "email_addresses": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "address": "[email protected]",
                "label": "Work",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "phone_numbers": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "number": "+44 20 7946 0958",
                "label": "Mobile",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "social_profiles": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "url": "https://example.com",
                "platform": "website",
                "platform_detected": true,
                "label": "Blog",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "positions": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "title": "Head of Design",
                "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "connections": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "spouse",
                "note": "Met at university"
              }
            ],
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "note": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Coffee with Maya",
            "name": "Coffee with Maya",
            "title_generated": true,
            "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "mood": "anxious",
            "kind": "meeting",
            "kind_source": "owner",
            "tag_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "body_html": "<p>Talked about the move.</p>",
            "body_text": "Talked about the move.",
            "pinned": true,
            "pinned_at": "2026-10-10T09:30:00Z",
            "event": {
              "link_key": "string",
              "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Planning",
              "all_day": true,
              "starts_at": "2026-10-10T09:30:00Z",
              "start_on": "2026-10-10",
              "linked_at": "2026-10-10T09:30:00Z"
            },
            "edit_version": 1,
            "edited_at": "2026-10-10T09:30:00Z",
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "previous": {
            "deadline_on": "2026-10-10",
            "start_on": "2026-10-10"
          }
        }
      },
      "response_body": "string",
      "created_at": "2026-10-10T09:30:00Z",
      "sent_at": "2026-10-10T09:30:00Z"
    },
    "created_at": "2026-10-10T09:30:00Z",
    "updated_at": "2026-10-10T09:30:00Z",
    "secret": "whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw"
  }
}

Send a test event

POST/webhooks/{id}/test

Sends a test event now, even to a webhook that's off, waiting up to 10 seconds, and returns the delivery with what came back. A delivery that failed is still a 200, with outcome failed. Takes no body; ignores Idempotency-Key.

curl -X POST "$NIFTY_URL/api/v1/webhooks/01j9zq3k8m5x2v7c4n6b0t1r9e/test" \
  -H "Authorization: Bearer $NIFTY_TOKEN"

Path parameters

NameDescription
idULIDA record's ID.

Response

200 OK Errors: 401 403 404 415 429

{
  "data": {
    "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
    "event": "task.created",
    "outcome": "pending",
    "http_status": 100,
    "error": "The address answered 500.",
    "duration_ms": 0,
    "payload": {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "type": "task.created",
      "created_at": "2026-10-10T09:30:00Z",
      "data": {
        "task": {
          "planned_start_on": "2026-10-10",
          "delays": 0,
          "deadline_moves": 0,
          "delegated_at": "2026-10-10T09:30:00Z",
          "now_since": "2026-10-10T09:30:00Z",
          "received_via_api": {
            "at": "2026-10-10T09:30:00Z",
            "source": "Zapier"
          },
          "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "title": "Book the plumber",
          "status": "open",
          "start_on": "2026-10-10",
          "deadline_on": "2026-10-10",
          "expires_on": "2026-10-10",
          "completed_at": "2026-10-10T09:30:00Z",
          "archived_at": "2026-10-10T09:30:00Z",
          "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "position": 1,
          "description_html": "<p>Ask about the boiler too.</p>",
          "description_text": "Ask about the boiler too.",
          "has_documents": true,
          "document_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "note_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "expired": true,
          "created_at": "2026-10-10T09:30:00Z",
          "updated_at": "2026-10-10T09:30:00Z"
        },
        "document": {
          "received_via_api": {
            "at": "2026-10-10T09:30:00Z",
            "source": "Zapier"
          },
          "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "kind": "pdf",
          "name": "Boiler warranty",
          "dated_on": "2026-10-10",
          "dated_on_set": true,
          "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "email": {
            "subject": "string",
            "from": {
              "name": "Ada Lovelace",
              "address": "[email protected]",
              "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
            },
            "to": [
              {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "cc": [
              {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "sent_at": "2026-10-10T09:30:00Z",
            "forwarded": true,
            "forward_note": "string",
            "forwarded_at": "2026-10-10T09:30:00Z",
            "has_html": true,
            "remote_images": true,
            "body_url": "https://example.com",
            "attachments": [
              {
                "filename": "string",
                "content_type": "application/pdf",
                "byte_size": 1,
                "status": "saved",
                "document_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ]
          },
          "from_email": {
            "subject": "string",
            "from": {
              "name": "Ada Lovelace",
              "address": "[email protected]",
              "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
            },
            "sent_at": "2026-10-10T09:30:00Z",
            "forwarded_at": "2026-10-10T09:30:00Z"
          },
          "note_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "project_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "task_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "person_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "links": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
            }
          ],
          "file": {
            "filename": "string",
            "byte_size": 1,
            "content_type": "application/pdf",
            "width": 1,
            "height": 1,
            "url": "https://example.com",
            "download_url": "https://example.com",
            "thumbnail_url": "https://example.com"
          },
          "analysis": {
            "status": "reading",
            "type": "payslip",
            "type_label": "Payslip"
          },
          "created_at": "2026-10-10T09:30:00Z",
          "updated_at": "2026-10-10T09:30:00Z"
        },
        "person": {
          "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "name": "Maya Okafor",
          "aliases": [
            "Mum"
          ],
          "is_me": true,
          "time_zone": "America/New_York",
          "avatar": {
            "url": "https://example.com",
            "thumb_url": "https://example.com",
            "large_url": "https://example.com"
          },
          "key_dates": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "kind": "birthday",
              "label": "Graduation",
              "day": 1,
              "month": 1,
              "year": 1,
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            }
          ],
          "email_addresses": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "address": "[email protected]",
              "label": "Work",
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            }
          ],
          "phone_numbers": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "number": "+44 20 7946 0958",
              "label": "Mobile",
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            }
          ],
          "social_profiles": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "url": "https://example.com",
              "platform": "website",
              "platform_detected": true,
              "label": "Blog",
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            }
          ],
          "positions": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Head of Design",
              "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "created_at": "2026-10-10T09:30:00Z",
              "updated_at": "2026-10-10T09:30:00Z"
            }
          ],
          "connections": [
            {
              "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "kind": "spouse",
              "note": "Met at university"
            }
          ],
          "created_at": "2026-10-10T09:30:00Z",
          "updated_at": "2026-10-10T09:30:00Z"
        },
        "note": {
          "received_via_api": {
            "at": "2026-10-10T09:30:00Z",
            "source": "Zapier"
          },
          "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "title": "Coffee with Maya",
          "name": "Coffee with Maya",
          "title_generated": true,
          "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
          "mood": "anxious",
          "kind": "meeting",
          "kind_source": "owner",
          "tag_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "person_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "project_ids": [
            "01j9zq3k8m5x2v7c4n6b0t1r9e"
          ],
          "body_html": "<p>Talked about the move.</p>",
          "body_text": "Talked about the move.",
          "pinned": true,
          "pinned_at": "2026-10-10T09:30:00Z",
          "event": {
            "link_key": "string",
            "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Planning",
            "all_day": true,
            "starts_at": "2026-10-10T09:30:00Z",
            "start_on": "2026-10-10",
            "linked_at": "2026-10-10T09:30:00Z"
          },
          "edit_version": 1,
          "edited_at": "2026-10-10T09:30:00Z",
          "created_at": "2026-10-10T09:30:00Z",
          "updated_at": "2026-10-10T09:30:00Z"
        },
        "previous": {
          "deadline_on": "2026-10-10",
          "start_on": "2026-10-10"
        }
      }
    },
    "response_body": "string",
    "created_at": "2026-10-10T09:30:00Z",
    "sent_at": "2026-10-10T09:30:00Z"
  }
}

List a webhook's deliveries

GET/webhooks/{id}/deliveries

Its newest 50, newest first, with what was sent and what came back. Not paged.

curl "$NIFTY_URL/api/v1/webhooks/01j9zq3k8m5x2v7c4n6b0t1r9e/deliveries" \
  -H "Authorization: Bearer $NIFTY_TOKEN"

Path parameters

NameDescription
idULIDA record's ID.

Response

200 OK Errors: 401 403 404 429

{
  "data": [
    {
      "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
      "event": "task.created",
      "outcome": "pending",
      "http_status": 100,
      "error": "The address answered 500.",
      "duration_ms": 0,
      "payload": {
        "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
        "type": "task.created",
        "created_at": "2026-10-10T09:30:00Z",
        "data": {
          "task": {
            "planned_start_on": "2026-10-10",
            "delays": 0,
            "deadline_moves": 0,
            "delegated_at": "2026-10-10T09:30:00Z",
            "now_since": "2026-10-10T09:30:00Z",
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Book the plumber",
            "status": "open",
            "start_on": "2026-10-10",
            "deadline_on": "2026-10-10",
            "expires_on": "2026-10-10",
            "completed_at": "2026-10-10T09:30:00Z",
            "archived_at": "2026-10-10T09:30:00Z",
            "task_list_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "assignee_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "position": 1,
            "description_html": "<p>Ask about the boiler too.</p>",
            "description_text": "Ask about the boiler too.",
            "has_documents": true,
            "document_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "expired": true,
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "document": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "kind": "pdf",
            "name": "Boiler warranty",
            "dated_on": "2026-10-10",
            "dated_on_set": true,
            "folder_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "to": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "cc": [
                {
                  "name": "Ada Lovelace",
                  "address": "[email protected]",
                  "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ],
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded": true,
              "forward_note": "string",
              "forwarded_at": "2026-10-10T09:30:00Z",
              "has_html": true,
              "remote_images": true,
              "body_url": "https://example.com",
              "attachments": [
                {
                  "filename": null,
                  "content_type": "application/pdf",
                  "byte_size": null,
                  "status": "saved",
                  "document_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
                }
              ]
            },
            "from_email": {
              "subject": "string",
              "from": {
                "name": "Ada Lovelace",
                "address": "[email protected]",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              },
              "sent_at": "2026-10-10T09:30:00Z",
              "forwarded_at": "2026-10-10T09:30:00Z"
            },
            "note_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "task_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "links": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "note_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "project_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "task_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e"
              }
            ],
            "file": {
              "filename": "string",
              "byte_size": 1,
              "content_type": "application/pdf",
              "width": 1,
              "height": 1,
              "url": "https://example.com",
              "download_url": "https://example.com",
              "thumbnail_url": "https://example.com"
            },
            "analysis": {
              "status": "reading",
              "type": "payslip",
              "type_label": "Payslip"
            },
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "person": {
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "name": "Maya Okafor",
            "aliases": [
              "Mum"
            ],
            "is_me": true,
            "time_zone": "America/New_York",
            "avatar": {
              "url": "https://example.com",
              "thumb_url": "https://example.com",
              "large_url": "https://example.com"
            },
            "key_dates": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "birthday",
                "label": "Graduation",
                "day": 1,
                "month": 1,
                "year": 1,
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "email_addresses": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "address": "[email protected]",
                "label": "Work",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "phone_numbers": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "number": "+44 20 7946 0958",
                "label": "Mobile",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "social_profiles": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "url": "https://example.com",
                "platform": "website",
                "platform_detected": true,
                "label": "Blog",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "positions": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "title": "Head of Design",
                "company_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "created_at": "2026-10-10T09:30:00Z",
                "updated_at": "2026-10-10T09:30:00Z"
              }
            ],
            "connections": [
              {
                "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "person_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
                "kind": "spouse",
                "note": "Met at university"
              }
            ],
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "note": {
            "received_via_api": {
              "at": "2026-10-10T09:30:00Z",
              "source": "Zapier"
            },
            "id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "title": "Coffee with Maya",
            "name": "Coffee with Maya",
            "title_generated": true,
            "category_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
            "mood": "anxious",
            "kind": "meeting",
            "kind_source": "owner",
            "tag_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "person_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "project_ids": [
              "01j9zq3k8m5x2v7c4n6b0t1r9e"
            ],
            "body_html": "<p>Talked about the move.</p>",
            "body_text": "Talked about the move.",
            "pinned": true,
            "pinned_at": "2026-10-10T09:30:00Z",
            "event": {
              "link_key": "string",
              "entry_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "feed_id": "01j9zq3k8m5x2v7c4n6b0t1r9e",
              "title": "Planning",
              "all_day": true,
              "starts_at": "2026-10-10T09:30:00Z",
              "start_on": "2026-10-10",
              "linked_at": "2026-10-10T09:30:00Z"
            },
            "edit_version": 1,
            "edited_at": "2026-10-10T09:30:00Z",
            "created_at": "2026-10-10T09:30:00Z",
            "updated_at": "2026-10-10T09:30:00Z"
          },
          "previous": {
            "deadline_on": "2026-10-10",
            "start_on": "2026-10-10"
          }
        }
      },
      "response_body": "string",
      "created_at": "2026-10-10T09:30:00Z",
      "sent_at": "2026-10-10T09:30:00Z"
    }
  ]
}

Deliveries

Each event a webhook asks for is sent at most once, in the background, a few seconds at most after the change: a JSON WebhookPayload with Content-Type: application/json. There's no retry: an address that's down, slow (over 10 seconds) or answers other than 2xx misses that event. Redirects aren't followed. The newest 50 deliveries of each webhook are kept, with what came back (GET /webhooks/{id}/deliveries).

Signatures

Each request is signed as Standard Webhooks sign theirs, so their libraries check it. The headers are webhook-id (the payload's id), webhook-timestamp (Unix seconds) and webhook-signature: v1, then the Base64 HMAC-SHA256 of {webhook-id}.{webhook-timestamp}.{body}, keyed with the secret's bytes (the Base64 after whsec_). Compare in constant time, and refuse old timestamps.

Events

Each payload's data holds the record as its GET shows it, under task, document, person or note:

  • task.created, task.completed, task.deadline_changed and task.start_changed (a date added, changed or removed, the old one in previous), task.expired (archived on passing its expires_on). A new task sends only task.created, whatever its dates; one change can send several.
  • document.uploaded; document.summarized, once AI has read it (the analysis is GET /documents/{id}/analysis).
  • person.created.
  • note.saved: a note was added or changed. Saves while it's being written are gathered: at most one a minute per note, with the note as it is then.

test is sent only by POST /webhooks/{id}/test. More events will come; ignore types you don't know.

Webhooks are this server's own: they aren't synced, and have no updated_since or deletion records. They need a token with full access (or a session): a read token gets 403 read_only_token even to list them, as an address is often a password.

Menu

2026.10.2Contact support