Back to reference

API Reference

List writing styles

GET/v1/accounts/{accountGroupId}/writing-styles

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.

Parameters

accountGroupIdPath

Type: string

Account group ID that scopes the request.

Required

cursorQuery

Type: string

Opaque pagination cursor returned by the previous page.

Optional

limitQuery

Type: number

Maximum number of items to return in this page.

Optional

Request body

This endpoint does not define a request body.

Responses

200

Paginated writing styles

Schema: WritingStyleListSuccessResponse

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 JSONWritingStyleListSuccessResponse
{
    "success": true,
    "data": {
        "items": [
            {
                "id": "507f1f77bcf86cd799439011",
                "name": "Avery Stone",
                "description": "string",
                "contentType": "direct_message",
                "samples": [
                    {
                        "type": "string",
                        "message": "Thanks for the context. I can send over details this afternoon.",
                        "subject": "Quick follow-up",
                        "signalTag": "string"
                    }
                ],
                "includeRules": [
                    "string"
                ],
                "excludeRules": [
                    "string"
                ],
                "useStrictTemplate": true,
                "createdAt": "2026-04-28T15:30:00.000Z"
            }
        ],
        "nextCursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTA0LTI4VDE1OjMwOjAwLjAwMFoifQ",
        "hasMore": 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"
}
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"
}