Pipedrive
Authentication Type: API Key Description: Sales CRM platform for managing persons, deals, notes, activities, and pipelines with comprehensive API access.
Authentication
To authenticate, you'll need a Pipedrive API token:
- Go to Settings (gear icon) > Personal preferences in your Pipedrive account
- Click on the API tab
- Copy your personal API token
For more details, see the Pipedrive API documentation.
Persons
Manage contacts and individuals in your Pipedrive CRM.
Search Persons
Search for persons by name, email, phone, or other fields.
Operation Type: Query (Read)
Parameters:
- term
string(required): Search term to find persons - start
number(nullable): Pagination start index - limit
number(nullable): Maximum results to return
Returns:
- results
array of objects: Matching persons- id
number: Person ID - name
string(nullable): Person name - email
string(nullable): Primary email - phone
string(nullable): Primary phone - orgId
number(nullable): Organization ID - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
- id
- hasMore
boolean: Whether more results exist - nextStart
number(nullable): Next pagination start index
Example Usage:
{
"term": "john@acme.com",
"limit": 10
}
Get Person
Retrieve a specific person by their ID.
Operation Type: Query (Read)
Parameters:
- personId
number(required): The ID of the person to retrieve
Returns:
- id
number: Person ID - name
string(nullable): Full name - firstName
string(nullable): First name - lastName
string(nullable): Last name - email
string(nullable): Primary email - phone
string(nullable): Primary phone - orgId
number(nullable): Organization ID - ownerId
number(nullable): Owner user ID - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp - activeFlag
boolean: Whether person is active
Example Usage:
{
"personId": 12345
}
List Persons
Retrieve a paginated list of all persons.
Operation Type: Query (Read)
Parameters:
- start
number(nullable): Pagination start index - limit
number(nullable): Maximum results to return
Returns:
- results
array of objects: List of persons - hasMore
boolean: Whether more results exist - nextStart
number(nullable): Next pagination start index
Example Usage:
{
"start": 0,
"limit": 50
}
Add Person
Create a new person (contact) in your Pipedrive CRM.
Operation Type: Mutation (Write)
Parameters:
- name
string(required): The name of the person - email
string(nullable): Email address - phone
string(nullable): Phone number - orgId
number(nullable): ID of the organization to link the person to - ownerId
number(nullable): ID of the user who will own the person - visibleTo
number(nullable): Visibility (1=owner only, 3=entire company)
Returns:
- id
number: Created person ID - name
string(nullable): Person name - email
string(nullable): Primary email - phone
string(nullable): Primary phone - orgId
number(nullable): Organization ID - ownerId
number(nullable): Owner user ID - addTime
string(nullable): Created timestamp
Example Usage:
{
"name": "Jane Smith",
"email": "jane.smith@acme.com",
"phone": "+1-555-987-6543",
"orgId": 67890
}
Update Person
Update an existing person's information.
Operation Type: Mutation (Write)
Parameters:
- personId
number(required): The ID of the person to update - name
string(nullable): New name - email
string(nullable): New email - phone
string(nullable): New phone - orgId
number(nullable): New organization ID - ownerId
number(nullable): New owner user ID
Returns:
- id
number: Person ID - name
string(nullable): Updated name - email
string(nullable): Updated email - phone
string(nullable): Updated phone - orgId
number(nullable): Updated organization ID - ownerId
number(nullable): Updated owner user ID - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"personId": 12345,
"phone": "+1-555-123-4567",
"orgId": 67890
}
Get Person Activities
Retrieve activities (calls, meetings, tasks, etc.) associated with a person.
Operation Type: Query (Read)
Parameters:
- personId
number(required): The ID of the person to get activities for - start
number(nullable): Pagination start index - limit
number(nullable): Maximum results to return - done
boolean(nullable): Filter by done status (true=done, false=undone, null=all)
Returns:
- results
array of objects: Activities for the person- id
number: Activity ID - type
string(nullable): Activity type - subject
string(nullable): Activity subject - note
string(nullable): Activity note - done
boolean: Whether activity is done - dueDate
string(nullable): Due date - dueTime
string(nullable): Due time - duration
string(nullable): Duration - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp - markedAsDoneTime
string(nullable): When marked as done
- id
- hasMore
boolean: Whether more results exist - nextStart
number(nullable): Next pagination start index
Example Usage:
{
"personId": 12345,
"done": false,
"limit": 25
}
Deals
Manage sales deals and opportunities in your Pipedrive CRM pipeline.
Search Deals
Search for deals by title or notes.
Operation Type: Query (Read)
Parameters:
- term
string(required): Search term to find deals - start
number(nullable): Pagination start index - limit
number(nullable): Maximum results to return
Returns:
- results
array of objects: Matching deals- id
number: Deal ID - title
string(nullable): Deal title - value
number(nullable): Deal value - currency
string(nullable): Currency - status
string(nullable): Deal status - stageId
number(nullable): Stage ID - pipelineId
number(nullable): Pipeline ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
- id
- hasMore
boolean: Whether more results exist - nextStart
number(nullable): Next pagination start index
Example Usage:
{
"term": "Enterprise License",
"limit": 20
}
Get Deal
Retrieve a specific deal by its ID.
Operation Type: Query (Read)
Parameters:
- dealId
number(required): The ID of the deal to retrieve
Returns:
- id
number: Deal ID - title
string(nullable): Deal title - value
number(nullable): Deal value - currency
string(nullable): Currency - status
string(nullable): Deal status - stageId
number(nullable): Stage ID - pipelineId
number(nullable): Pipeline ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - ownerId
number(nullable): Owner user ID - expectedCloseDate
string(nullable): Expected close date - wonTime
string(nullable): When deal was won - lostTime
string(nullable): When deal was lost - closeTime
string(nullable): When deal was closed - lostReason
string(nullable): Reason for losing - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"dealId": 54321
}
List Deals
Retrieve a paginated list of all deals.
Operation Type: Query (Read)
Parameters:
- start
number(nullable): Pagination start index - limit
number(nullable): Maximum results to return
Returns:
- results
array of objects: List of deals - hasMore
boolean: Whether more results exist - nextStart
number(nullable): Next pagination start index
Example Usage:
{
"start": 0,
"limit": 50
}
Create Deal
Create a new deal in your sales pipeline.
Operation Type: Mutation (Write)
Parameters:
- title
string(required): Deal title - value
number(nullable): Deal value - currency
string(nullable): Currency (e.g., USD, EUR) - personId
number(nullable): ID of person to associate with deal - orgId
number(nullable): ID of organization to associate with deal - stageId
number(nullable): ID of stage to place deal in - status
string(nullable): Deal status (open, won, lost) - expectedCloseDate
string(nullable): Expected close date (YYYY-MM-DD)
Returns:
- id
number: Created deal ID - title
string(nullable): Deal title - value
number(nullable): Deal value - currency
string(nullable): Currency - status
string(nullable): Deal status - stageId
number(nullable): Stage ID - pipelineId
number(nullable): Pipeline ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - addTime
string(nullable): Created timestamp
Example Usage:
{
"title": "Enterprise License Agreement",
"value": 50000,
"currency": "USD",
"personId": 12345,
"stageId": 1,
"expectedCloseDate": "2024-06-30"
}
Update Deal
Update an existing deal's properties.
Operation Type: Mutation (Write)
Parameters:
- dealId
number(required): The ID of the deal to update - title
string(nullable): New title - value
number(nullable): New value - currency
string(nullable): New currency - personId
number(nullable): New person ID - orgId
number(nullable): New organization ID - stageId
number(nullable): New stage ID - status
string(nullable): New status (open, won, lost) - expectedCloseDate
string(nullable): New expected close date - lostReason
string(nullable): Reason for losing (if status is lost)
Returns:
- id
number: Deal ID - title
string(nullable): Updated title - value
number(nullable): Updated value - currency
string(nullable): Updated currency - status
string(nullable): Updated status - stageId
number(nullable): Updated stage ID - pipelineId
number(nullable): Pipeline ID - personId
number(nullable): Updated person ID - orgId
number(nullable): Updated organization ID - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"dealId": 54321,
"status": "won",
"value": 75000
}
Notes
Create and manage notes attached to deals, persons, and organizations.
Create Note
Create a new note and attach it to a deal, person, or organization.
Operation Type: Mutation (Write)
Parameters:
- content
string(required): Note content - dealId
number(nullable): ID of deal to attach note to - personId
number(nullable): ID of person to attach note to - orgId
number(nullable): ID of organization to attach note to - pinnedToDealFlag
boolean(nullable): Whether to pin note to deal - pinnedToPersonFlag
boolean(nullable): Whether to pin note to person - pinnedToOrganizationFlag
boolean(nullable): Whether to pin note to organization
Returns:
- id
number: Created note ID - content
string(nullable): Note content - dealId
number(nullable): Deal ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - addTime
string(nullable): Created timestamp
Example Usage:
{
"content": "Had a productive call with the customer. They're interested in upgrading to the enterprise plan.",
"dealId": 54321,
"pinnedToDealFlag": true
}
List Notes
Retrieve notes with optional filtering by deal, person, or organization.
Operation Type: Query (Read)
Parameters:
- start
number(nullable): Pagination start index - limit
number(nullable): Maximum results to return - dealId
number(nullable): Filter by deal ID - personId
number(nullable): Filter by person ID - orgId
number(nullable): Filter by organization ID - sort
string(nullable): Sort field and direction (e.g., "add_time DESC")
Returns:
- results
array of objects: List of notes- id
number: Note ID - content
string(nullable): Note content - dealId
number(nullable): Deal ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
- id
- hasMore
boolean: Whether more results exist - nextStart
number(nullable): Next pagination start index
Example Usage:
{
"dealId": 54321,
"sort": "add_time DESC",
"limit": 25
}
Get Note
Retrieve a specific note by its ID.
Operation Type: Query (Read)
Parameters:
- noteId
number(required): The ID of the note to retrieve
Returns:
- id
number: Note ID - content
string(nullable): Note content - userId
number(nullable): User ID who created note - dealId
number(nullable): Deal ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - leadId
string(nullable): Lead ID - pinnedToDealFlag
boolean: Pinned to deal - pinnedToPersonFlag
boolean: Pinned to person - pinnedToOrganizationFlag
boolean: Pinned to organization - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"noteId": 98765
}
Update Note
Update an existing note's content or pin status.
Operation Type: Mutation (Write)
Parameters:
- noteId
number(required): The ID of the note to update - content
string(nullable): New note content - pinnedToDealFlag
boolean(nullable): Whether to pin note to deal - pinnedToPersonFlag
boolean(nullable): Whether to pin note to person - pinnedToOrganizationFlag
boolean(nullable): Whether to pin note to organization
Returns:
- id
number: Note ID - content
string(nullable): Updated content - dealId
number(nullable): Deal ID - personId
number(nullable): Person ID - orgId
number(nullable): Organization ID - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"noteId": 98765,
"content": "Updated: Customer confirmed they want to proceed with the enterprise plan. Contract sent for review."
}
Pipelines
View sales pipeline configurations for organizing deal progression.
List Pipelines
Retrieve all pipelines in your Pipedrive account.
Operation Type: Query (Read)
Parameters:
- None
Returns:
- results
array of objects: List of pipelines- id
number: Pipeline ID - name
string: Pipeline name - urlTitle
string(nullable): URL title - orderNr
number(nullable): Order number - active
boolean: Whether pipeline is active - dealProbability
boolean: Whether deal probability is enabled - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
- id
Example Usage:
{}
Stages
View pipeline stages for tracking deal progression.
List Stages
Retrieve all stages, optionally filtered by pipeline.
Operation Type: Query (Read)
Parameters:
- pipelineId
number(nullable): Filter by pipeline ID
Returns:
- results
array of objects: List of stages- id
number: Stage ID - name
string: Stage name - pipelineId
number: Pipeline ID - orderNr
number(nullable): Order number - activeFlag
boolean: Whether stage is active - dealProbability
number(nullable): Deal probability percentage - rottenFlag
boolean: Whether deals can go rotten in this stage - rottenDays
number(nullable): Days until deal goes rotten - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
- id
Example Usage:
{
"pipelineId": 1
}
Mail Messages
Access email messages linked to your Pipedrive CRM records.
Get Mail Message
Retrieve a specific mail message by its ID.
Operation Type: Query (Read)
Parameters:
- mailMessageId
number(required): The ID of the mail message to retrieve
Returns:
- id
number: Mail message ID - subject
string(nullable): Email subject - snippet
string(nullable): Email snippet/preview - body
string(nullable): Email body - bodyUrl
string(nullable): URL to email body - from
array of objects: From addresses- email
string: Email address - name
string(nullable): Name
- email
- to
array of objects: To addresses - cc
array of objects: CC addresses - bcc
array of objects: BCC addresses - mailThreadId
number(nullable): Mail thread ID - messageTime
string(nullable): Message timestamp - hasAttachments
boolean: Whether has attachments - read
boolean: Whether message is read - draft
string(nullable): Draft status - dealId
number(nullable): Associated deal ID - personId
number(nullable): Associated person ID - orgId
number(nullable): Associated organization ID - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"mailMessageId": 11111
}
Organizations
Access organization (company) records in Pipedrive.
Get Organization
Retrieve a specific organization by its ID.
Operation Type: Query (Read)
Parameters:
- orgId
number(required): The ID of the organization to retrieve
Returns:
- id
number: Organization ID - name
string(nullable): Organization name - ownerId
number(nullable): Owner user ID - address
string(nullable): Address - ccEmail
string(nullable): CC email address - activeFlag
boolean: Whether organization is active - addTime
string(nullable): Created timestamp - updateTime
string(nullable): Updated timestamp
Example Usage:
{
"orgId": 99999
}
Common Use Cases
Deal Management:
- Search and filter deals to track pipeline health and identify opportunities
- Create deals with associations to contacts and organizations for complete context
- Update deal stages as opportunities progress through the sales cycle
- Track won/lost deals with reasons to improve sales processes
Contact Intelligence:
- Search persons by email or name to find existing contacts quickly
- Get all activities for a contact before meetings to prepare effectively
- Update contact information as roles or details change
- Link persons to organizations for complete relationship mapping
Activity Tracking:
- Create notes to log meeting outcomes and action items
- Get person activities to understand engagement history
- Track all touchpoints across deals and contacts
- Access email messages linked to CRM records for full communication context
Pipeline Analytics:
- List pipeline stages to understand your sales process structure
- Track deal progression through stages to measure conversion rates
- Monitor stage probabilities to forecast revenue accurately
- Identify rotten deals that need attention based on stage settings