Reference · 5 operations
Sequences
Outreach sequences, their enrollments and reply reports.
Last updated from API version 2026-10-06 at (live spec, refreshed hourly). openapi.json
Sequences
List outreach sequences, newest first.
/api/v1/sequences- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
Cursor-paginated (meta.page). stats are the sequence's stored
counters; GET /sequences/{id} returns live counts. v0 (legacy) keys
keep the v0 contract on this path (data: {total, items}, max 200).
Parameters
- limitqueryinteger
Page size.
default 50min 1max 200 - cursorquerystring
Opaque cursor from
meta.page.nextCursor. Reusing it with other filters is400 CURSOR_MISMATCH. - sortByquerystring
Reserved. The sort is fixed (newest first); any value is
400 UNSUPPORTED_FILTER. - updatedSincequerystring
Reserved; any value is
400 UNSUPPORTED_FILTER.
Responses
200A page of sequences.Show schema
SequenceListResponse
- 0
- 0
Metadata on a paginated success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/sequences" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Get one sequence with its steps, assigned identity and live counts.
/api/v1/sequences/{id}- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
steps is a summary (type, delay, AI on or off); templates and prompts
are not returned. counts come from the enrollment aggregate. A
sequence in another workspace is 404 NOT_FOUND.
Parameters
- idpathstringrequired
Opaque resource id.
Responses
200The sequence.Show schema
SequenceResponse
- 0
One sequence with its steps, assigned identity and live counts.
- 0
Metadata on every success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 404 Unknown resource or route. A resource in another workspace is also 404 · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/sequences/$ID" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Enrollments
List a sequence's enrollments, newest first.
/api/v1/sequences/{id}/enrollments- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
Cursor-paginated. status filters the sequence's enrollments, so a page
may be shorter than limit: meta.page.hasMore is the only end
signal. A sequence in another workspace is 404 NOT_FOUND.
Parameters
- idpathstringrequired
Opaque resource id.
- limitqueryinteger
Page size.
default 50min 1max 200 - cursorquerystring
Opaque cursor from
meta.page.nextCursor. Reusing it with other filters is400 CURSOR_MISMATCH. - statusquerystringactivepausedcompletedbouncedrepliedunsubscribedwaiting_for_conditionfailed
Responses
200A page of enrollments.Show schema
EnrollmentListResponse
- 0
- 0
Metadata on a paginated success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 404 Unknown resource or route. A resource in another workspace is also 404 · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/sequences/$ID/enrollments" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Analytics
Get a sequence's enrollment funnel and lifecycle counts.
/api/v1/sequences/{id}/analytics- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
Same content as the v0 endpoint, in the v1 envelope. A sequence in
another workspace is 404 NOT_FOUND.
Parameters
- idpathstringrequired
Opaque resource id.
Responses
200The sequence's analytics.Show schema
SequenceAnalyticsResponse
- 0
- 0
Metadata on every success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 404 Unknown resource or route. A resource in another workspace is also 404 · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/sequences/$ID/analytics" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Replies
Report a sequence's campaign-attributable replies over a date range.
/api/v1/sequences/{id}/replies- Scope
- read
- Credits
- Free
- Idempotency-Key
- Not used
The v0 date-range report, kept as v0 defines it: same start,
end and channel params and the same body, in the v1 envelope. Not
paginated (at most 2,000 reply rows are read). Defaults to the last 30
days; ranges over 90 days are 400. A sequence in another workspace
is 404 NOT_FOUND.
Parameters
- idpathstringrequired
Opaque resource id.
- startquerystring
Start of the range, ISO date (
YYYY-MM-DD, UTC start of day) or unix ms. Defaultendminus 30 days. - endquerystring
End of the range, ISO date (
YYYY-MM-DD, UTC end of day) or unix ms. Default now. - channelquerystringemaillinkedinwhatsapp
Responses
200The report.Show schema
SequenceRepliesReportResponse
- 0
Same body as the v0 report (
dateRange,replies,actions,identities,enrollments). - 0
Metadata on every success response.
Errors
400 The request is invalid (VALIDATION_ERROR, CURSOR_MISMATCH, UNSUPPORTED_FILTER) · 401 Missing, invalid, expired or revoked key · 403 Missing scope, suspended workspace or unavailable identity · 404 Unknown resource or route. A resource in another workspace is also 404 · 429 Rate limit reached · 500 Unexpected error · 503 The backend is unreachable; retry after `Retry-After`. Every error is {error: {type, code, message, requestId, docUrl}}; see error codes.
curl "https://app.owlbound.ai/api/v1/sequences/$ID/replies" \
-H "Authorization: Bearer $OWLBOUND_API_KEY" \
-H "Owlbound-Version: 2026-10-06"Models on this page
Shared objects the operations above link to. Clients must ignore fields they do not know.
SequenceSummaryobject
A sequence as listed.
- idstringrequired0
- namestringrequired0
- descriptionstring | nullrequired0
- statusstringrequiredactiveinactive
- isActivebooleanrequired0
- channelstringrequired0
linkedin,emailormulti-channel. - stepsCountintegerrequired0
- assignedIdentityIdstring | nullrequired0
The identity whose accounts send this sequence's steps.
- 0
Stored counters on the sequence.
- completedAtnumber | nullrequired0
- createdAtnumberrequired0
- updatedAtnumberrequired0
SequenceStatsobject
Stored counters on the sequence.
- totalEnrollednumberrequired0
- activenumberrequired0
- completednumberrequired0
- repliednumberrequired0
- bouncednumberrequired0
- failednumberrequired0
- unsubscribednumberrequired0
PagedResponseMetaobject
Metadata on a paginated success response.
- requestIdstringrequired0
- 0
- 0
Cursor pagination.
hasMoreis the only end signal; pages may be short.
CreditsMetaobject
- usednumberrequired0
Credits charged by this request. Reads are free.
- balancenumber0
- estimatednumber0
Dry run only (action operations).
- availablenumber0
Dry run only (action operations).
- reservationIdstring | null0
Async operations only; the job settles this reservation.
PageMetaobject
Cursor pagination. hasMore is the only end signal; pages may be short.
- nextCursorstring | nullrequired0
- hasMorebooleanrequired0
- limitintegerrequiredmin 1max 200
Sequenceobject
One sequence with its steps, assigned identity and live counts.
- idstringrequired0
- namestringrequired0
- descriptionstring | nullrequired0
- statusstringrequiredactiveinactive
- isActivebooleanrequired0
- channelstringrequired0
- stepsCountintegerrequired0
- assignedIdentityIdstring | nullrequired0
- 0
Stored counters on the sequence.
- completedAtnumber | nullrequired0
- createdAtnumberrequired0
- updatedAtnumberrequired0
- triggerOnstringrequired0
- 0
- 0
- 0
Live enrollment counts by status (enrollment aggregate).
SequenceStepobject
A step summary; templates and prompts are not returned.
- stepNumberintegerrequired0
- typestringrequired0
Step type, e.g.
connection_request,message,email,wait. - delaynumberrequired0
- useAIbooleanrequired0
IdentityRefobject
- idstringrequired0
- memberNamestringrequired0
EnrollmentCountsobject
Live enrollment counts by status (enrollment aggregate).
- totalEnrolledintegerrequired0
- activeintegerrequired0
- completedintegerrequired0
- repliedintegerrequired0
- bouncedintegerrequired0
- failedintegerrequired0
- unsubscribedintegerrequired0
- pausedintegerrequired0
- waitingForConditionintegerrequired0
ResponseMetaobject
Metadata on every success response.
- requestIdstringrequired0
- 0
- pagePageMeta0
Cursor pagination.
hasMoreis the only end signal; pages may be short. - dryRunboolean0
True only on a dry-run response (action operations).
Enrollmentobject
A contact's enrollment in a sequence. Step execution details are not returned.
- idstringrequired0
- sequenceIdstringrequired0
- contactIdstring | nullrequired0
- statusstringrequiredactivepausedcompletedbouncedrepliedunsubscribedwaiting_for_conditionfailed
- currentStepintegerrequired0
- stepsExecutedintegerrequired0
- nextStepAtnumber | nullrequired0
- executingIdentityIdstring | nullrequired0
- enrollmentSourcestring | nullrequired0
- repliedbooleanrequired0
- repliedAtnumber | nullrequired0
- completedAtnumber | nullrequired0
- failedAtnumber | nullrequired0
- enrolledAtnumberrequired0
- updatedAtnumber | nullrequired0
SequenceAnalyticsobject
- sequenceobjectrequired0
+ Show child fields− Hide child fields
- idstringrequired0
- namestringrequired0
- statusstringrequiredactiveinactive
- channelstringrequired0
- stepsCountintegerrequired0
- 0
Live enrollment counts by status (enrollment aggregate).
- stepFunnelobjectrequired0
+ Show child fields− Hide child fields
- 0
- 0
StepFunnelCountsobject
- stepinteger0
- activeintegerrequired0
- completedintegerrequired0
- repliedintegerrequired0
- failedintegerrequired0
- pausedinteger0
SequenceRepliesReportobject
Same body as the v0 report (dateRange, replies, actions, identities, enrollments).
- dateRangeobjectrequired0
+ Show child fields− Hide child fields
- startnumberrequired0
- endnumberrequired0
- repliesobjectrequired0
+ Show child fields− Hide child fields
- totalintegerrequired0
- bySequencearray of objectrequired0
+ Show child fields− Hide child fields
- sequenceIdstringrequired0
- sequenceNamestringrequired0
- countintegerrequired0
- byChannelobjectrequired0
+ Show child fields− Hide child fields
- emailintegerrequired0
- linkedinintegerrequired0
- 0
- byIntentobjectrequired0
- 0
- actionsobjectrequired0
Best effort, sampled from the most recent enrollments (
cappedwhen the sample limit was hit).+ Show child fields− Hide child fields
- totalintegerrequired0
- succeededintegerrequired0
- failedintegerrequired0
- successRatenumberrequired0
- byTypeobjectrequired0
- cappedbooleanrequired0
- enrollmentsSampledintegerrequired0
- identitiesobjectrequired0
+ Show child fields− Hide child fields
- countintegerrequired0
- itemsarray of objectrequired0
+ Show child fields− Hide child fields
- idstringrequired0
- namestringrequired0
- repliesCountintegerrequired0
- actionsCountintegerrequired0
- enrollmentsobjectrequired0
+ Show child fields− Hide child fields
- totalintegerrequired0
- executedintegerrequired0
ReplyChannelCountsobject
- emailintegerrequired0
- linkedinintegerrequired0
- whatsappintegerrequired0
RepliesReportItemobject
One campaign-attributable reply. Absent optional fields mean unknown.
- replyAtnumberrequired0
- channelstringrequiredemaillinkedinwhatsapp
- attributionStatusstringrequired0
- intentstring0
- sentimentstring0
- contactobject | nullrequired0
+ Show child fields− Hide child fields
- idstringrequired0
- namestringrequired0
- titlestring0
- companystring0
- scorenumber0
- icpNamestring0
- replyobjectrequired0
+ Show child fields− Hide child fields
- messageIdstringrequired0
- textstring0
- subjectstring0
- outboundobjectrequired0
+ Show child fields− Hide child fields
- messageIdstring0
- textstring0
- subjectstring0
- sentAtnumber0
- sentViaPlatformbooleanrequired0
- sequenceobject | nullrequired0
+ Show child fields− Hide child fields
- idstringrequired0
- namestringrequired0
- stepNumberinteger0
- identityobject | nullrequired0
+ Show child fields− Hide child fields
- idstringrequired0
- namestringrequired0