SendPulse CRM Public API

Pipelines, deals, contacts, companies, tasks, boards, products and payments — the largest surface SendPulse publishes at 191 operations.

OpenAPI Specification

sendpulse-crm-openapi.yml Raw ↑
components:
  schemas:
    CommentCompany:
      type: object
      properties:
        id:
          type: integer
        message:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    CompanySortData:
      type: object
      properties:
        id:
          type: integer
        companyName:
          type: string
        responsibleId:
          type: integer
        address:
          type: string
        annualBusinessVolume:
          type: integer
        currency:
          type: string
    Company:
      type: object
      properties:
        id:
          type: integer
        companyName:
          type: string
        responsibleId:
          type: integer
        address:
          type: string
        annualBusinessVolume:
          type: integer
        currency:
          type: string
        messengers:
          type: array
          items:
            $ref: '#/components/schemas/Messenger'
        phones:
          type: array
          items:
            $ref: '#/components/schemas/Phone'
        emails:
          type: array
          items:
            $ref: '#/components/schemas/Email'
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/Attribute'
        contacts:
          type: array
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/AttachmentResource'
        createdAt:
          type: string
        updatedAt:
          type: string
    History:
      type: object
      properties:
        eventType:
          type: string
        eventData:
          type: array
        date:
          type: string
    Email:
      type: object
      properties:
        id:
          type: integer
        isMain:
          type: boolean
        email:
          type: string
    Phone:
      type: object
      properties:
        id:
          type: integer
        isMain:
          type: boolean
        phone:
          type: string
    Messenger:
      type: object
      properties:
        id:
          type: integer
        typeId:
          type: integer
        login:
          type: string
    AttachmentResource:
      type: object
      properties:
        id:
          type: integer
        link:
          type: array
        entityId:
          type: integer
        entityType:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
    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'
    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
    Setting:
      type: object
      properties:
        name:
          type: string
          description: Setting name
        value:
          type: string
          description: Setting value
    Deal:
      type: object
      properties:
        id:
          type: integer
          description: Deal ID
        pipelineId:
          type: integer
          description: Pipeline ID
        status:
          $ref: '#/components/schemas/DealStatusProperty'
        stepId:
          type: integer
          description: Pipeline step ID
        responsibleId:
          type: integer
          description: >-
            ID of the responsible for the deal user. Can be obtained in the “Get
            list of invited users” method
        number:
          type: integer
          description: >-
            Deal number, the number is generated automatically according to the
            order in which deal was created. Used in deal name if a custom value
            has not been specified
        name:
          type: string
          description: Deal name
        price:
          type: number
          description: Deal price
        currency:
          type: string
          description: 'Deal currency. Example: UAH, USD, EUR'
        profit:
          type: number
          description: Deal profit in major currency units
        hasExpense:
          type: boolean
          description: Shows if the deal has at least one expense
        order:
          type: integer
          description: Deal order
        sourceType:
          $ref: '#/components/schemas/DealSourceType'
        sourceId:
          type: integer
          description: ID of external source
        history:
          items:
            $ref: '#/components/schemas/DealHistory'
        comments:
          items:
            $ref: '#/components/schemas/DealComment'
        attributes:
          items:
            $ref: '#/components/schemas/DealAttributeValue'
        expiration:
          $ref: '#/components/schemas/DealExpiration'
        attachments:
          $ref: '#/components/schemas/EntityAttachment'
        tasks:
          type: array
          items:
            type: integer
        createdAt:
          type: string
          format: date-time
          description: >-
            The date and time the transaction was created. Output in YYYY-MM-DD
            hh:mm:ss format with fractions of a second and time zone
        updatedAt:
          type: string
          format: date-time
          description: >-
            The date and time the transaction information was last updated.
            Output in YYYY-MM-DD hh:mm:ss format with fractions of a second and
            time zone
    DealDetailed:
      type: object
      properties:
        id:
          type: integer
          description: Deal ID
        pipelineId:
          type: integer
          description: Pipeline ID
        status:
          $ref: '#/components/schemas/DealStatusProperty'
        stepId:
          type: integer
          description: Pipeline step ID
        responsibleId:
          type: integer
          description: >-
            ID of the responsible for the deal user. Can be obtained in the “Get
            list of invited users” method
        number:
          type: integer
          description: >-
            Deal number, the number is generated automatically according to the
            order in which deal was created. Used in deal name if a custom value
            has not been specified
        name:
          type: string
          description: Deal name
        price:
          type: number
          description: Deal price
        currency:
          type: string
          description: 'Deal currency. Example: UAH, USD, EUR'
        profit:
          type: number
          description: Deal profit in major currency units
        hasExpense:
          type: boolean
          description: Shows if the deal has at least one expense
        order:
          type: integer
          description: Deal order
        sourceType:
          $ref: '#/components/schemas/DealSourceType'
        sourceId:
          type: integer
          description: ID of external source
        createdAt:
          type: string
          format: date-time
          description: >-
            The date and time the transaction was created. Output in YYYY-MM-DD
            hh:mm:ss format with fractions of a second and time zone
        updatedAt:
          type: string
          format: date-time
          description: >-
            The date and time the transaction information was last updated.
            Output in YYYY-MM-DD hh:mm:ss format with fractions of a second and
            time zone
        history:
          $ref: '#/components/schemas/DealHistory'
        comments:
          $ref: '#/components/schemas/DealComment'
        attributes:
          $ref: '#/components/schemas/DealAttributeValue'
    DealType:
      type: object
      properties:
        id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
        status:
          type: integer
          description: ''
    DealSourceType:
      type: object
      properties:
        id:
          type: integer
          description: ''
        name:
          type: string
          description: ''
    DealComment:
      type: object
      properties:
        id:
          type: integer
        userId:
          type: integer
        eventData:
          type: object
          properties:
            text:
              type: string
        status:
          type: integer
        eventTime:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
        attachments:
          items:
            $ref: '#/components/schemas/EntityAttachment'
        childCount:
          type: integer
        childUsers:
          type: array
          items:
            type: integer
    Source:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    DealHistory:
      type: object
      properties:
        id:
          type: integer
        userId:
          type: integer
        eventData:
          type: array
        eventType:
          type: string
        eventTime:
          type: string
          format: date-time
        currentData:
          type: object
          properties:
            contactFirstName:
              type: string
            contactLastName:
              type: string
    MessengerType:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/MessengerTypeProperty'
        name:
          type: string
          description: Messenger name
    Payment:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        price:
          $ref: '#/components/schemas/PaymentOrderPrice'
        status:
          type: integer
        orderId:
          type: string
        paymentDescription:
          type:
            - string
            - 'null'
        paymentMethod:
          type: string
          enum:
            - Fondy
            - YooMoney
            - PayPal
        createdAt:
          type: string
          format: date-time
        promoCode:
          type: string
        promoCodeDiscount:
          type: number
    UserPaymentData:
      type: object
      properties:
        id:
          type: integer
        userId:
          type: integer
        contactId:
          type: integer
        dealId:
          type: integer
        status:
          type: integer
        firstName:
          type: string
        lastName:
          type: string
        name:
          type: string
        responsibleId:
          type: integer
        price:
          type: object
          properties:
            amount:
              type: integer
            currency:
              type: string
        description:
          type: string
        merchantName:
          type: string
        merchantUuid:
          type: string
        paymentMethod:
          type: string
        promoCode:
          type: string
        promoCodeDiscount:
          type: string
        createdAt:
          type: string
        externalContactId:
          type: string
        paymentItems:
          type: array
          items:
            properties:
              name:
                type: string
              productId:
                type: string
              type:
                type: integer
                enum:
                  - 1 (product)
                  - 2 (crmProduct)
                  - 3 (delivery)
              quantity:
                type: string
              amount:
                type: integer
    Contact:
      type: object
      properties:
        id:
          type: integer
          description: Contact ID
        userId:
          type: integer
          description: ID of user who created the contact
        sourceType:
          type: string
          enum:
            - manually
            - chatbot
            - subscription_form
            - landing
            - a360
            - payments
        responsibleId:
          type: integer
          description: >-
            ID of user responsible for the contact. Can be obtained in the “Get
            list of invited users” method
        firstName:
          type: string
          description: Contact first name
        lastName:
          type: string
          description: Contact last name
        dealsQty:
          type: integer
        externalContactId:
          type: string
        comments:
          items:
            $ref: '#/components/schemas/ContactComment'
        tags:
          items:
            $ref: '#/components/schemas/ContactTag'
        phones:
          items:
            $ref: '#/components/schemas/ContactPhone'
        emails:
          items:
            $ref: '#/components/schemas/ContactEmail'
        messengers:
          items:
            $ref: '#/components/schemas/ContactMessenger'
        attributes:
          items:
            $ref: '#/components/schemas/ContactAttributeValue'
        history:
          items:
            $ref: '#/components/schemas/ContactHistory'
        tasks:
          type: array
          items:
            type: integer
        createdAt:
          type: string
          format: date-time
          description: >-
            The date and time the contact was created. Output in YYYY-MM-DD
            hh:mm:ss format with fractions of a second and time zone
        updatedAt:
          type: string
          format: date-time
        attachments:
          $ref: '#/components/schemas/EntityAttachment'
    ContactComment:
      type: object
      properties:
        id:
          type: integer
        userId:
          type: integer
        text:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        attachments:
          $ref: '#/components/schemas/EntityAttachment'
        childCount:
          type: integer
        childUsers:
          type: array
          items:
            type: integer
    ContactHistory:
      type: object
      properties:
        id:
          type: integer
        userId:
          type: integer
        contactId:
          type: integer
        eventType:
          type: string
        eventTime:
          type: string
          format: date-time
        eventData:
          type: object
          properties:
            dealName:
              type: string
    ContactPhone:
      type: object
      properties:
        id:
          type: integer
          description: Contact phone ID
        phone:
          type: string
        isMain:
          type: boolean
    ContactEmail:
      type: object
      properties:
        id:
          type: integer
          description: Email address ID
        email:
          type: string
          description: Email address
        isMain:
          type: boolean
          description: Determines whether the email address is the main one
    ContactMessenger:
      type: object
      properties:
        id:
          type: integer
          description: ID of the added messenger
        typeId:
          type: integer
          description: Messenger type
        login:
          type: string
          description: Contact login in the specified messenger
        botId:
          type: string
          description: External bot ID
        contactId:
          type: string
          description: External contact ID
        status:
          type: integer
        chatbotUrl:
          type: string
          description: URL of the chatbot from which the contact was received
        isMainChatbot:
          type: boolean
          description: Determine if chatbot messenger is the main one
    ContactTag:
      type: object
      properties:
        id:
          type: integer
          description: Tag ID
        name:
          type: string
          description: Tag name
        colorText:
          type: string
        colorBackground:
          type: string
        contactCount:
          type: integer
          description: Number of contacts associated with the tag
        taskCount:
          type: integer
          description: Number of tasks associated with a tag
    ContactAttribute:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        status:
          type: integer
          description: |-
            | Status
            * 0 — inactive (deleted by user) * 1 — active * 2 — hidden
        order:
          type: integer
        options:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
          description: Items of "List" field type
    Attribute:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        status:
          type: integer
        type:
          type: integer
        mandatory:
          type: boolean
        order:
          type: integer
        options:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
    ContactAttributeValue:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        status:
          type: integer
          description: |-
            | Status
            * 0 — inactive (deleted by user) * 1 — active * 2 — hidden
        type:
          type: integer
        mandatory:
          type: boolean
        contactCardShow:
          type: boolean
        order:
          type: integer
        options:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
          description: Items of "List" field type
        value:
          properties:
            type:
              type: string
              description: Field type
            value:
              type: string
              description: Field value
          description: ''
        default:
          type: boolean
          description: ''
    DealAttribute:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        status:
          $ref: '#/components/schemas/DefaultStatusProperty'
        type:
          type: integer
          description: ''
        mandatory:
          type: boolean
          description: ''
        order:
          type: integer
        options:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
          description: Items of "List" field type
    DealAttributeValue:
      type: object
      properties:
        id:
          type: integer
        pipelineId:
          type: integer
        name:
          type: string
        status:
          type: integer
        type:
          type: integer
        mandatory:
          type: boolean
        order:
          type: integer
        options:
          type: array
          description: Items of "List" field type
          items:
            oneOf:
              - type: string
              - type: integer
        value:
          properties:
            value:
              type: string
    Comment:
      type: object
      properties:
        id:
          type: integer
          description: ''
        userId:
          type: integer
          description: ''
        text:
          type: string
          description: ''
        status:
          type: integer
          description: ''
        createdAt:
          type: string
          format: date-time
          description: ''
        updatedAt:
          type: string
          format: date-time
          description: ''
    User:
      type: object
      properties:
        id:
          type: integer
        firstname:
          type: string
          description: User first name
        lastname:
          type: string
          description: User last name
        email:
          type: string
          description: Email
        avatar:
          type: string
          description: Link to profile picture
        lang:
          type: string
          description: >-
            The interface language set in the interface of the invited user. Can
            be: en_US, es_MX, fr_FR, pt_BR, ru_RU, tr_TR, uk_UA
        timezone:
          type: integer
          description: Time zone set in user settings
        currency:
          type: string
          description: Currency set in settings
    ContactsAutocomplete:
      type: array
      items:
        properties:
          id:
            type: integer
          firstName:
            type: string
          lastName:
            type: string
          email:
            type: string
          phone:
            type: string
    DealsAutocomplete:
      type: array
      items:
        properties:
          id:
            type: integer
          name:
            type: string
          responsibleId:
            type: number
          stepId:
            type: number
    TaskAutocomplete:
      type: array
      items:
        properties:
          id:
            type: integer
          name:
            type: string
          responsibleId:
            type: integer
          boardId:
            type: integer
          stepId:
            type: integer
          observers:
            type: array
    TaskTotals:
      type: object
      properties:
        total:
          type: integer
        steps:
          type: array
          items:
            properties:
              stepId:
                type: integer
              total:
                type: integer
    TasksAttribute:
      type: array
      items:
        properties:
          attributeId:
            type: integer
          value:
            type: string
            example: string or number or array
    Attributes:
      type: object
      properties:
        type:
          type: integer
          enum:
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        name:
          type: string
        status:
          type: boolean
        value:
          type: array
          items:
            $ref: '#/components/schemas/AttributeValue'
    AttributeValue:
      type: object
      properties:
        id:
          type: number
        value:
          type: string
    TaskRepeats:
      type: object
      properties:
        type:
          type: integer
          description: |
            Repetition frequency

            * 1 - daily
            * 2 - weekly
            * 3 - monthly
            * 4 - yearly
        startDate:
          type: string
          format: date-time
          description: Format - 2021-11-25 13:38
        endSetting:
          type: object
          properties:
            type:
              type: string
              description: |
                * byDate - Complete task on the specified date
                * byCount - Complete task after task performs "byCount" times
            value:
              description: Has Date type if "byDate" type, Number if "byCount"
        setting:
          type: object
          properties:
            everyDay:
              type: number
            days:
              type: array
              description: Array of ordinal days of the week
              example: '[1, 3, 5] - repeat every Monday, Wednesday and Friday'
            everyWeekOfMonth:
              type: integer
              description: Ordinal number of week of the month (from 1 to 4)
            numberOfMonth:
              type: object
              properties:
                everyDay:
                  type: integer
                  description: Ordinal number of the day of the month
                everyMonth:
                  type: integer
                  description: Ordinal number of the month
            dayOfMonth:
              type: object
              properties:
                dayOfWeek:
                  type: integer
                  description: Ordinal day of the week
                everyMonth:
                  type: integer
                  description: Ordinal month of the year
                everyWeek:
                  type: integer
                  description: Ordinal number of week of the month (from 1 to 4)
    TasksConnection:
      type: object
      properties:
        tasks:
          $ref: '#/components/schemas/TaskAutocomplete'
        deals:
          $ref: '#/components/schemas/DealsAutocomplete'
        contacts:
          $ref: '#/components/schemas/ContactsAutocomplete'
        subTasks:
          $ref: '#/components/schemas/TaskAutocomplete'
    TaskComment:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        taskId:
          type: integer
        userId:
          type: integer
        body:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
        attachments:
          items:
            $ref: '#/components/schemas/EntityAttachment'
        childCount:
          type: integer
        childUsers:
          type: array
          items:
            type: integer
    TaskAttachment:
      type: object
      properties:
        id:
          type: integer
        link:
          type: string
        taskId:
          type: integer
    TaskChecklist:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        taskId:
          type: integer
        isDone:
          type: boolean
        items:
          $ref: '#/components/schemas/ChecklistItems'
    ChecklistItems:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        order:
          type: number
        isDone:
          type: boolean
    TaskTag:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        colorText:
          type: string
        colorBackground:
          type: string
    Pagination:
      type: object
      properties:
        currentPage:
          type: integer
        lastPage:
          type: integer
        perPage:
          type: integer
        total:
          type: integer
    Tasks:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        userId:
          type: integer
        responsibleId:
          type: integer
        parentId:
          type: integer
        boardId:
          type: integer
        stepId:
          type: integer
        priority:
          type: integer
        order:
          type: integer
        description:
          type: integer
        alert:
          type: string
          description: >-
            Notify before task expires (when notification is enabled). Allowed
            values - 0(not selected), 15min, 30min, 1h, 2h, 3h, 6h, 12h, 24h,
            2d, 3d, 4d, 5d, 6d, 7d
        repeat:
          type: integer
        startAt:
          type: string
          description: Format - 2021-11-25 13:38
        finishAt:
          type: string
          description: Format - 2021-11-25 13:38
        observers:
          type: array
          items:
            type: integer
        checklists:
          $ref: '#/components/schemas/TaskChecklist'
        attachments:
          $ref: '#/components/schemas/EntityAttachment'
        attributes:
          $ref: '#/components/schemas/Attributes'
        comments:
          $ref: '#/components/schemas/TaskComment'
        histories:
          $ref: '#/components/schemas/TaskHistory'
        tags:
          $ref: '#/components/schemas/TaskTag'
        deals:
          type: array
          description: Array of deal IDs
        tasks:
          type: array
          description: Array of task IDs
        contacts:
          type: array
          description: Array of contact IDs
        subTasks:
          type: array
          description: Array of task IDs
        updatedDaysAt:
          type: number
        createdDaysAt:
          type: number
        createdAt:
          type: string
        updatedAt:
          type: string
    Boards:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        userId:
          type: integer
        order:
          type: integer
        steps:
          $ref: '#/components/schemas/BoardSteps'
        settings:
          $ref: '#/components/schemas/BoardSettings'
        attributes:
          $ref: '#/components/schemas/BoardAttribute'
    BoardAttribute:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        type:
          type: integer
        mandatory:
          type: boolean
        options:
          type: array
          default:
            - 1
            - 2
        status:
          type: integer
        order:
          type: integer
    BoardSettings:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        value:
          type: string
        boardId:
          type: number
    BoardSteps:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        color:
          type: string
        order:
          type: integer
        boardId:
          type: integer
    EntityFilterList:
      type: array
      items:
        properties:
          attributeId:
            type: integer
            description: Attribute ID (optional)
          name:
            type: string
            description: Attribute/Field name
          isFilterable:
            type: boolean
            description: Is attribute filterable
    TaskHistory:
      type: object
      properties:
        id:
          type: integer
        taskId:
          type: integer
        eventTime:
          type: string
        eventType:
          type: string
        eventData:
          type: object
        userId:
          type: number
    TelephonyCall:
      type: object
      properties:
        id:
          type: integer
        integrationId:
          type: integer
        integrationGroupId:
          type: integer
        responsibleId:
          type: integer
        phone:
          type: string
          description: Contact phone, used in this call
        callDuration:
          type: integer
          description: Duration of the call
        callType:
          type: integer
          description: Type of the call (0 - incoming, 1 - outgoing)
        state:
          type: integer
          description: State of the call (1 - pending, 2 - successful, 3 - failed)
        callRecordLink:
          type: string
          description: Link to call record
        createdAt:
          type: string
          format: date-time
          ex

# --- truncated at 32 KB (653 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sendpulse/refs/heads/main/openapi/sendpulse-crm-openapi.yml