squiggli Get a free API key
Guides

Tracking and the audit trail

See who opened what, from which link, and every event in order.

Each email squiggli sends carries a new link: the invite, each reminder, each resend. So when a signer opens a document you know which email got them there. The envelope lists each signer's links:

json
"links": [
  { "id": "lnk_a1", "source": "invite",   "sequence": 1, "opens": 0 },
  { "id": "lnk_b2", "source": "reminder", "sequence": 1, "opens": 0 },
  { "id": "lnk_c3", "source": "reminder", "sequence": 2, "opens": 1, "first_opened_at": "2026-11-09T08:42:10.000Z" }
]

Sources are invite, reminder (automatic), resend (you called remind) and api (the signing_url the API returns).

The audit trail

bash
curl https://squiggli.billy-965.workers.dev/v1/envelopes/env_.../events -H "Authorization: Bearer $SQUIGGLI_API_KEY"
EventRecorded when
envelope.createdThe envelope is made.
envelope.sentIt is sent.
signer.notifiedA sequential signer gets their turn.
link.openedA signer opens their link: which link, IP address, device.
signer.viewedA signer opens it for the first time.
reminder.sentA reminder goes out.
signer.consentedA signer agrees to sign electronically: the exact wording and its version.
signer.signedA signer signs: IP, device, the intent statement and the documents' SHA-256 hashes.
signer.declinedA signer declines, with their reason.
envelope.completedEveryone has signed.
envelope.voidedThe sender cancels it.
envelope.expiredThe deadline passes.

The audit trail is never changed or deleted while the envelope exists, and it is printed on the completion certificate.