RODEO

Beats API

CRUD for beats within draft scenes.

GET /scenes/:sceneId/beats

// 200
{
  "beats": [
    {
      "id": "uuid",
      "sequence": 1,
      "channelId": "uuid",
      "content": { "body": "Hello" },
      "toneWarmth": "warm",
      "toneUrgency": "none",
      "toneAsk": "implicit",
      "timingMode": "absolute",
      "targetTime": "2025-01-15T08:00:00Z",
      "status": "pending",
      "firedAt": null,
      "driftMs": null
    }
  ]
}

POST /scenes/:sceneId/beats

Draft scenes only.

FieldTypeValues
sequenceintegerPositive integer
channel_idUUIDExisting channel
contentobjectFreeform JSON
tone.warmthstringcool, warm, familiar, intimate
tone.urgencystringnone, gentle, present, pressing
tone.askstringnone, implicit, soft, direct
timing.modestringabsolute, relative, conditional

Optional: tolerance, window, prerequisites, fallback, sensors_config

// 201
{
  "beat": { "id": "uuid", "sequence": 2 }
}

PATCH /scenes/:sceneId/beats/:beatId

Draft scenes only. All fields optional.

// 200
{
  "beat": { "id": "uuid" }
}

DELETE /scenes/:sceneId/beats/:beatId

Draft scenes only. Returns 204.