Skip to the page

API reference

List sequences

Your sequences, newest first.

GET/v1/sequences

Your sequences, newest first. Archived ones are left out unless you ask for state=archived.

Needs a key with the messages:read scope. Keys and scopes

Query parameters

  • statestring

    One of active, paused, archived.

  • limitinteger

    How many to return, 1 to 100. Default 25.

    1 to 100.Default 25.

  • cursorstring

    The next_cursor of the page before. Leave it out for the first page.

    Up to 200 characters.

Example

GET/v1/sequencesList sequences →
curl "https://usebluebot.com/api/v1/sequences" \
  -H "Authorization: Bearer $BLUEBOT_API_KEY"

Response

200: A page of sequences.

  • object"list"required
  • dataarray of Sequencerequired
    Show its 11 fields
    • idstringrequired

      A seq_ id.

      Starts with seq_.

    • object"sequence"required
    • namestringrequired
    • descriptionstring or nullrequired
    • statestringrequired

      active takes new people and sends; paused holds every enrollment where it is; archived ends them.

      One of active, paused, archived.

    • stop_on_replybooleanrequired

      Stop a person’s run when they text back. On unless you turn it off. A stop word always stops it.

    • send_windowobject or nullrequired

      When steps may send, in your time zone. A step due outside it waits for it to open.

      Show its 3 fields
      • daysarray of stringsrequired

        The days it may send on.

        One of mon, tue, wed, thu, fri, sat, sun.

      • startstringrequired

        A time of day as HH:MM in your account’s time zone.

      • endstringrequired

        A time of day as HH:MM in your account’s time zone.

    • stepsarray of SequenceSteprequired
      Show its 7 fields
      • idstringrequired

        A step_ id.

        Starts with step_.

      • positionintegerrequired

        Its place in the sequence, from 0.

      • kindstringrequired

        One of text, wait.

      • wait_secondsinteger or nullrequired

        For a wait: how long, from a minute to a year.

      • textstring or nullrequired

        For a text: the words, with {{variables}}.

      • template_idstring or nullrequired

        For a text: the template it uses instead of text.

      • servicestringrequired

        One of auto, imessage, sms.

    • countsmap of integerrequired

      Enrollments by state: active, completed, stopped, canceled.

    • created_viastringrequired

      One of dashboard, api, assistant, mcp, zapier, cli.

    • created_attimestamprequired

      When it was made.

  • has_morebooleanrequired

    Whether another page follows.

  • next_cursorstring or nullrequired

    Send as cursor for the next page; null on the last.

Response200
{
  "object": "list",
  "data": [
    {
      "id": "seq_1Hq2LxW9cVbN3mKpRtYs0a",
      "object": "sequence",
      "name": "New lead follow-up",
      "description": "For people who ask about a listing.",
      "state": "active",
      "stop_on_reply": true,
      "send_window": {
        "days": [
          "mon",
          "tue",
          "wed",
          "thu",
          "fri"
        ],
        "start": "09:00",
        "end": "18:00"
      },
      "steps": [
        {
          "id": "step_1Hq2LxW9cVbN3mKpRtYs0a",
          "position": 0,
          "kind": "text",
          "wait_seconds": null,
          "text": "Hi {{first_name|there}}, thanks for asking about {{listing}}. Want to see it?",
          "template_id": null,
          "service": "auto"
        },
        {
          "id": "step_2Bf8QzD4kJmA6nXwEuTr1c",
          "position": 1,
          "kind": "wait",
          "wait_seconds": 172800,
          "text": null,
          "template_id": null,
          "service": "auto"
        },
        {
          "id": "step_3Lp3VsC7hGqE5tZyKbWn2d",
          "position": 2,
          "kind": "text",
          "wait_seconds": null,
          "text": "Just checking in. Still interested in {{listing}}?",
          "template_id": null,
          "service": "auto"
        }
      ],
      "counts": {
        "active": 12,
        "completed": 30,
        "stopped": 9,
        "canceled": 1
      },
      "created_via": "dashboard",
      "created_at": "2026-11-01T15:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Errors

Every refusal has the same envelope and a page of its own. These are the ones this operation can give.

CodeStatusWhat it means
unauthorized401The request carried no key, or a key BlueBot doesn’t know: mistyped, revoked, or a test key sent to the live API.
insufficient_scope403The key doesn’t carry the scope the endpoint needs. Each endpoint’s reference names its scope.
rate_limited429Too many requests. A key may make 120 requests a minute. The RateLimit header says how many are left, and Retry-After how long to wait.
internal500Something went wrong on BlueBot’s side. It was reported. Send the request again; with an Idempotency-Key that is always safe.
invalid_request400Something in the request doesn’t fit: a missing or malformed field, a bad id, or a combination the endpoint refuses. details names each field.

Try it

Call this operation from the page with your own key. The key stays in this tab and is forgotten when you leave.