Back to reference

API Reference

List ICP filter options

Returns the global ICP filter fields and curated option values supported by ICP templates.

GET/v1/accounts/{accountGroupId}/icp-templates/filter-options

Integration notes

Permissions

templates:read for reads and templates:write for create, update, and delete operations.

Follow-up

Template operations are synchronous. Read campaigns or content slots again when downstream state depends on a changed template.

Writing-style syntax

Samples support Spintax such as {Hi|Hello}, documented double-brace profile variables, and signal variables in signal samples. Sonarly renders them before approval; workflow-run edits require final text.

Parameters

accountGroupIdPath

Type: string

Account group ID that scopes the request.

Required

Request body

This endpoint does not define a request body.

Responses

200

ICP filter options

Schema: IcpTemplateFilterOptionsSuccessResponse

400

Request validation failed

Schema: ValidationErrorResponse

401

Invalid or missing API key

Schema: ErrorResponse

403

Missing required permission

Schema: ErrorResponse

429

Rate limit exceeded

Schema: ErrorResponse

500

Internal server error

Schema: ErrorResponse

Response examples

200 Example JSONIcpTemplateFilterOptionsSuccessResponse
{
    "success": true,
    "data": {
        "sections": [
            {
                "id": "507f1f77bcf86cd799439011",
                "label": "string",
                "fields": [
                    {
                        "key": "string",
                        "label": "string",
                        "type": "string",
                        "description": "string",
                        "aliases": "string",
                        "options": "string"
                    }
                ]
            }
        ]
    },
    "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"
}
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"
}