openapi: 3.1.0
info:
title: Nooks Sequencing API
version: 0.1.0
description: |
The Nooks Sequencing API provides programmatic access to manage sequences, tasks, templates, and prospect engagement workflows created using the Nooks SEP.
## Authentication
Send a bearer token in the `Authorization` header:
```
Authorization: Bearer <token>
```
Two token types are accepted on the same header — the API detects which
format you sent and validates accordingly. If you already have a token,
paste it into the Authentication panel and skip the flow setup.
### API keys
Long-lived, workspace-scoped. Best for backend integrations and
server-to-server automation. Generate one from **Developer Settings →
API Keys** in your Nooks workspace. API keys are prefixed `nooks-api-`
and have full read/write access within the owning workspace.
### OAuth 2.0 access tokens
Short-lived (1 hour), user-scoped, scope-limited JWTs issued by
`https://oauth.nooks.in` via the standard authorization-code + PKCE flow.
Best for third-party apps acting on behalf of a specific user — the token
carries that user's identity and a subset of scopes the user consented
to. Refresh tokens rotate every 90 days and are invalidated on first
re-use (refresh-token reuse detection).
**Endpoints:**
- Authorize: `https://oauth.nooks.in/oauth/authorize`
- Token: `https://oauth.nooks.in/oauth/token`
- JWKS: `https://oauth.nooks.in/.well-known/jwks.json`
- Server metadata (RFC 8414): `https://oauth.nooks.in/.well-known/oauth-authorization-server`
**Available scopes:**
| Scope | Grants |
| --- | --- |
| `prospects:read` | View your prospects |
| `prospects:write` | Create and update prospects |
| `sequences:read` | View your sequences |
| `sequences:write` | Create and update sequences |
| `sequence-steps:read` | View sequence steps |
| `sequence-states:read` | View sequence enrollments |
| `sequence-states:write` | Enroll prospects and manage enrollments |
| `tasks:read` | View your tasks |
| `tasks:write` | Create, update, complete, skip, and delete tasks |
| `calls:read` | View your calls |
| `calls:write` | Create and update calls |
| `call-dispositions:read` | View call dispositions |
| `emails:read` | View your emails |
| `emails:write` | Create and update emails |
| `mailboxes:read` | View connected mailboxes |
| `users:read` | View users in your workspace |
| `accounts:read` | View accounts (companies) in your workspace |
| `notes:write` | Create notes on CRM-backed prospects and accounts |
| `opportunities:read` | View opportunities (deals) in your workspace |
| `search:read` | Search across your prospects, accounts, and other records |
## Rate Limiting
API requests are rate limited per workspace and per endpoint in a fixed
one-minute window. Separate endpoint buckets do not share quota, except
routes without an explicit limit use the shared default bucket.
Every response includes these headers:
- `X-RateLimit-Limit` -- maximum requests allowed in the current per-minute window
- `X-RateLimit-Remaining` -- requests remaining in the current window
- `X-RateLimit-Reset` -- seconds until the current window resets
When the limit is exceeded the API returns `429 Too Many Requests` with a
`Retry-After` header indicating how many seconds to wait before retrying.
**Current limits:**
| Endpoint class | Methods | Limit |
| --- | --- | --- |
| List reads: `/sequences`, `/emails`, `/users`, `/sequenceStates`, `/prospects`, `/mailboxes`, `/calls`, `/sequenceSteps`, `/callDispositions`, `/tasks`, `/accounts` | `GET` | 300 requests/minute per endpoint |
| Read by ID: `/sequences/{id}`, `/emails/{id}`, `/users/{id}`, `/sequenceStates/{id}`, `/prospects/{id}`, `/mailboxes/{id}`, `/calls/{id}`, `/sequenceSteps/{id}`, `/callDispositions/{id}`, `/tasks/{id}`, `/accounts/{id}`, `/emailTemplate/{id}` | `GET` | 600 requests/minute per endpoint |
| Sequence writes: `/sequences`, `/sequences/{id}` | `POST`, `PATCH` | 120 requests/minute per endpoint |
| Sequence state writes: `/sequenceStates`, `/sequenceStates/{id}`, `/sequenceStates/{id}/actions/finish` | `POST`, `DELETE` | 120 requests/minute per endpoint |
| Task writes: `/tasks`, `/tasks/{id}`, `/tasks/{id}/complete`, `/tasks/{id}/skip` | `POST`, `PATCH`, `DELETE` | 120 requests/minute per endpoint |
| CRM note writes: `/prospects/{id}/notes`, `/accounts/{id}/notes` | `POST` | 30 requests/minute per endpoint |
| `/integrations/prospects/sync` | `POST` | 10 requests/minute |
| Any other endpoint | Any | 30 requests/minute, shared default bucket |
## Pagination
List endpoints support cursor-based pagination using the `page[size]` and `page[after]`/`page[before]` query parameters.
- Maximum page size: 100
- Default page size: 50
## Include (Inline Expansion)
Most GET endpoints support an `include` query parameter that expands related `ReferenceObject` fields inline,
eliminating the need for follow-up API calls.
**Format:** `?include=field1,field2` (comma-separated field names)
**Without include:**
```json
GET /v1/prospects/123
{
"id": "123",
"sequenceStates": [
{ "id": "ss-1", "_href": "/v1/sequenceStates/ss-1" }
]
}
```
**With `include=sequenceStates`:**
```json
GET /v1/prospects/123?include=sequenceStates
{
"id": "123",
"sequenceStates": [
{
"id": "ss-1",
"_href": "/v1/sequenceStates/ss-1",
"state": "active",
"sequence": { "id": "seq-1", "_href": "/v1/sequences/seq-1" },
"prospect": { "id": "123", "_href": "/v1/prospects/123" },
"creator": { "id": "u-1", "_href": "/v1/users/u-1" },
"sequenceStep": null,
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
]
}
```
The expanded object is a superset of `ReferenceObject` — it keeps `id` and `_href` and adds all DTO fields.
The response shape is unchanged; the field just contains richer data.
**Hard constraints (enforced with 400 errors):**
- **Max 3 includes per request.** Requesting more than 3 comma-separated values returns `400: "include accepts at most 3 values"`.
- **GET endpoints only.** POST, PATCH, and DELETE endpoints do not accept `include`.
- **No nested includes.** Only top-level field names are valid (e.g., `sequenceStates`). Dot-notation like `sequenceStates.prospect` returns 400.
- **`account` on Prospect is not includable.** Requesting `include=account` returns 400.
Each endpoint's `include` parameter lists the valid field names for that resource.
contact:
name: Nooks API Support
email: support@nooks.in
url: https://www.nooks.in
license:
name: Proprietary
x-logo:
url: ./nooks-logo.svg
altText: Nooks Logo
href: https://www.nooks.ai
servers:
- url: https://partner-api.nooks.in/v1
description: Production API
tags:
- name: Sequences
description: Manage sales sequences
- name: Emails
description: Access email records
- name: Users
description: Manage workspace users
- name: SequenceStates
description: Track prospect enrollments in sequences
- name: Prospects
description: Manage prospects
- name: Accounts
description: Access account (company) records
- name: Notes
description: Create CRM notes on prospects and accounts
- name: Mailboxes
description: Manage mailboxes (email aliases)
- name: SequenceSteps
description: Access sequence step definitions
- name: Calls
description: Access call records
- name: CallDispositions
description: Access call disposition definitions
- name: Tasks
description: Manage tasks (one-off calls and email activities)
- name: EmailTemplates
description: Access email template content
- name: Introspection
description: Inspect the authenticated principal
x-tagGroups:
- name: API Reference
tags:
- Sequences
- SequenceSteps
- Emails
- Users
- SequenceStates
- Prospects
- Accounts
- Notes
- Mailboxes
- Calls
- CallDispositions
- Tasks
- EmailTemplates
- Introspection
paths:
/sequences:
get:
operationId: listSequences
summary: List sequences
description: |
Returns a paginated list of sequences.
Example:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequences?filter[name]=Q1+Outbound+Campaign' \
-H "Authorization: Bearer nooks-api-..."
```
With include:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequences?include=owner,sequenceSteps' \
-H "Authorization: Bearer nooks-api-..."
```
tags:
- Sequences
parameters:
- $ref: "#/components/parameters/PageSize"
- $ref: "#/components/parameters/PageAfter"
- $ref: "#/components/parameters/PageBefore"
- name: filter[name]
in: query
description: Filter sequences by exact name match
required: false
schema:
type: string
example: "Q1 Outbound Campaign"
- name: filter[type]
in: query
description: "Filter by sequence type. Valid values: date, interval"
required: false
schema:
type: string
enum:
- date
- interval
example: "interval"
- name: include
in: query
description: "Comma-separated relations to expand inline (`owner`, `sequenceSteps`) or computed fields to include (`analytics`). Max 3."
required: false
schema:
type: array
items:
type: string
enum: [owner, sequenceSteps, analytics]
maxItems: 3
style: form
explode: false
example: [owner, sequenceSteps]
- $ref: "#/components/parameters/FilterUpdatedAtGte"
- $ref: "#/components/parameters/FilterUpdatedAtLt"
responses:
"200":
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Sequence"
links:
$ref: "#/components/schemas/PaginationLinks"
example:
data:
- id: "550e8400-e29b-41d4-a716-446655440000"
name: "Q1 Outbound Campaign"
type: "interval"
enabled: true
owner:
id: "660e8400-e29b-41d4-a716-446655440001"
_href: "/v1/users/660e8400-e29b-41d4-a716-446655440001"
sequenceSteps:
- id: "aa0e8400-e29b-41d4-a716-446655440030"
_href: "/v1/sequenceSteps/aa0e8400-e29b-41d4-a716-446655440030"
- id: "aa0e8400-e29b-41d4-a716-446655440031"
_href: "/v1/sequenceSteps/aa0e8400-e29b-41d4-a716-446655440031"
privacy: "team_editable"
createdAt: "2026-01-12T09:30:00Z"
updatedAt: "2026-01-15T09:30:00Z"
- id: "660e8400-e29b-41d4-a716-446655440002"
name: "Q2 Follow-up Sequence"
type: "date"
enabled: false
owner:
id: "660e8400-e29b-41d4-a716-446655440001"
_href: "/v1/users/660e8400-e29b-41d4-a716-446655440001"
sequenceSteps: []
privacy: "private"
createdAt: "2026-01-08T14:00:00Z"
updatedAt: "2026-01-10T14:00:00Z"
links:
first: "https://partner-api.nooks.in/v1/sequences?page[size]=50"
prev: null
next: "https://partner-api.nooks.in/v1/sequences?page[size]=50&page[after]=eyJpZCI6IjY2MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMiIsInYiOjF9"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"500":
$ref: "#/components/responses/InternalError"
post:
operationId: createSequence
summary: Create a sequence
description: |
Creates a new, empty sequence owned by the given user. Steps are
added and edited in the Nooks app — this endpoint creates the
sequence container (name, type, owner, privacy).
OAuth callers with the `user` role can only create sequences owned
by themselves; `admin` and `manager` roles can create sequences for
any user in the workspace. When that check fails (or `owner.id` is
not a workspace member), OAuth callers receive `403
INSUFFICIENT_PERMISSION`; API-key callers receive `422` for an
unknown owner. To enroll prospects into the new sequence, use
`POST /v1/sequenceStates`.
Example:
```bash
curl -X POST 'https://partner-api.nooks.in/v1/sequences' \
-H "Authorization: Bearer nooks-api-..." \
-H "Content-Type: application/json" \
-d '{
"data": {
"name": "Q3 Outbound Campaign",
"owner": { "id": "KKLvN5wQoghWFwUvC75CZ12QM7I3" }
}
}'
```
tags:
- Sequences
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Request body for creating a sequence
additionalProperties: false
properties:
data:
type: object
additionalProperties: false
properties:
name:
type: string
minLength: 1
description: Name of the sequence
example: "Q3 Outbound Campaign"
type:
type: string
enum:
- interval
- date
default: "interval"
description: |
Scheduling model for the sequence. `interval` steps are
spaced relative to the previous step; `date` steps run
on fixed dates.
example: "interval"
owner:
type: object
description: The user who will own the sequence
additionalProperties: false
properties:
id:
type: string
minLength: 1
maxLength: 128
pattern: "^[A-Za-z0-9_-]{1,128}$"
description: ID of the owner user (Firebase UID)
example: "KKLvN5wQoghWFwUvC75CZ12QM7I3"
required:
- id
enabled:
type: boolean
default: true
description: Whether the sequence is active (`false` = archived)
example: true
privacy:
type: string
enum:
- private
- team_visible
- team_editable
default: "team_editable"
description: Privacy level of the sequence
example: "team_editable"
required:
- name
- owner
required:
- data
responses:
"201":
description: Sequence created
content:
application/json:
schema:
$ref: "#/components/schemas/Sequence"
example:
id: "550e8400-e29b-41d4-a716-446655440000"
name: "Q3 Outbound Campaign"
type: "interval"
enabled: true
owner:
id: "KKLvN5wQoghWFwUvC75CZ12QM7I3"
_href: "/v1/users/KKLvN5wQoghWFwUvC75CZ12QM7I3"
sequenceSteps: []
privacy: "team_editable"
createdAt: "2026-01-12T09:30:00Z"
updatedAt: "2026-01-15T09:30:00Z"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
description: |
Forbidden — the OAuth token lacks the `sequences:write` scope
(`INSUFFICIENT_SCOPE`), or the caller's role does not permit
acting on this sequence or owner (`INSUFFICIENT_PERMISSION`).
API-key callers are not subject to this check.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
example:
error:
code: "INSUFFICIENT_PERMISSION"
message: "You do not have permission to perform this action"
"422":
description: |
Unprocessable entity — `owner.id` is not a user in this workspace
(use an id from `GET /v1/users`). Only returned to API-key
callers; OAuth callers instead receive `403
INSUFFICIENT_PERMISSION` for an unknown owner (see above).
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
example:
error:
code: "UNPROCESSABLE_ENTITY"
message: "Owner user KKLvN5wQoghWFwUvC75CZ12QM7I3 not found in this workspace. Use a user id from GET /v1/users."
"429":
$ref: "#/components/responses/RateLimitExceeded"
"500":
$ref: "#/components/responses/InternalError"
/sequences/{id}:
get:
operationId: getSequence
summary: Get sequence by ID
description: |
Returns a single sequence by its unique identifier.
Example:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequences/550e8400-e29b-41d4-a716-446655440000' \
-H "Authorization: Bearer nooks-api-..."
```
With include:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequences/550e8400-e29b-41d4-a716-446655440000?include=owner' \
-H "Authorization: Bearer nooks-api-..."
```
tags:
- Sequences
parameters:
- name: id
in: path
required: true
description: Unique identifier for the sequence
schema:
type: string
format: uuid
example: "550e8400-e29b-41d4-a716-446655440000"
- name: include
in: query
description: "Comma-separated relations to expand inline (`owner`, `sequenceSteps`) or computed fields to include (`analytics`). Max 3."
required: false
schema:
type: array
items:
type: string
enum: [owner, sequenceSteps, analytics]
maxItems: 3
style: form
explode: false
example: [analytics]
responses:
"200":
description: Successful response
content:
application/json:
schema:
$ref: "#/components/schemas/Sequence"
example:
id: "550e8400-e29b-41d4-a716-446655440000"
name: "Q1 Outbound Campaign"
type: "interval"
enabled: true
owner:
id: "660e8400-e29b-41d4-a716-446655440001"
_href: "/v1/users/660e8400-e29b-41d4-a716-446655440001"
sequenceSteps:
- id: "aa0e8400-e29b-41d4-a716-446655440030"
_href: "/v1/sequenceSteps/aa0e8400-e29b-41d4-a716-446655440030"
- id: "aa0e8400-e29b-41d4-a716-446655440031"
_href: "/v1/sequenceSteps/aa0e8400-e29b-41d4-a716-446655440031"
privacy: "team_editable"
analytics:
email:
delivered: 412
opened: 198
clicked: 41
replied: 23
bounced: 7
unsubscribed: 2
calls:
dialed: 380
connected: 71
meetings: 5
linkedIn: null
createdAt: "2026-01-12T09:30:00Z"
updatedAt: "2026-01-15T09:30:00Z"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"404":
$ref: "#/components/responses/NotFound"
"500":
$ref: "#/components/responses/InternalError"
patch:
operationId: updateSequence
summary: Update a sequence
description: |
Updates a sequence's name and/or `enabled` flag. Setting `enabled`
to `false` archives the sequence; `true` reactivates it. At least
one field must be provided.
OAuth callers with the `user` role can only update sequences they
own (`403 INSUFFICIENT_PERMISSION` otherwise); `admin` and `manager`
roles can update any sequence in the workspace.
Example:
```bash
curl -X PATCH 'https://partner-api.nooks.in/v1/sequences/550e8400-e29b-41d4-a716-446655440000' \
-H "Authorization: Bearer nooks-api-..." \
-H "Content-Type: application/json" \
-d '{ "data": { "name": "Q3 Outbound Campaign (paused)", "enabled": false } }'
```
tags:
- Sequences
parameters:
- name: id
in: path
required: true
description: Unique identifier for the sequence
schema:
type: string
format: uuid
example: "550e8400-e29b-41d4-a716-446655440000"
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Request body for updating a sequence
additionalProperties: false
properties:
data:
type: object
minProperties: 1
additionalProperties: false
description: At least one of `name` or `enabled` is required.
properties:
name:
type: string
minLength: 1
description: New name for the sequence
example: "Q3 Outbound Campaign (paused)"
enabled:
type: boolean
description: Whether the sequence is active (`false` = archived)
example: false
required:
- data
responses:
"200":
description: Sequence updated
content:
application/json:
schema:
$ref: "#/components/schemas/Sequence"
example:
id: "550e8400-e29b-41d4-a716-446655440000"
name: "Q3 Outbound Campaign (paused)"
type: "interval"
enabled: false
owner:
id: "660e8400-e29b-41d4-a716-446655440001"
_href: "/v1/users/660e8400-e29b-41d4-a716-446655440001"
sequenceSteps:
- id: "aa0e8400-e29b-41d4-a716-446655440030"
_href: "/v1/sequenceSteps/aa0e8400-e29b-41d4-a716-446655440030"
privacy: "team_editable"
createdAt: "2026-01-12T09:30:00Z"
updatedAt: "2026-01-15T09:30:00Z"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"403":
description: |
Forbidden — the OAuth token lacks the `sequences:write` scope
(`INSUFFICIENT_SCOPE`), or the caller's role does not permit
acting on this sequence or owner (`INSUFFICIENT_PERMISSION`).
API-key callers are not subject to this check.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
example:
error:
code: "INSUFFICIENT_PERMISSION"
message: "You do not have permission to perform this action"
"404":
$ref: "#/components/responses/NotFound"
"422":
$ref: "#/components/responses/UnprocessableEntity"
"429":
$ref: "#/components/responses/RateLimitExceeded"
"500":
$ref: "#/components/responses/InternalError"
/sequenceSteps:
get:
operationId: listSequenceSteps
summary: List sequence steps
description: |
Returns a paginated list of sequence steps. Supports filtering by step IDs or by sequence.
Example:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequenceSteps?page[size]=50' \
-H "Authorization: Bearer nooks-api-..."
```
Filter by sequence:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequenceSteps?filter[sequence][id]=550e8400-e29b-41d4-a716-446655440000' \
-H "Authorization: Bearer nooks-api-..."
```
Filter by IDs:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequenceSteps?filter[id]=UUID1,UUID2' \
-H "Authorization: Bearer nooks-api-..."
```
tags:
- SequenceSteps
parameters:
- $ref: "#/components/parameters/PageSize"
- $ref: "#/components/parameters/PageAfter"
- $ref: "#/components/parameters/PageBefore"
- $ref: "#/components/parameters/FilterId"
- name: filter[sequence][id]
in: query
description: Filter steps belonging to a specific sequence
required: false
schema:
type: string
format: uuid
example: "550e8400-e29b-41d4-a716-446655440000"
- name: include
in: query
description: "Comma-separated relations to expand inline (`sequence`, `template`) or computed fields to include (`analytics`). Max 3."
required: false
schema:
type: array
items:
type: string
enum: [sequence, template, analytics]
maxItems: 3
style: form
explode: false
example: [analytics]
- $ref: "#/components/parameters/FilterUpdatedAtGte"
- $ref: "#/components/parameters/FilterUpdatedAtLt"
responses:
"200":
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/SequenceStep"
links:
$ref: "#/components/schemas/PaginationLinks"
example:
data:
- id: "aa0e8400-e29b-41d4-a716-446655440030"
order: 0
interval: null
action: "auto_email"
note: "Initial outreach email"
sequence:
id: "550e8400-e29b-41d4-a716-446655440000"
_href: "/v1/sequences/550e8400-e29b-41d4-a716-446655440000"
template:
id: "ee0e8400-e29b-41d4-a716-446655440080"
_href: "/v1/emailTemplate/ee0e8400-e29b-41d4-a716-446655440080"
hasAbVariants: true
createdAt: "2025-10-01T10:00:00.000Z"
updatedAt: "2025-10-01T10:00:00.000Z"
- id: "aa0e8400-e29b-41d4-a716-446655440031"
order: 1
interval: 4320
action: "call"
note: null
sequence:
id: "550e8400-e29b-41d4-a716-446655440000"
_href: "/v1/sequences/550e8400-e29b-41d4-a716-446655440000"
template: null
hasAbVariants: false
createdAt: "2025-10-01T10:00:00.000Z"
updatedAt: "2025-10-01T10:00:00.000Z"
links:
first: "https://partner-api.nooks.in/v1/sequenceSteps?page[size]=50"
prev: null
next: "https://partner-api.nooks.in/v1/sequenceSteps?page[size]=50&page[after]=eyJpZCI6ImFhMGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAzMSIsInYiOjF9"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"500":
$ref: "#/components/responses/InternalError"
/sequenceSteps/{id}:
get:
operationId: getSequenceStep
summary: Get sequence step by ID
description: |
Returns a single sequence step by its unique identifier.
Example:
```bash
curl -X GET 'https://partner-api.nooks.in/v1/sequenceSteps/aa0e8400-e29b-41d4-a716-446655440030' \
-H "Authorization: Bearer nooks-api-..."
```
tags:
- SequenceSteps
parameters:
- name: id
in: path
required: true
description: Unique identifier for the sequence step
schema:
type: string
format: uuid
example: "aa0e8400-e29b-41d4-a716-446655440030"
- name: include
in: query
description: "Comma-separated relations to expand inline (`sequence`, `template`) or computed fields to include (`analytics`). Max 3."
required: false
schema:
type: array
items:
type: string
enum: [sequence, template, analytics]
maxItems: 3
style: form
explode: false
example: [analytics]
responses:
"200":
description: Successful response
content:
application/json:
schema:
$ref: "#/components/schemas/SequenceStep"
example:
id: "aa0e8400-e29b-41d4-a716-446655440030"
order: 0
interval: null
action: "auto_email"
note: "Initial outreach email"
sequence:
id: "550e8400-e29b-41d4-a716-446655440000"
_href: "/v1/sequences/550e8400-e29b-41d4-a716-446655440000"
template:
id: "ee0e8400-e29b-41d4-a716-446655440080"
_href: "/v1/emailTemplate/ee0e8400-e29b-41d4-a716-446655440080"
hasAbVariants: true
analytics:
email:
delivered: 412
opened: 198
clicked: 41
replied: 23
bounced: 7
unsubscribed: 2
calls: null
linkedIn: null
createdAt: "2025-10-01T10:00:00.000Z"
updatedAt: "2025-10-01T10:00:00.000Z"
"400":
$ref: "#/components/responses/BadRequest"
"401":
$ref: "#/components/responses/Unauthorized"
"404":
$ref: "#/components/responses/NotFound"
"500":
$ref: "#/components/responses/InternalError"
/emailTemplate/{id}:
get:
operationId: getEmailTemplate
summary: Get email template by ID
description: |
Returns the full content of a single email template by its unique identifier.
Tem
# --- truncated at 32 KB (204 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nooks/refs/heads/main/openapi/nooks-sequencing-openapi.yml