Menu

API reference · CRM

Inbound webhook logs

crm · webhook_logs · 2 operations

GET/v1/crm/lead-sources/{source_id}/logs

List the webhook deliveries of a lead source

crm.webhook_logs.list

ReadIdempotentSince 2026-11-01

Lists what a lead source received through its webhook, newest first and paginated by cursor (limit up to 200): status (success, duplicate, error, rate_limited), the error, the stored payload, the lead created or matched (lead_id, with lead_kind: deal or prospect) and the person, and the retry state. Use it to find out why a lead did not arrive and which error entries can be retried with crm.webhook_logs.retry. Not found for deleted sources. Requires manage_sources (the entries carry the raw lead data). With Google Ads, LinkedIn or TikTok, their terms limit it through the API and the MCP: what they do not allow answers 403 platform_terms_restricted, and their fields are left out of the response (the permissions guide lists what each platform allows).

Scope
crm:read
Permission
View the module · CRM action: manage_sources
MCP tool
crm_webhook_logs_listOn the full surface; on the compact one, mb_execute_operation with id: "crm.webhook_logs.list".

Declared cost: up to 603 reads and 0 writes per call (they count against the daily quota).

Parameters

source_idstringpathrequired

The lead source: an id of crm.lead_sources.list.

limitintegerqueryoptional

How many items this page brings at most (see the maximum and the default in the schema).

Default: 50

cursorstringqueryoptional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

Response

dataarray<object>
has_moreboolean
next_cursorstring

Errors

Example

curl "https://api.mb-suite.com/v1/crm/lead-sources/{source_id}/logs" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/crm/lead-sources/{source_id}/logs" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/webhook-logs/{log_id}/retry

Retry a failed webhook delivery

crm.webhook_logs.retry

WriteSince 2026-11-01

Re-processes a failed webhook delivery from its stored payload through the same ingestion as the original (person and company matched or created, prospect or deal, dedup, assignment, notifications, scoring and sequences). Only error entries of generic webhook and MB Suite form sources are retryable, an entry already retried successfully cannot be retried again, and its source must exist and be active. Meta, TikTok and Google deliveries are recovered with the backfill in the app instead. Requires manage_sources.

Scope
crm:write
Permission
Edit in the module · CRM action: manage_sources
MCP tool
crm_webhook_logs_retryOn the full surface; on the compact one, mb_execute_operation with id: "crm.webhook_logs.retry".

Declared cost: up to 22 reads and 11 writes per call (they count against the daily quota).

Parameters

log_idstringpathrequired

The error entry to re-process: an id of crm.webhook_logs.list with retryable true.

Response

duplicateboolean

Whether it matched a lead that already existed.

person_idstring
source_idstring
prospect_idstring

The prospect created or matched, when the source creates prospects.

deal_idstring

The deal created or matched, when the source creates deals.

Errors

Example

curl -X POST "https://api.mb-suite.com/v1/crm/webhook-logs/{log_id}/retry" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X POST "https://api.mb-suite.com/v1/crm/webhook-logs/{log_id}/retry" \
  -H "Authorization: Bearer $MB_TEST_KEY"