Skip to content
NMC Docs

Lead journey

GET
/leads/{lead_id}/journey
curl --request GET \
--url 'https://api.nomissedconversions.com/v1/leads/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/journey?limit=10&kind=activity&activity_kind=call' \
--header 'Authorization: Bearer <token>'

Lists a lead’s activities, linked website page views, and lead events ordered by occurred_at descending. When multiple entries share the same occurred_at timestamp, lead events appear first (most recently saved first), followed by activities and then website page views (each ordered by id descending). Filters are applied before pagination. Both activity_kind and updated_since require kind=activity.

lead_id
required
string format: uuid
page
string
>= 1 characters <= 2048 characters
limit
integer format: int64
default: 10 >= 1 <= 100
updated_since

Return records with updated_at on or after this timestamp (inclusive).

string format: date-time

Return records with updated_at on or after this timestamp (inclusive).

kind
string
Allowed values: activity page_view lead_event
activity_kind
string
Allowed values: call text form_submission forwarded_email
occurred_from
string format: date-time
occurred_before
string format: date-time

A page of journey entries with the business’s currency and timezone.

Media typeapplication/json
object
business
required
object
currency_code
required
string
Allowed values: USD CAD
id
required
string format: uuid
name
required
string
timezone
required
string
tracking
required

Whether NMC is currently tracking new calls, texts, forms, and forwarded emails for this business. Tracking pauses when the account’s plan isn’t running or its balance drops to $0 or below.

object
since
required

When tracking last switched between active and paused.

string format: date-time
state
required
string
Allowed values: active paused
website_url
required
string
data
required
Array
One of: discriminator: kind
object
activity
required
object
call_status
required
Any of:

Outcome of the call, matching the NMC dashboard. A call’s status can update after hangup (for example, changing from answered to a voicemail status once transcription finishes). answered: answered and recorded. answered_unrecorded: answered with call recording turned off (so voicemail can’t be distinguished from a person). didnt_connect: busy, unanswered, or failed to forward. Counts as Missed in NMC reports. voicemail_no_message: reached voicemail without leaving a message. Counts as Missed in NMC reports. voicemail_message: reached voicemail and left a message. Counts as Missed in NMC reports. unknown: call ended without a final carrier status. pending: call is still ringing or in progress.

string
Allowed values: answered answered_unrecorded didnt_connect voicemail_no_message voicemail_message unknown pending
contact_id
required
string format: uuid
duration_seconds
required
integer | null format: int32
has_recording
required
boolean
id
required
string format: uuid
is_first_activity
required
boolean
kind
required
string
Allowed values: call text form_submission forwarded_email
lead_id
required
string format: uuid
occurred_at
required
string format: date-time
preview
required
string | null
updated_at
required
string format: date-time
id
required
string format: uuid
kind
required
string
Allowed values: activity
occurred_at
required
string format: date-time
next_page_url
required
string | null format: uri
previous_page_url
required
string | null format: uri
Example
{
"business": {
"currency_code": "USD",
"tracking": {
"state": "active"
}
},
"data": [
{
"activity": {
"call_status": "answered",
"kind": "call"
},
"kind": "activity"
}
]
}

Error response. Status codes: 400 for malformed requests or rejected parameters, 401 for a missing or unrecognized API key, 403 when the account is on hold, the plan isn’t running (which blocks all requests, including reads), or the resource is read-only, 404 when the resource isn’t found, 405 for an unsupported HTTP method, 409 when tracking is paused or the request conflicts with existing input, lead state, business currency, or the webhook endpoint limit, 413 when the body exceeds 64 KiB, 429 when rate limited, 500 for an unexpected server error, and 503 when the service is temporarily unavailable. Retry 500 and 503 errors with backoff (and 429 after Retry-After) by resending the same request, keeping the same submission ID for form submissions. Include X-Request-ID when contacting support.

Media typeapplication/json

The HTTP status code gives the general error category. Show message to the user, and never branch on its text. Include X-Request-ID when contacting support so NMC can match the response to server logs.

object
code
required

Invalid_request: fix the request body or path; when NMC rejected a specific field value, message names that field, while malformed or schema-violating requests return a general contract error. invalid_parameter: remove or fix the query parameter named in param. invalid_page: omit page and restart pagination from the first page with the same filters and limit. invalid_api_key: pass an active business API key in Authorization. account_on_hold: the account is on hold; contact support. plan_inactive: the account’s plan isn’t running; all requests fail until an admin starts the plan in billing. anonymous_contact_read_only: anonymous contacts are read-only and can’t be edited. tracking_paused: tracking is paused for this business, so new form submissions aren’t accepted. not_found: the requested resource doesn’t exist in this business. method_not_allowed: use an HTTP method listed in the Allow header. form_submission_conflict: this submission id was already used with different fields; generate a new UUID for new submissions. contact_identity_conflict: another contact in this business already uses that phone number or email address. phone_has_activities: a contact’s phone number can’t be changed once calls or texts have been recorded for it. recording_processing: the call recording is still processing; retry shortly. currency_changed: the business currency changed; reload /business and resend with the updated currency_code and value_cents. lead_status_conflict: change the lead’s status first as described in message. page_view_conflict: website_page_view_id belongs to a different visitor or page. webhook_endpoint_limit: the business reached its webhook endpoint limit; delete an unused endpoint or contact support. google_ads_conversions_confirmation_required: inspect unremovable_google_ads_conversions and resend with confirm_google_ads_conversions_cannot_be_removed set to true. body_too_large: keep the request body at or below 64 KiB. rate_limited: wait for Retry-After seconds before retrying. internal_error: unexpected server error; retry with exponential backoff. temporarily_unavailable: service temporarily unavailable; retry with exponential backoff.

string
Allowed values: invalid_request invalid_parameter invalid_page invalid_api_key account_on_hold plan_inactive anonymous_contact_read_only tracking_paused not_found method_not_allowed form_submission_conflict contact_identity_conflict phone_has_activities recording_processing currency_changed lead_status_conflict page_view_conflict webhook_endpoint_limit google_ads_conversions_confirmation_required body_too_large rate_limited internal_error temporarily_unavailable
message
required
string
param
string
unremovable_google_ads_conversions
Array<object>
object
conversion_source
required
string
Allowed values: website calls_from_ads
stage_id
required
string format: uuid
stage_name
required
string
Example
{
"code": "invalid_request",
"unremovable_google_ads_conversions": [
{
"conversion_source": "website"
}
]
}
Allow
string
Retry-After
integer
WWW-Authenticate
string