Skip to main content

Endpoint

POST https://api.yourdomain.com/api/v1/capture
Auth: Authorization: Bearer <YOUR_API_KEY> Unlike the inbound webhook endpoints, the capture API requires an API key. Generate one in Settings → API Keys.

Request body

{
  "email": "prospect@company.com",
  "type": "email_sent",
  "source": "smtp",
  "description": "Outbound: Introduction email",
  "external_id": "msg_<message-id>",
  "occurred_at": "2026-05-14T10:00:00Z",
  "metadata": {
    "subject": "Introduction to Nous",
    "campaign": "May Outreach"
  }
}

Fields

FieldTypeRequiredDescription
emailstringYes*Contact email. Required if contact_id not set.
contact_idUUIDYes*Contact UUID. Required if email not set.
typestringYesActivity type — see table below
sourcestringNoSource identifier (e.g. smtp, custom, zapier)
descriptionstringNoHuman-readable label shown on the timeline
external_idstringNoDeduplication key — safe to retry
occurred_atISO 8601NoDefaults to now()
metadataobjectNoAny extra key-value pairs

Activity types

typeDescription
email_sentOutbound email
email_receivedInbound email / reply
email_openedOpen tracked
email_bouncedBounce
callPhone call
meeting_scheduledMeeting booked
meeting_heldMeeting completed
website_visitPage view
linkedin_messageLinkedIn DM
noteManual note
customAnything else

Response

{
  "ok": true,
  "activity_id": "uuid",
  "contact_id": "uuid",
  "stage_before": "identified",
  "stage_after": "aware"
}
stage_before / stage_after tell you if this signal advanced the contact’s pipeline stage.

Example: Zapier

Use the custom capture endpoint in a Zapier webhook action to log events from any tool Nous doesn’t natively support.