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-deal-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 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: 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.
title: SendPulse CRM Public Deal Attributes API
version: 0.1.0
servers:
- url: https://api.sendpulse.com/crm/v1
security:
- apiKey: []
- oauth2: []
tags:
- name: Deal Attributes
paths:
/pipelines/{pipelineId}/attributes:
get:
tags:
- Deal Attributes
summary: Get deal attributes list
parameters:
- name: pipelineId
in: path
required: true
schema:
type: integer
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/DealAttribute'
operationId: listPipelineAttributes
x-ai-role: crm_pipeline_specialist
x-ai-description: Retrieves the full set of custom deal attributes defined for a specific pipeline. In SendPulse CRM, each pipeline can have its own schema of deal fields — these attributes define what structured data can be captured per deal (e.g., budget, priority, custom labels). Knowing the attribute schema is a prerequisite before creating or updating deals.
x-ai-reasoning-instructions:
- Always call this endpoint before attempting to create or update a deal in the pipeline — attribute IDs are required for setting custom field values.
- Verify that the provided pipelineId exists and is accessible to the current account before making the request.
- Cache the attribute list for a pipeline session if multiple deal operations will follow, to avoid redundant calls.
x-ai-responding-instructions:
- Present the returned attributes as a structured list with their IDs and names, so the user can identify which fields are available.
- If the list is empty, inform the user that no custom attributes are configured for this pipeline and suggest adding them via CRM settings.
- Highlight required attributes (if indicated) to help the user understand mandatory fields when creating deals.
x-ai-suggestions:
- Use returned attribute IDs when calling createDeal or updateDeal to populate custom field values.
- If attributes are missing, navigate to the CRM pipeline settings to define them before proceeding.
x-ai-capabilities:
confirmation:
type: None
security_info:
data_handling:
- ReadOnly
post:
tags:
- Deal Attributes
summary: Create a deal attribute
parameters:
- name: pipelineId
in: path
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
type:
type: integer
description: 0 = Text, 1 = Number, 2 = Date, 3 = Link, 4 = Select, 5 = MultiSelect
mandatory:
type: boolean
options:
type: array
items:
oneOf:
- type: string
- type: integer
required:
- name
- pipelineId
- type
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/DealAttribute'
operationId: createPipelineAttribute
x-ai-role: crm_data_architect
x-ai-description: This endpoint extends the data schema of a specific CRM pipeline by defining a custom attribute for deals. Deal attributes act as typed metadata fields that shape how deals are captured, validated, and reported on. The `type` field determines the UI control and validation logic — selecting the wrong type for a field (e.g., Text instead of Date for a close date) causes downstream issues in filters, reporting, and automations. Mandatory fields enforce data completeness at deal creation time.
x-ai-reasoning-instructions:
- Confirm the target pipeline exists by its `pipelineId` before attempting to create an attribute.
- 'Map the user''s intent to the correct `type` integer: 0=Text, 1=Number, 2=Date, 3=Link, 4=Select, 5=MultiSelect.'
- If `type` is 4 (Select) or 5 (MultiSelect), the `options` array is required — prompt the user for option values if not provided.
- Avoid creating duplicate attribute names within the same pipeline; advise checking existing attributes first.
- 'Use `mandatory: true` only for fields that are genuinely required for every deal — overuse creates friction in data entry.'
x-ai-responding-instructions:
- Confirm the attribute was created by echoing its name and type in human-readable form (e.g., 'Date' instead of '2').
- If type is Select or MultiSelect, list the registered options back to the user.
- Suggest populating deals with the new attribute or reviewing pipeline attribute order as a next step.
- If the pipeline is not found or validation fails, explain which field caused the error and how to fix it.
x-ai-suggestions:
- 'Expected Close Date (type: 2, mandatory: true)'
- 'Deal Source (type: 4, options: [''Inbound'', ''Outbound'', ''Referral'', ''Partner''])'
- 'Contract Value (type: 1, mandatory: true)'
- 'Product Tags (type: 5, options: [''SaaS'', ''Enterprise'', ''Trial''])'
- 'Demo URL (type: 3)'
x-ai-capabilities:
confirmation:
type: None
security_info:
data_handling:
- SchemaModification
- ResourceStateUpdate
/pipelines/{pipelineId}/attributes/{attributeId}:
put:
tags:
- Deal Attributes
summary: Update a deal attribute
parameters:
- name: pipelineId
in: path
required: true
schema:
type: integer
- name: attributeId
in: path
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
type:
type: integer
description: 0 = Text, 1 = Number, 2 = Date, 3 = Link, 4 = Select, 5 = MultiSelect
mandatory:
type: boolean
order:
type: integer
status:
type: integer
description: 0 = Inactive, 1 = Active, 2 = Hidden
options:
type: array
items:
oneOf:
- type: string
- type: integer
required:
- name
- order
- pipelineId
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/DealAttribute'
operationId: updatePipelineAttribute
x-ai-role: sales_operations_specialist
x-ai-description: Updates a deal attribute definition within a specific pipeline, allowing reconfiguration of the deal data model — its display name, field type, visibility, sort order, and whether it is mandatory. Attribute structure changes propagate immediately to all deals in the pipeline, so type or mandatory-status edits can affect data integrity and form behavior across the entire sales workflow.
x-ai-reasoning-instructions:
- Before updating, verify both the pipelineId and attributeId exist; a missing pipeline or attribute returns an error.
- Warn the user if changing the `type` field on an attribute that already has values stored — type changes (e.g., Text → Number) may corrupt or discard existing deal data.
- If `mandatory` is being set to `true`, check whether existing deals already have this attribute populated; unpopulated mandatory fields can block deal save operations.
- When `type` is 4 (Select) or 5 (MultiSelect), `options` must be provided; omitting them leaves the field unusable.
- Use `order` to place the attribute logically relative to sibling attributes — confirm the desired position with the user if not explicitly specified.
- Setting `status` to 0 (Inactive) or 2 (Hidden) hides the attribute from the deal form but preserves stored data.
x-ai-responding-instructions:
- Confirm which fields were changed and echo back the updated attribute name and type for clarity.
- If `type` was changed, proactively warn that existing deal data for this attribute may be affected.
- If `mandatory` was enabled, suggest reviewing open deals for compliance.
- Suggest using `getPipelineAttributes` to verify the full updated attribute list after the change.
x-ai-suggestions:
- Set status to 2 (Hidden) instead of deleting the attribute to preserve historical deal data.
- Use descriptive names like 'Expected Close Date' or 'Contract Value (USD)' for clarity across the team.
- For Select/MultiSelect types, provide a complete and final list of options — partial lists confuse users filling in deals.
x-ai-capabilities:
confirmation:
type: Recommended
message: Modifying attribute type or mandatory status affects all existing deals in this pipeline. Confirm before proceeding.
security_info:
data_handling:
- ResourceStateUpdate
- PotentialDataLoss
delete:
tags:
- Deal Attributes
summary: Delete a deal attribute
parameters:
- name: pipelineId
in: path
required: true
schema:
type: integer
- name: attributeId
in: path
required: true
schema:
type: integer
responses:
'204':
description: Successfully deleted
operationId: deletePipelineAttribute
x-ai-role: crm_pipeline_administrator
x-ai-description: Permanently removes a custom attribute definition from a pipeline. This is a schema-level operation — it deletes the attribute field itself, not just a value. Any deal data stored under this attribute across all pipeline deals will be lost.
x-ai-reasoning-instructions:
- Confirm the attributeId belongs to the specified pipelineId before proceeding — cross-pipeline deletions are not valid.
- Warn the user that this operation is irreversible and will erase all stored values for this attribute across every deal in the pipeline.
- Check if the attribute is used in any automation, filter, or report before deletion — removing it may silently break dependent logic.
- Prefer archiving or disabling an attribute over deletion if the user is unsure.
x-ai-responding-instructions:
- Confirm deletion with the attributeId and pipelineId that were affected.
- Explicitly note that all deal-level data for this attribute has been permanently removed.
- Suggest reviewing pipeline deal views or automations that may have referenced this attribute.
x-ai-capabilities:
confirmation:
type: Required
message: This will permanently delete the attribute and all associated deal data. This action cannot be undone.
security_info:
data_handling:
- IrreversibleDelete
- CascadingDataLoss
/deals/{dealId}/attributes/{attributeId}:
delete:
tags:
- Deal Attributes
summary: Remove the deal attribute
description: Removes the attribute from the specified deal
parameters:
- name: dealId
in: path
required: true
description: Deal ID from which you want to delete the field. It can be obtained with the "Get a list of deals" method
schema:
type: integer
- name: attributeId
in: path
required: true
description: Attribute ID you want delete. It can be obtained with the "Get a list of deals" and "Get information about the deal by ID" methods
schema:
type: integer
responses:
'204':
description: ''
operationId: deleteDealAttribute
x-ai-role: crm_data_integrity_specialist
x-ai-description: Removes a specific custom attribute from a deal without deleting the deal itself. Use this when a field is no longer relevant to a particular deal — for example, after a stage transition makes certain data obsolete. This operation affects only the deal-attribute association, not the attribute definition globally.
x-ai-reasoning-instructions:
- Before deleting, confirm the attributeId belongs to the specified dealId — mismatched IDs will result in a 404.
- Verify whether the attribute holds data the user may want to preserve before removal, as this action is irreversible.
- If the user wants to remove an attribute from all deals, this endpoint must be called per deal individually — there is no bulk variant.
- Distinguish between removing an attribute value (this endpoint) and deleting the attribute definition globally.
x-ai-responding-instructions:
- Confirm the attribute was successfully removed from the deal (204 No Content means success).
- Remind the user that this does not delete the attribute definition — it only dissociates it from this deal.
- If the user seems to want to clean up multiple deals, suggest iterating over the deal list and calling this endpoint per deal.
x-ai-capabilities:
confirmation:
type: Recommended
message: This will permanently remove the attribute from the deal. The attribute definition will remain intact. Proceed?
security_info:
data_handling:
- ResourceStateUpdate
- IrreversibleDelete
components:
schemas:
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
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.
'