Webhooks

Mark an event done

Marks an event handled, the only terminal state, shared across every consumer under the tenant. No failed state; an unhandled event just expires at 24 hours. Safe to call twice; keeps the first completion time.

post/v1/{account_id}/events/{event_id}/done

Request

  • Base URL: https://api.curviate.com
  • URL: https://api.curviate.com/v1/{account_id}/events/{event_id}/done
  • Auth: HTTP bearer

Path parameters

account_idstring required

The connected LinkedIn account whose received events to read.

event_idstring required

The event's id, as returned by the events read or by a claim.

Response

The event's state after being marked done. Done is the only terminal state there is, and it is shared: once an event is done it leaves the unread set for every consumer under this tenant, not just for you. There is no failed state, because an event nothing can handle simply expires with the rest at 24 hours. Calling this twice is safe and keeps the first done_at.

object'event_lease' required

Response type discriminator.

idstring required

The event's id.

state'unread' | 'claimed' | 'done' required

unread: claimable now. claimed: leased to someone until lease_until. done: handled, and it will never be handed out again. There is no failed state.

claimed_bystring nullable required

The consumer name recorded by the last claim, or null. Free text, never verified, so treat it as a label rather than an identity.

lease_untilstring date-time nullable required

When the current lease expires, or null when the event is not leased.

done_atstring date-time nullable required

When the event was marked done, or null. Set once and never moved.

Example response

{
  "safety_warning": {
    "row": "profile_views",
    "reset_at": "2026-09-05T00:00:00.000Z",
    "hint": {
      "parameter": "profile_views.ceiling",
      "message": "This account is at its ceiling for profile_views. This action went through because profile_views.posture is warn, and it counted: 101 of 100 this window. Raise profile_views.ceiling, or wait for the window to reset at 2026-09-05T00:00:00.000Z."
    },
    "reason": "ceiling",
    "blocked": false
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.