Access the Pipedrive API with managed OAuth authentication. Manage deals, persons, organizations, activities, pipelines, and more for sales CRM workflows.
Reference
List Deals
GET /pipedrive/api/v1/dealsQuery parameters:
status- Filter by status:open,won,lost,deleted,all_not_deletedfilter_id- Filter ID to usestage_id- Filter by stageuser_id- Filter by userstart- Pagination start (default 0)limit- Items per page (default 100)sort- Sort field and order (e.g.,add_time DESC)
Example:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/pipedrive/api/v1/deals?status=open&limit=50')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOFGet Deal
GET /pipedrive/api/v1/deals/{id}Create Deal
POST /pipedrive/api/v1/deals
Content-Type: application/json
{
"title": "New Enterprise Deal",
"value": 50000,
"currency": "USD",
"person_id": 123,
"org_id": 456,
"stage_id": 1,
"expected_close_date": "2025-06-30"
}Update Deal
PUT /pipedrive/api/v1/deals/{id}
Content-Type: application/json
{
"title": "Updated Deal Title",
"value": 75000,
"status": "won"
}Delete Deal
DELETE /pipedrive/api/v1/deals/{id}Search Deals
GET /pipedrive/api/v1/deals/search?term=enterpriseList Persons
GET /pipedrive/api/v1/personsQuery parameters:
filter_id- Filter IDstart- Pagination startlimit- Items per pagesort- Sort field and order
Get Person
GET /pipedrive/api/v1/persons/{id}Create Person
POST /pipedrive/api/v1/persons
Content-Type: application/json
{
"name": "John Doe",
"email": ["john@example.com"],
"phone": ["+1234567890"],
"org_id": 456,
"visible_to": 3
}Update Person
PUT /pipedrive/api/v1/persons/{id}
Content-Type: application/json
{
"name": "John Smith",
"email": ["john.smith@example.com"]
}Delete Person
DELETE /pipedrive/api/v1/persons/{id}Search Persons
GET /pipedrive/api/v1/persons/search?term=johnList Organizations
GET /pipedrive/api/v1/organizationsGet Organization
GET /pipedrive/api/v1/organizations/{id}Create Organization
POST /pipedrive/api/v1/organizations
Content-Type: application/json
{
"name": "Acme Corporation",
"address": "123 Main St, City, Country",
"visible_to": 3
}Update Organization
PUT /pipedrive/api/v1/organizations/{id}
Content-Type: application/json
{
"name": "Acme Corp International"
}Delete Organization
DELETE /pipedrive/api/v1/organizations/{id}List Activities
GET /pipedrive/api/v1/activitiesQuery parameters:
type- Activity type (e.g.,call,meeting,task,email)done- Filter by completion (0 or 1)user_id- Filter by userstart_date- Filter by start dateend_date- Filter by end date
Get Activity
GET /pipedrive/api/v1/activities/{id}Create Activity
POST /pipedrive/api/v1/activities
Content-Type: application/json
{
"subject": "Follow-up call",
"type": "call",
"due_date": "2025-03-15",
"due_time": "14:00",
"duration": "00:30",
"deal_id": 789,
"person_id": 123,
"note": "Discuss contract terms"
}Update Activity
PUT /pipedrive/api/v1/activities/{id}
Content-Type: application/json
{
"done": 1,
"note": "Completed - customer agreed to terms"
}Delete Activity
DELETE /pipedrive/api/v1/activities/{id}List Pipelines
GET /pipedrive/api/v1/pipelinesGet Pipeline
GET /pipedrive/api/v1/pipelines/{id}List Stages
GET /pipedrive/api/v1/stagesQuery parameters:
pipeline_id- Filter by pipeline
Get Stage
GET /pipedrive/api/v1/stages/{id}List Notes
GET /pipedrive/api/v1/notesQuery parameters:
deal_id- Filter by dealperson_id- Filter by personorg_id- Filter by organization
Create Note
POST /pipedrive/api/v1/notes
Content-Type: application/json
{
"content": "Meeting notes: Discussed pricing and timeline",
"deal_id": 789,
"pinned_to_deal_flag": 1
}List Users
GET /pipedrive/api/v1/usersGet Current User
GET /pipedrive/api/v1/users/me