Back to reference

API Reference

Get campaign workflow status for a specific set of leads

Returns campaign-scoped workflow status for the requested lead IDs, including explicit not-started and not-in-campaign results so callers do not have to infer missing rows.

GET/v1/accounts/{accountGroupId}/campaigns/{campaignId}/lead-status

Workflow statuses

Lead status is campaign-scoped and can be pending, waiting, completed, stopped, not_started, not_in_campaign, or not_eligible.

Integration notes

Required API permission

campaigns:read.

Prerequisites

integration_api_key, account_group_access.

Parameters

accountGroupIdPath

Type: string

Account group ID that scopes the request.

Required

campaignIdPath

Type: string

Campaign ID that identifies the campaign to read or mutate.

Required

leadIdsQuery

Type: string

Lead IDs to include in the requested operation.

Required

Request body

This endpoint does not define a request body.

Responses

200

Campaign workflow status for the requested leads

Schema: CampaignLeadStatusListSuccessResponse

400

Request validation failed

Schema: ValidationErrorResponse

401

Invalid or missing API key

Schema: ErrorResponse

403

Missing required permission

Schema: ErrorResponse

404

Resource not found

Schema: ErrorResponse

429

Rate limit exceeded

Schema: ErrorResponse

500

Internal server error

Schema: ErrorResponse

502

Upstream service error

Schema: ErrorResponse

Response examples

200 Example JSONCampaignLeadStatusListSuccessResponse
{
    "success": true,
    "data": {
        "items": [
            {
                "leadId": "507f1f77bcf86cd799439011",
                "workflowStatus": "pending",
                "workflowInstanceId": "507f1f77bcf86cd799439011",
                "latestStep": "string",
                "workflowStopReason": "CONTENT_DISCARDED",
                "hasPendingApproval": true
            }
        ]
    },
    "error": null,
    "traceId": "507f1f77bcf86cd799439011"
}
400 Example JSONValidationErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
401 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
403 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
404 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
429 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
500 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}
502 Example JSONErrorResponse
{
    "success": false,
    "data": null,
    "error": {
        "code": "string",
        "message": "Thanks for the context. I can send over details this afternoon.",
        "details": "string"
    },
    "traceId": "507f1f77bcf86cd799439011"
}