Skip to content
NMC Docs

Recording link

GET
/activities/{activity_id}/recording
curl --request GET \
--url https://api.nomissedconversions.com/v1/activities/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/recording \
--header 'Authorization: Bearer <token>'

Returns a signed recording URL that expires after 5 minutes. Returns 409 while the recording is still processing, or 404 if the activity has no recording.

activity_id
required
string format: uuid

Signed recording access.

Media typeapplication/json
object
expires_at
required
string format: date-time
url
required
string format: uri
Examplegenerated
{
"expires_at": "2026-04-15T12:00:00Z",
"url": "https://example.com"
}

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