API Reference
List campaign content needing approval
Returns one item per prospect workflow run waiting for approval, including editable `subject`, `message`, and `requestMessage` fields plus a read-only `workflowReview` graph and per-message `reviewContext`. Use one-based `page` and `limit` pagination and inspect `currentPage`, `totalPages`, and `totalItems`; `limit` accepts 1–100. Approval is atomic for the complete pending batch of that one prospect run. Direct messages and InMail use `message` and optional `subject`, connection requests can include `requestMessage`, and comment content includes `postLink` and `postSummary` so reviewers can verify the target. Multiline content is represented as JSON strings with `\n` line breaks. Unknown query parameters are rejected with `422 VALIDATION_ERROR`.
/v1/accounts/{accountGroupId}/campaigns/content-approvalsReview queue
Use this endpoint to fetch all content currently waiting for approval before editing or approving it. Comment items include postLink and postSummary so reviewers can verify the exact LinkedIn post target.
Integration notes
Required API permission
campaigns:read.
Prerequisites
integration_api_key, account_group_access.
Parameters
accountGroupIdPathType: string
Account group ID that scopes the request.
Required
campaignIdQueryType: string
Campaign ID that identifies the campaign to read or mutate.
Optional
pageQueryType: integer
Query parameter used to filter or shape page.
Optional
limitQueryType: integer
Maximum number of items to return in this page.
Optional
Request body
Responses
Pending approval content
Schema: CampaignContentApprovalListSuccessResponse
Request validation failed
Schema: ValidationErrorResponse
Invalid or missing API key
Schema: ErrorResponse
Missing required permission
Schema: ErrorResponse
Request validation failed
Schema: ValidationErrorResponse
Rate limit exceeded
Schema: ErrorResponse
Internal server error
Schema: ErrorResponse
Upstream service error
Schema: ErrorResponse
Response examples
200 Example JSONCampaignContentApprovalListSuccessResponse
{
"success": true,
"data": {
"items": [
{
"workflowInstanceId": "507f1f77bcf86cd799439011",
"campaignId": "507f1f77bcf86cd799439011",
"campaignName": "Avery Stone",
"linkedListId": "507f1f77bcf86cd799439011",
"leadId": "507f1f77bcf86cd799439011",
"personId": "507f1f77bcf86cd799439011",
"firstName": "Avery Stone",
"lastName": "Avery Stone",
"title": "string",
"companyName": "Avery Stone",
"photoUrl": "https://example.com/resource",
"linkedinUrl": "https://example.com/resource",
"latestStep": "string",
"pendingContent": [
{
"nodeId": "507f1f77bcf86cd799439011",
"nodeSubType": "string",
"contentType": "string",
"subject": "Quick follow-up",
"message": "Thanks for the context. I can send over details this afternoon.",
"requestMessage": "Thanks for the context. I can send over details this afternoon.",
"generatedAt": "string",
"previousStepSubType": "string",
"workflowPath": "string",
"reviewContext": "string",
"postLink": "string",
"postSummary": "string"
}
],
"workflowReview": {
"nodes": [
"string"
],
"edges": [
"string"
]
}
}
],
"totalItems": 0.82,
"totalPages": 0.82,
"currentPage": 0.82
},
"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"
}422 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"
}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"
}