Layers

GET /v1/projects/:projectId/engagement

Read the auto-pilot engagement config - first-comment template and reply-to-comments policy.

View as Markdown
GET/v1/projects/:projectId/engagement
Phase 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
  • projectId
    stringrequired
    Project 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

FieldShape
projectLayerIdThe 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.
enabledMaster switch.
firstComment.targetsPlatforms where a first comment is posted.
firstComment.commentTemplateComment body. No templating language - literal text.
replyToComments.targetsPlatforms where auto-replies run.
replyToComments.autoReplyDelayISO-8601 duration before replying. Instant bot replies read as bots; tune per platform.
firstComment.strategyliteral (publish commentTemplate verbatim) or generated (default; LLM with commentTemplate as examples).
replyToComments.tonePer-action brand-voice override for replies. Overrides the project-level engagement tone.
replyToComments.maxPerPostPerHourRolling-hour cap for owner-replies on a single post.
replyToComments.ignoreCommentsMatchingRegex allowlist of comments to skip.
replyToComments.escalateNegativeSentimentWhen true, negative-sentiment user comments route to draft instead of auto-publish.

Errors

StatusCodeWhen
401UNAUTHENTICATEDMissing or invalid key.
403FORBIDDEN_SCOPEKey lacks engagement:write.
404NOT_FOUNDProject not in your organization, or no Social Engagement layer attached.

See also

On this page