SendPulse Pipelines API

The Pipelines API from SendPulse — 2 operation(s) for pipelines.

Operations 4

POST /pipelines Create new pipeline #
GET /pipelines Get a list of pipelines #
GET /pipelines/{pipelineId} Get information about a pipeline by ID #
PUT /pipelines/{pipelineId} Update information about a pipeline by its ID #

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/sendpulse-pipelines-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 email required.

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

OpenAPI Specification

sendpulse-pipelines-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Using the API for the CRM service, you can integrate your system with CRM from SendPulse and receive detailed information on pipelines, deals, contacts and their attributes and users. You can also create deals and contacts, assign and remove fields, tags, contact details and instant messengers. On the right, there is a button for authorizing requests made on this page. Click “Authorize,” then insert the ID and Secret from your account. To perform a request directly from the page, click the "Try it out" button within each method block. Then fill in input fields if any (for URL parameters, the description is right below the URL request; for body parameters, the description is under the “Scheme” button to the right of the example), and click “Run.” You will find the server response and description of received parameters below.
  title: SendPulse CRM Public Pipelines API
  version: 0.1.0
servers:
- url: https://api.sendpulse.com/crm/v1
security:
- apiKey: []
- oauth2: []
tags:
- description: ''
  name: Pipelines
paths:
  /pipelines:
    post:
      tags:
      - Pipelines
      summary: Create new pipeline
      description: Create new pipeline with specified settings
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: Pipeline name
                settings:
                  type: array
                  items:
                    $ref: '#/components/schemas/Setting'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Pipeline'
      operationId: createPipeline
      x-ai-role: crm_workflow_architect
      x-ai-description: 'Initializes a new CRM pipeline — a structured, stage-based workflow for tracking deals or leads through a defined sales or support process. A pipeline is the backbone of CRM automation: it defines the stages through which contacts or deals progress and governs which automations, notifications, and conditions fire at each transition.'
      x-ai-reasoning-instructions:
      - Before creating, check if a pipeline with a similar name already exists to avoid duplicates.
      - Clarify the intended use case (sales, support, onboarding) to help the user choose appropriate stage settings.
      - Validate that `settings` values conform to the expected schema — incomplete settings may result in a non-functional pipeline.
      - If the user hasn't specified stages or conditions, suggest starting with a minimal viable pipeline and iterating.
      x-ai-responding-instructions:
      - Confirm successful creation by referencing the new pipeline's ID and name.
      - 'Suggest the next logical step: adding stages or assigning contacts/deals to the pipeline.'
      - If settings were omitted, note that default settings were applied and they can be updated later.
      - On failure, explain whether the issue is a naming conflict, invalid settings schema, or permission problem.
      x-ai-suggestions:
      - Sales_Pipeline_B2B
      - Lead_Qualification_Flow
      - Customer_Onboarding_Pipeline
      - Support_Escalation_Track
      x-ai-capabilities:
        confirmation:
          type: None
        security_info:
          data_handling:
          - ResourceStateUpdate
    get:
      tags:
      - Pipelines
      summary: Get a list of pipelines
      description: 'Returns a list of pipelines with information about each: pipeline ID, pipeline creator, created statuses, and pipeline settings'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Pipeline'
      operationId: getPipelines
      x-ai-role: crm_pipeline_analyst
      x-ai-description: Retrieves the full list of CRM pipelines configured in the account. Pipelines define the sales or workflow stages through which contacts move. This endpoint is the entry point for understanding the current pipeline structure before creating deals, assigning stages, or automating transitions.
      x-ai-reasoning-instructions:
      - Use this endpoint to discover available pipeline IDs before creating or updating deals.
      - Check pipeline statuses to determine which pipelines are active and suitable for new deals.
      - If the user asks about a specific pipeline by name, fetch all pipelines first and filter by name client-side, as the API does not support name-based filtering.
      x-ai-responding-instructions:
      - Present the list with pipeline names and IDs for easy reference.
      - If no pipelines exist, suggest creating one as a prerequisite for deal management.
      - Highlight any pipelines with unusual configurations (e.g., no statuses defined) as potential setup issues.
      x-ai-suggestions:
      - Use the returned pipeline IDs with `createDeal` to assign deals to the correct pipeline.
      - Inspect `statuses` in each pipeline to understand available deal stages before progressing contacts.
      x-ai-capabilities:
        confirmation:
          type: None
        security_info:
          data_handling:
          - ReadOnly
  /pipelines/{pipelineId}:
    get:
      tags:
      - Pipelines
      summary: Get information about a pipeline by ID
      description: 'Returns information about the specified pipeline: pipeline ID, pipeline creator, created statuses, and pipeline settings'
      parameters:
      - name: pipelineId
        in: path
        required: true
        description: ID of a pipeline you need to get information about. It can be obtained with the "Get a list of pipelines" method
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Pipeline'
      operationId: getPipelineById
      x-ai-role: crm_pipeline_analyst
      x-ai-description: Retrieves the full configuration snapshot of a single CRM pipeline — including its creator, status definitions, and behavioral settings. Use this to inspect pipeline structure before automating stage transitions or auditing workflow logic.
      x-ai-reasoning-instructions:
      - Ensure the pipelineId was obtained from the 'Get a list of pipelines' response — do not guess or construct IDs manually.
      - If the user asks about a pipeline by name, resolve the ID first using the list endpoint before calling this one.
      - Check whether the response includes all expected statuses; absence may indicate an incomplete pipeline setup.
      x-ai-responding-instructions:
      - Summarize the pipeline's key settings (name, creator, status count) rather than dumping the raw object.
      - If the user needs to modify the pipeline, suggest the appropriate update endpoint as a follow-up.
      - If a 404 is returned, confirm the pipelineId source and suggest re-fetching the pipeline list.
      x-ai-suggestions:
      - Use this endpoint to verify pipeline structure before creating or moving deals through stages.
      - Combine with 'Get a list of pipelines' to build a full pipeline inventory.
      x-ai-capabilities:
        confirmation:
          type: None
        security_info:
          data_handling:
          - ReadOnly
    put:
      tags:
      - Pipelines
      summary: Update information about a pipeline by its ID
      description: Updates information in the specified pipeline
      parameters:
      - name: pipelineId
        in: path
        required: true
        description: Pipeline ID to be updated.
        schema:
          type: integer
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: Pipeline name
                order:
                  type: integer
                  description: Field display order
                settings:
                  type: array
                  items:
                    $ref: '#/components/schemas/Setting'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Pipeline'
      operationId: updatePipeline
      x-ai-role: crm_pipeline_manager
      x-ai-description: Updates the metadata and configuration of an existing CRM pipeline. A pipeline defines the sales or processing stages through which deals progress — changing its name, order, or settings reconfigures the workflow structure for all deals currently inside it.
      x-ai-reasoning-instructions:
      - Before updating, confirm the pipelineId exists to avoid silent failures.
      - If renaming, warn the user that the new name should remain unique and descriptive to avoid confusion with other pipelines.
      - When changing `order`, consider that shifting one pipeline's position may affect the display order of other pipelines — advise a full re-check afterward.
      - Treat `settings` as a full replacement of the pipeline's configuration array, not a partial merge — ensure all desired settings are included in the request.
      x-ai-responding-instructions:
      - Confirm which fields were changed by comparing the request payload against the returned `data` object.
      - If the pipeline name was updated, highlight the new name explicitly.
      - Suggest verifying the pipeline's stage list as a logical next step after structural changes.
      x-ai-suggestions:
      - Retrieve current pipeline data with GET /pipelines/{pipelineId} before updating to avoid accidental overwrites.
      - 'Use PATCH semantics in mind: only send fields you intend to change.'
      x-ai-capabilities:
        confirmation:
          type: Recommended
          message: Updating a pipeline's settings affects all deals currently assigned to it. Confirm before proceeding.
        security_info:
          data_handling:
          - ResourceStateUpdate
components:
  schemas:
    Pipeline:
      type: object
      properties:
        id:
          type: integer
          description: Pipeline ID
        userId:
          type: integer
          description: ID of the user who created the pipeline
        name:
          type: string
          description: Pipeline name
        status:
          $ref: '#/components/schemas/DefaultStatusProperty'
        order:
          type: integer
          description: Pipelines order
        steps:
          type: array
          items:
            $ref: '#/components/schemas/Step'
        settings:
          type: array
          items:
            $ref: '#/components/schemas/Setting'
    Setting:
      type: object
      properties:
        name:
          type: string
          description: Setting name
        value:
          type: string
          description: Setting value
    Step:
      type: object
      properties:
        id:
          type: integer
          description: Step ID
        pipelineId:
          type: integer
          description: Pipeline ID
        name:
          type: string
          description: Step name
        order:
          type: integer
          description: Step order
        status:
          $ref: '#/components/schemas/DefaultStatusProperty'
        color:
          type: string
          enum:
          - '#000000'
          - black
          description: Step color
        addEndHours:
          type: integer
          enum:
          - null
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 8
          - 9
          - 10
          description: Add number of hours or null
        notifyIn:
          type: string
          enum:
          - '0'
          - 15min
          - 30min
          - 1h
          - 2h
          - 3h
          - 6h
          - 12h
          - 24h
          - 2d
          - 3d
          - 4d
          - 5d
          - 6d
          - 7d
          description: Time notification
    DefaultStatusProperty:
      type: integer
      description: '| Status

        * 0 — inactive (deleted by user) * 1 — active'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Static API Key authentication.  A long-lived token generated manually in the SendPulse account settings.

        '
      x-ai-description: 'Permanent authentication token. Ideal for simple integrations without token refresh logic.

        '
    outh2:
      type: oauth2
      description: OAuth 2.0 Client Credentials flow for temporary access tokens.
      flows:
        clientCredentials:
          tokenUrl: https://api.sendpulse.com/oauth/access_token
          scopes: {}
      x-ai-description: 'Standard OAuth 2.0 flow using Client ID and Client Secret.  Provides temporary tokens (valid for 1 hour) for enhanced security.

        '