GET /v1/projects/:projectId/engagement
Read the auto-pilot engagement config - first-comment template and reply-to-comments policy.
GET
/v1/projects/:projectId/engagementPhase 1stable
- Auth
- Bearer
- Scope
- engagement:read
Read the engagement config attached to a project's Social Engagement layer - the first-comment template that gets posted under every new post, and the reply-to-comments policy that governs auto-replies.
The enabled field is the master switch. If it's false, Layers still accepts reads and writes but nothing runs until you flip it on.
Path
projectIdstringrequiredProject whose engagement layer you want.
Example request
curl https://api.layers.com/v1/projects/prj_254a4ce1-f4ca-42b1-9e36-17ca45ef3d39/engagement \
-H "Authorization: Bearer lp_..."const config = await layers.engagement.get({
projectId: "prj_254a4ce1-f4ca-42b1-9e36-17ca45ef3d39",
});
if (!config.enabled) {
// engagement is off - either intentionally or never configured
}config = layers.engagement.get(project_id="prj_254a4ce1-f4ca-42b1-9e36-17ca45ef3d39")Response
200Engagement config
{
"projectLayerId": "pl_01HXZT9P2K4N5M6Q7RSTUV8WXY",
"enabled": true,
"firstComment": {
"targets": ["tiktok", "instagram"],
"commentTemplate": "Brewing tip: use filtered water - makes a bigger difference than you'd expect."
},
"replyToComments": {
"targets": ["tiktok", "instagram"],
"autoReplyDelay": "PT3M"
}
}Field reference
| Field | Shape |
|---|---|
projectLayerId | The Social Engagement layer instance that holds this config. Round-trip this back in PATCH to disambiguate if a project has more than one engagement layer. |
enabled | Master switch. |
firstComment.targets | Platforms where a first comment is posted. |
firstComment.commentTemplate | Comment body. No templating language - literal text. |
replyToComments.targets | Platforms where auto-replies run. |
replyToComments.autoReplyDelay | ISO-8601 duration before replying. Instant bot replies read as bots; tune per platform. |
firstComment.strategy | literal (publish commentTemplate verbatim) or generated (default; LLM with commentTemplate as examples). |
replyToComments.tone | Per-action brand-voice override for replies. Overrides the project-level engagement tone. |
replyToComments.maxPerPostPerHour | Rolling-hour cap for owner-replies on a single post. |
replyToComments.ignoreCommentsMatching | Regex allowlist of comments to skip. |
replyToComments.escalateNegativeSentiment | When true, negative-sentiment user comments route to draft instead of auto-publish. |
Errors
| Status | Code | When |
|---|---|---|
| 401 | UNAUTHENTICATED | Missing or invalid key. |
| 403 | FORBIDDEN_SCOPE | Key lacks engagement:write. |
| 404 | NOT_FOUND | Project not in your organization, or no Social Engagement layer attached. |
See also
PATCH /v1/projects/:id/engagement- update the config- Configure auto-pilot engagement - end-to-end walk-through