Skip to main content
A sequence template is the master outreach playbook for a given campaign or target segment. It defines the full sequence of steps (emails, LinkedIn messages, manual tasks), the sending schedule and timezone, and how many new leads to process each day. When a contact is enrolled, Topo instantiates a live sequence from the template and executes steps on the configured schedule. The Sequence Templates API gives you read access to the templates in your workspace. This is useful for building integration UIs (e.g., a lead import tool that lets users pick which playbook to enroll contacts into) or for querying template metadata in analytics pipelines.
All Sequence Templates endpoints require the sequences:read scope. Sequence templates are read-only via the API — create and edit templates in the Topo UI.

The sequence template object

id
string (UUID)
required
Unique identifier for the template.
name
string | null
required
Human-readable name of the template, as set in the Topo UI.
summary
string | null
A short description of what the template is designed to accomplish (e.g., “Cold outreach to VP Sales at Series B+ SaaS companies”).
status
string
required
Current lifecycle state. See Template statuses below.
step_count
integer
required
The number of steps configured on the template.
language
string | null
BCP-47 language tag for the language the template was authored in (e.g., en, fr, de).
timezone
string
required
IANA timezone identifier used when evaluating the template’s send-window rules (e.g., America/New_York, Europe/Paris).
activated_at
string (ISO 8601) | null
When the template was first activated. null if the template has never been activated.
created_at
string (ISO 8601)
required
When the template was created.
updated_at
string (ISO 8601)
required
When the template was last modified.

Template statuses

StatusDescription
PENDING_SETUPThe template is being configured and is not yet ready to accept leads.
ACTIVEThe template is live and can accept new lead enrollments.
INACTIVEThe template has been deactivated; existing sequences continue but no new leads are enrolled.
FINISHINGThe template is winding down; existing sequences continue to execute but no new enrollments are accepted.
ARCHIVEDThe template has been archived and is no longer in use.
Only ACTIVE templates accept new lead enrollments. If you’re building a lead import workflow, filter by status=ACTIVE to show only templates available for enrolment.

List sequence templates

Requires scope: sequences:read
Returns a paginated list of sequence templates in your workspace.
GET /v1/sequence-templates

Query parameters

name
string
Filter by template name. This is an exact match — the value must equal the template’s name field exactly.
status
string
Filter by lifecycle state. One of: PENDING_SETUP, ACTIVE, INACTIVE, FINISHING, ARCHIVED.
created_at_after
string (ISO 8601)
Return templates created strictly after this timestamp.
created_at_before
string (ISO 8601)
Return templates created strictly before this timestamp.
sort_by
string
Field to sort results by. One of: created_at, updated_at, name. Defaults to created_at.
sort_order
string
Sort direction. asc or desc. Defaults to asc.
page
integer
Page number (1-indexed). Defaults to 1.
size
integer
Number of items per page. Between 1 and 100. Defaults to 10.

Response

items
array
Array of sequence template objects on this page.
total_count
integer
Total number of templates matching the query across all pages.
total_pages
integer
Total number of pages at the current size.
has_more
boolean
true if additional pages exist after the current one.

Example — list all active templates

curl "https://api.topo.io/v1/sequence-templates?status=ACTIVE&sort_by=name&sort_order=asc" \
  -H "Authorization: Bearer topo_xxxxxxxxxxxx"
{
  "items": [
    {
      "id": "018d7e6f-5c4b-7a39-8281-c0d1e2f3a4b5",
      "name": "Cold Outreach — VP Sales, SaaS",
      "summary": "7-step sequence targeting VP Sales at B2B SaaS companies with 50–500 employees.",
      "status": "ACTIVE",
      "step_count": 7,
      "language": "en",
      "timezone": "America/New_York",
      "activated_at": "2025-01-08T10:30:00Z",
      "created_at": "2025-01-07T14:22:00Z",
      "updated_at": "2025-02-14T09:45:00Z"
    },
    {
      "id": "019c3d4e-5f6a-7b81-9283-c4d5e6f7a8b9",
      "name": "Inbound Follow-Up — Trial Signups",
      "summary": "3-step warm follow-up for contacts who signed up for a trial but haven't booked a demo.",
      "status": "ACTIVE",
      "step_count": 3,
      "language": "en",
      "timezone": "Europe/London",
      "activated_at": "2025-02-01T08:00:00Z",
      "created_at": "2025-01-31T17:10:00Z",
      "updated_at": "2025-02-01T08:00:00Z"
    }
  ],
  "total_count": 2,
  "total_pages": 1,
  "has_more": false
}

Get a sequence template

Requires scope: sequences:read
Fetches a single sequence template by its ID.
GET /v1/sequence-templates/{id}

Path parameters

id
string (UUID)
required
The ID of the sequence template to retrieve.

Example

curl "https://api.topo.io/v1/sequence-templates/018d7e6f-5c4b-7a39-8281-c0d1e2f3a4b5" \
  -H "Authorization: Bearer topo_xxxxxxxxxxxx"
{
  "id": "018d7e6f-5c4b-7a39-8281-c0d1e2f3a4b5",
  "name": "Cold Outreach — VP Sales, SaaS",
  "summary": "7-step sequence targeting VP Sales at B2B SaaS companies with 50–500 employees.",
  "status": "ACTIVE",
  "step_count": 7,
  "language": "en",
  "timezone": "America/New_York",
  "activated_at": "2025-01-08T10:30:00Z",
  "created_at": "2025-01-07T14:22:00Z",
  "updated_at": "2025-02-14T09:45:00Z"
}