SendPulse Board attributes API

The Board attributes API from SendPulse — 2 operation(s) for board attributes.

Operations 3

GET /boards/{boardId}/attributes Get attribute for board #
POST /boards/{boardId}/attributes Create attribute for board #
PUT /boards/{boardId}/attributes/{attributeId} Update attribute for board #

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-board-attributes-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-board-attributes-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 Board attributes API
  version: 0.1.0
servers:
- url: https://api.sendpulse.com/crm/v1
security:
- apiKey: []
- oauth2: []
tags:
- name: Board attributes
paths:
  /boards/{boardId}/attributes:
    get:
      tags:
      - Board attributes
      summary: Get attribute for board
      parameters:
      - name: boardId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/BoardAttribute'
      operationId: getBoardAttributes
      x-ai-role: crm_data_architect
      x-ai-description: Retrieves the custom attribute schema defined for a specific CRM board. Board attributes act as column definitions — they determine what structured data can be stored per card/contact on that board. Understanding the attribute schema is a prerequisite before creating or updating cards, as it defines valid field names, types, and constraints.
      x-ai-reasoning-instructions:
      - Always fetch board attributes before attempting to create or update cards on a board — attribute IDs and types are required for correct field mapping.
      - If the boardId is unknown, first call the board listing endpoint to resolve the correct ID.
      - Cache the attribute schema locally within a session to avoid redundant calls when processing multiple cards on the same board.
      x-ai-responding-instructions:
      - Present the attributes as a structured field reference — name, type, and ID for each attribute.
      - If the attribute list is empty, inform the user that no custom fields have been configured for this board yet and suggest creating them.
      - Highlight any required attributes the user must populate when creating cards.
      x-ai-suggestions:
      - Use returned attribute IDs when constructing payloads for card create/update endpoints.
      - Follow up with a card listing call to see how current data maps to these attributes.
      x-ai-capabilities:
        confirmation:
          type: None
        security_info:
          data_handling:
          - ReadOnly
    post:
      tags:
      - Board attributes
      summary: Create attribute for board
      parameters:
      - name: boardId
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: Attribute name
                type:
                  type: number
                  description: 'Attribute type:

                    0 -string

                    1 - number

                    2 - date

                    3 - link

                    4 - list

                    5 - multiList

                    '
                mandatory:
                  type: boolean
                  description: Is attribute required
                options:
                  type: array
                  description: Attribute options (only for "list" and "multiList" types)
                  default:
                  - 1
                  - 2
      responses:
        '201':
          description: Successfully
      operationId: createBoardAttribute
      x-ai-role: crm_data_architect
      x-ai-description: 'Defines a custom attribute schema for a CRM board, extending its data model beyond built-in fields. Attributes act as typed column definitions — they determine what structured data can be captured per contact or deal on this board. Choosing the correct type upfront is critical: it cannot be changed after contacts have values assigned.'
      x-ai-reasoning-instructions:
      - Before creating, check existing attributes on the board to avoid name collisions.
      - 'Validate that `type` matches the expected data semantics: use `date` for timestamps, `link` for URLs, `list`/`multiList` for constrained vocabularies.'
      - If `type` is 4 (list) or 5 (multiList), `options` is required — warn the user if it is missing or empty.
      - If `mandatory` is true, ensure the user understands all existing contacts will lack this value until backfilled.
      - Suggest snake_case or consistent naming conventions for `name` to simplify downstream filtering.
      x-ai-responding-instructions:
      - Confirm the attribute was created and echo back its name and type for clarity.
      - If type is list or multiList, summarize the options that were registered.
      - Suggest populating the attribute via contact update endpoints as an immediate next step.
      - If a 4xx error occurs due to a duplicate name, propose a disambiguated alternative.
      x-ai-suggestions:
      - industry
      - deal_stage
      - onboarding_date
      - contract_url
      - preferred_contact_channel
      x-ai-capabilities:
        confirmation:
          type: None
        security_info:
          data_handling:
          - SchemaModification
          - ResourceStateUpdate
  /boards/{boardId}/attributes/{attributeId}:
    put:
      tags:
      - Board attributes
      summary: Update attribute for board
      parameters:
      - name: boardId
        in: path
        required: true
        schema:
          type: integer
      - name: attributeId
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              properties:
                name:
                  type: string
                  description: Attribute name
                type:
                  type: number
                  description: 'Attribute type:

                    0 -string

                    1 - number

                    2 - date

                    3 - link

                    4 - list

                    5 - multiList

                    '
                mandatory:
                  type: boolean
                  description: Is attribute required
                options:
                  type: array
                  description: Attribute options (only for "list" and "multiList" types
                order:
                  type: integer
                  description: Attribute order
                status:
                  type: integer
      responses:
        '200':
          description: Successfully
      operationId: updateBoardAttribute
      x-ai-role: crm_data_architect
      x-ai-description: Modifies the schema definition of a custom attribute on a CRM board. Attributes define the data model for board entities — changing a type (e.g., from string to list) affects how all existing contact/deal data stored under this attribute is interpreted. Order and mandatory flags control UI behavior and data entry validation across the board.
      x-ai-reasoning-instructions:
      - Before changing `type`, warn the user that existing data stored under this attribute may become incompatible or unreadable with the new type.
      - If `type` is set to 4 (list) or 5 (multiList), verify that `options` array is also provided — otherwise the attribute will be unusable.
      - If `mandatory` is set to true, existing board records without this attribute will fail validation on next update — inform the user about the impact.
      - Changing `order` repositions the attribute in the UI; use this to group related attributes visually.
      - Confirm that both `boardId` and `attributeId` exist before attempting the update to avoid misleading 404 errors.
      x-ai-responding-instructions:
      - Confirm which fields were updated and briefly describe the effect (e.g., 'Attribute is now required for all records').
      - If `type` was changed, proactively note potential data compatibility risks.
      - If `options` were updated for a list/multiList attribute, mention that removed options may affect existing records using those values.
      - Suggest verifying board records after structural changes to ensure data integrity.
      x-ai-suggestions:
      - Use `getBoardAttributes` to fetch current attribute config before patching.
      - After updating a mandatory attribute, review existing records for compliance.
      - Reorder attributes (`order` field) to improve data entry UX on the board UI.
      x-ai-capabilities:
        confirmation:
          type: Recommended
          message: Changing attribute type or mandatory status affects all existing board records. Confirm before proceeding.
        security_info:
          data_handling:
          - ResourceStateUpdate
          - SchemaModification
components:
  schemas:
    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
  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.

        '