Back to reference

API Reference

Deduplicate an audience

Keeps the first membership in the audience's current membership order for each selected identity and removes later duplicate memberships. person_id is the default and also collapses distinct lead wrappers for the same person; lead_id only removes repeated lead IDs. Underlying lead records are never deleted.

POST/v1/accounts/{accountGroupId}/audiences/{audienceId}/deduplicate

Integration notes

Required API permission

audiences:write.

Prerequisites

integration_api_key, account_group_access.

Idempotency

not supported; check the current resource state before retrying this request.

Parameters

accountGroupIdPath

Type: string

Account group ID that scopes the request.

Required

audienceIdPath

Type: string

Audience ID that identifies the list or folder target.

Required

Request body

Required

Optional

Content types

application/json

Schema

object

Fields

strategy

Type: lead_id | person_id

Request field for strategy.

Optional

Responses

200

Audience memberships deduplicated

Schema: AudienceDeduplicateSuccessResponse

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

409

Audience is still being populated by an active prospecting job

Schema: ErrorResponse

429

Rate limit exceeded

Schema: ErrorResponse

500

Internal server error

Schema: ErrorResponse

Response examples

200 Example JSONAudienceDeduplicateSuccessResponse
{
    "success": true,
    "data": {
        "audience": {
            "id": "507f1f77bcf86cd799439011",
            "name": "Avery Stone",
            "type": "linkedin_search",
            "description": "string",
            "folderId": "507f1f77bcf86cd799439011",
            "position": 25,
            "prospectCount": 25,
            "createdAt": "string",
            "updatedAt": "string"
        },
        "removedCount": 25
    },
    "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"
}
409 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"
}