Nooks Sequencing API

The Nooks Sequencing API API from Nooks — 0 operation(s) for nooks sequencing api.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nooks-nooks-sequencing-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

nooks-nooks-sequencing-api-api-openapi.yml Raw ↑
openapi: 3.2.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.
  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
security:
- BearerAuth: []
tags:
- name: Nooks Sequencing API
paths: {}
webhooks:
  call.logged:
    post:
      summary: Call logged
      operationId: callLoggedWebhook
      description: 'Fires once a call is fully finalized in Nooks (status, disposition,

        recording, transcript, and notes resolved). Delivered as an HTTP `POST`

        to every webhook URL configured for the workspace.


        **Scope:** fires for *every* call logged in the workspace — inbound

        and outbound, dialer calls, manually logged calls, and calls placed

        from a Nooks sequence.


        Configure endpoints in **Integrations → Webhooks** in your Nooks

        workspace. On save Nooks performs a verification ping and returns a

        signing key once — store it securely. For full setup and reference

        verification code in Node/Python/Ruby, see the

        Nooks Webhooks Integration Guide.


        ### Headers


        Each delivery includes:


        | Header | Description |

        | --- | --- |

        | `Content-Type` | `application/json` |

        | `x-webhook-signature` | `t=,s=` — see verification steps below |


        ### Signature verification


        The signature is computed as:


        ```

        s = base64(HMAC-SHA256(signingKey, timestamp + "." + raw_body))

        ```


        Steps to verify on your endpoint:


        1. Parse the `x-webhook-signature` header to extract `t` and `s`.

        2. Rebuild the signed string `timestamp + "." + raw_body` using the

        **unparsed** request body (do not re-serialize the JSON).

        3. Compute HMAC-SHA256 with your workspace signing key.

        4. Compare against `s` using a timing-safe comparison

        (e.g. `crypto.timingSafeEqual` in Node).

        5. Reject requests where `t` is older than 5 minutes to prevent replay.


        ### Response and retries


        Respond with any `2xx` within 15 seconds. Non-2xx responses or timeouts

        are retried with exponential backoff and jitter, up to 8 attempts over

        ~30 minutes. Process events asynchronously and acknowledge immediately.


        ### Idempotency


        `eventId` is unique per delivery attempt and is intended for logging

        only. Use `callData.callId` as your idempotency key — the same call

        may be delivered more than once due to retries.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: 'Payload delivered to your webhook URL when a call is finalized.

                '
              required:
              - event
              - eventId
              - occurredAt
              - callData
              properties:
                event:
                  type: string
                  enum:
                  - call.logged
                  description: Event type. Always `call.logged` for this payload.
                  example: call.logged
                eventId:
                  type: string
                  description: 'Unique per delivery attempt. Use for logging only — not

                    for deduplication. The same call may produce multiple

                    `eventId`s if delivery is retried. Use `callData.callId`

                    as your idempotency key.

                    '
                  example: evt_01HW9X4S5K2M8R0Q1Y3Z6T7V8B
                occurredAt:
                  type: string
                  format: date-time
                  description: ISO 8601 timestamp when the event was finalized in Nooks.
                  example: '2026-05-22T18:14:07.103Z'
                callData:
                  type: object
                  description: Complete call metadata for the finalized call.
                  required:
                  - callId
                  - workspaceId
                  - userData
                  - prospectData
                  - accountData
                  - callDirection
                  - status
                  - disposition
                  - startedAt
                  - durationSeconds
                  properties:
                    callId:
                      type: string
                      description: 'Permanent Nooks call identifier. Use this as your

                        idempotency key when processing webhook events.

                        '
                      example: c-7f3d2a1b-9c4e-4f8a-b1d2-5e6f7a8b9c0d
                    workspaceId:
                      type: string
                      description: Workspace the call belongs to.
                      example: ws-3b2c1a09-8d7e-6f5a-4b3c-2a1b0c9d8e7f
                    userData:
                      type: object
                      description: The Nooks user who placed or received the call.
                      required:
                      - userId
                      - email
                      - name
                      properties:
                        userId:
                          type: string
                          nullable: true
                          example: u-1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
                        email:
                          type: string
                          nullable: true
                          example: rep@example.com
                        name:
                          type: string
                          nullable: true
                          example: Alex Rep
                    prospectData:
                      type: object
                      description: The prospect on the other end of the call.
                      required:
                      - prospectId
                      - name
                      - phoneNumber
                      properties:
                        prospectId:
                          type: string
                          nullable: true
                          example: p-9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
                        name:
                          type: string
                          nullable: true
                          example: Jamie Buyer
                        phoneNumber:
                          type: string
                          nullable: true
                          description: E.164-formatted phone number when available.
                          example: '+14155550199'
                        email:
                          type: string
                          nullable: true
                          example: jamie@prospectco.com
                        linkedInUrl:
                          type: string
                          nullable: true
                          example: https://www.linkedin.com/in/jamie-buyer
                    accountData:
                      type: object
                      description: Account (company) associated with the prospect.
                      required:
                      - accountId
                      - name
                      properties:
                        accountId:
                          type: string
                          nullable: true
                          example: a-2c3d4e5f-6a7b-8c9d-0e1f-2a3b4c5d6e7f
                        name:
                          type: string
                          nullable: true
                          example: Prospect Co
                    callDirection:
                      type: string
                      enum:
                      - inbound
                      - outbound
                      example: outbound
                    status:
                      type: string
                      enum:
                      - completed
                      description: Final call status.
                      example: completed
                    disposition:
                      type: object
                      description: Call outcome / disposition.
                      required:
                      - id
                      - name
                      properties:
                        id:
                          type: string
                          nullable: true
                          example: d-connected-decision-maker
                        name:
                          type: string
                          nullable: true
                          example: Connected — Decision Maker
                    startedAt:
                      type: string
                      format: date-time
                      description: ISO 8601 timestamp when the call started.
                      example: '2026-05-22T18:11:42.000Z'
                    durationSeconds:
                      type: number
                      description: Call length in seconds.
                      example: 142
                    recordingUrl:
                      type: string
                      nullable: true
                      description: Link to the recording, or `null` if unavailable.
                      example: https://recordings.nooks.in/c-7f3d2a1b/audio.mp3
                    notes:
                      type: string
                      nullable: true
                      description: Rep-entered call notes, or `null` if none were captured.
                      example: Decision-maker interested in Q3 pilot. Follow up Tuesday.
                    transcriptUrl:
                      type: string
                      nullable: true
                      description: Link to the transcript page in Nooks, or `null`.
                      example: https://app.nooks.in/transcripts/c-7f3d2a1b
                    sequenceData:
                      type: object
                      description: 'Sequence attribution. Always present on the payload;

                        both inner fields are `null` when the call did not

                        originate from a Nooks sequence task (manually-logged

                        calls, dialer calls, and inbound calls).

                        '
                      required:
                      - sequenceName
                      - sequenceStep
                      properties:
                        sequenceName:
                          type: string
                          nullable: true
                          description: 'Name of the sequence the call was placed from, or

                            `null` if the call wasn''t sequence-attributed.

                            '
                          example: Q1 Outbound Campaign
                        sequenceStep:
                          type: string
                          nullable: true
                          description: 'Label of the sequence step the call was placed

                            from, or `null` if the call wasn''t

                            sequence-attributed.

                            '
                          example: Day 3 — Call
      responses:
        2XX:
          description: 'Any `2xx` response acknowledges receipt. Respond within 15 seconds.

            '
      tags:
      - Nooks Sequencing API
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer token sent in the `Authorization` header. Accepts either a

        long-lived Nooks API key (`nooks-api-...`, from Developer Settings →

        API Keys) or an OAuth 2.0 access token issued by

        `https://oauth.nooks.in`. Use whichever you already have — the API

        validates both formats on the same header. For full OAuth flow

        details (authorize/token endpoints, scopes, refresh behavior) see

        the Authentication section of this spec''s introduction.

        '
x-tagGroups:
- name: API Reference
  tags:
  - Sequences
  - SequenceSteps
  - Emails
  - Users
  - SequenceStates
  - Prospects
  - Accounts
  - Notes
  - Mailboxes
  - Calls
  - CallDispositions
  - Tasks
  - EmailTemplates
  - Introspection