Command reference
All 145 commands in pdcli v0.18.0. Every command also
accepts the global flags --output, --jq,
--fields, --profile, --limit, --no-color, --verbose,
--no-retry, and --timeout. Run pdcli <command> --help for the live version.
Top-level commands
Section titled “Top-level commands”pdcli api
Section titled “pdcli api”Make a raw API request (host-locked to your Pipedrive company domain)
pdcli api <method> <path> [flags]| Flag | Description |
|---|---|
--body <value> | Request body (JSON string, @file, or pipe stdin) |
pdcli api GET /api/v2/dealspdcli api GET /api/v1/currenciespdcli api POST /api/v2/deals --body '{"title":"New deal"}'pdcli api DELETE /api/v1/webhooks/1pdcli audit
Section titled “pdcli audit”Data-quality audit: stale deals, missing fields, duplicates, overdue pileups
pdcli audit [flags]| Flag | Description |
|---|---|
--checks <value> | Comma-separated subset of checks (stale-deals, no-next-activity, past-close-date, missing-fields, ancient-deals, missing-close-time, duplicate-persons, uncontactable-persons, duplicate-orgs, overdue-activities, currency-missing) |
--strict | Exit 1 when any must-severity check has findings |
pdcli auditpdcli audit --checks stale-deals,duplicate-persons --verbosepdcli audit --strict # exit 1 on must-severity findings (CI)pdcli backup
Section titled “pdcli backup”Export the whole account to a JSON tree (resumable, one file per resource)
pdcli backup [flags]| Flag | Description |
|---|---|
--dir <value> | Target directory for the export |
--resume | Skip resources already completed in a previous run |
pdcli backuppdcli backup --dir ./my-backuppdcli backup --dir ./my-backup --resumepdcli changes
Section titled “pdcli changes”Incremental change feed across deals/persons/orgs/activities/products. Self-advancing watermark: each run resumes where the last left off and advances it past the newest change only after a successful emit, so a failed run replays rather than skips (use --peek to read without advancing).
pdcli changes [flags]| Flag | Description |
|---|---|
--since <value> | Start point: RFC3339 timestamp or Nd/Nm. Omit to resume from the stored watermark. |
--peek | Read without advancing the stored watermark |
pdcli changes --since 7dpdcli changespdcli changes --peek --output jsonpdcli digest
Section titled “pdcli digest”Monday packet: one pipeline-scoped fetch fanned into velocity, health, coverage, funnel, forecast and hygiene. --deep adds changelog-mined aging/slippage/stage-skips; --format md|html (+ --out) writes a shareable artifact for cron → Slack/email.
pdcli digest [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
--period <value> | Trailing window for closed deals / the goal (Nd or Nm) |
--target <value> | Manual revenue quota override (skips the Goals API) |
--commit-threshold <value> | Min effective win-probability (%) counted toward commit |
--deep | Mine each deal’s changelog to add aging/slippage/stage-skips (one request per deal; warns over 100) |
--format <md|html> | Render the packet as a shareable artifact |
--out <value> | Write the --format artifact to this file instead of stdout |
pdcli digestpdcli digest --pipeline 1 --output jsonpdcli digest --deeppdcli digest --format md --out monday.mdpdcli doctor
Section titled “pdcli doctor”Run diagnostic checks on the CLI environment
pdcli doctor [flags]pdcli doctorpdcli funnel
Section titled “pdcli funnel”Stage-to-stage conversion approximated from closed deals (final stage reached)
pdcli funnel [flags]| Flag | Description |
|---|---|
--period <value> | Trailing window for closed deals (Nd or Nm) |
--pipeline <value> | Pipeline ID (required when the account has several) |
--exact | Mine real stage transitions from each deal’s changelog instead of approximating from the final stage (one request per deal). --period scopes only closed (won/lost) deals; open deals are always included. |
pdcli funnelpdcli funnel --pipeline 1 --period 180dpdcli search
Section titled “pdcli search”Search across deals, persons, organizations, products, leads, files, and projects
pdcli search <term> [flags]| Flag | Description |
|---|---|
--item-types <value> | Comma-separated item types (deal,person,organization,product,lead,file,mail_attachment,project) |
--exact | Exact match (allows 1-character terms) |
--status <open|won|lost> | Filter by deal status (only with --item-types deal) |
--person <value> | Filter by person ID (only with --item-types deal) |
--org <value> | Filter by organization ID (only with --item-types deal) |
pdcli search "acme"pdcli search "acme" --item-types deal,person --output jsonpdcli search "acme" --item-types deal --status openpdcli version
Section titled “pdcli version”Show CLI version and environment info
pdcli version [flags]pdcli versionpdcli watch
Section titled “pdcli watch”Anomaly poller: run the hygiene checks and emit only findings that are NEW since the last run, advancing a per-profile state. Exits 8 when new findings arm the gate (default: must-severity) so cron can branch — pdcli watch \|\| notify. --peek reads without advancing state.
pdcli watch [flags]| Flag | Description |
|---|---|
--checks <value> | Comma-separated subset of checks (stale-deals, no-next-activity, past-close-date, missing-fields, ancient-deals, missing-close-time, duplicate-persons, uncontactable-persons, duplicate-orgs, overdue-activities, currency-missing) |
--severity <must|should|all> | Which severities arm the exit-8 gate |
--peek | Emit and gate without advancing the stored state |
pdcli watchpdcli watch --checks stale-deals,past-close-datepdcli watch --severity all --output jsonpdcli watch --peekpdcli activity
Section titled “pdcli activity”pdcli activity create
Section titled “pdcli activity create”Create an activity
pdcli activity create [flags]| Flag | Description |
|---|---|
--subject <value> | Activity subject |
--type <value> | Activity type |
--due-date <value> | Due date (YYYY-MM-DD) |
--due-time <value> | Due time (HH:MM) |
--duration <value> | Duration (HH:MM) |
--deal <value> | Linked deal ID |
--person <value> | Linked person ID |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--note <value> | Activity note |
--done | Mark the activity as done |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli activity create --subject "Demo call" --type call --due-date 2026-06-10pdcli activity create --subject "Follow up" --field "Outcome=Positive"pdcli activity create --subject "Raw" --body '{"priority":5}'pdcli activity delete
Section titled “pdcli activity delete”Delete an activity
pdcli activity delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli activity delete 9pdcli activity delete 9 --yespdcli activity get
Section titled “pdcli activity get”Get an activity by ID
pdcli activity get <id> [flags]pdcli activity get 9pdcli activity get 9 --output jsonpdcli activity list
Section titled “pdcli activity list”List activities
pdcli activity list [flags]| Flag | Description |
|---|---|
--owner <value> | Filter by owner (user) ID |
--deal <value> | Filter by deal ID |
--person <value> | Filter by person ID |
--org <value> | Filter by organization ID |
--type <value> | Filter by activity type key (applied client-side) |
--done | Only completed activities |
--todo | Only open (not done) activities |
--filter <value> | Filter by saved filter ID |
--ids <value> | Comma-separated IDs to fetch (max 100) |
--sort-by <id|update_time|add_time|due_date> | Sort field |
--sort-direction <asc|desc> | Sort direction |
--updated-since <value> | Only items updated at/after this RFC3339 time (no fractional seconds) |
--updated-until <value> | Only items updated before this RFC3339 time (no fractional seconds) |
pdcli activity listpdcli activity list --todo --deal 42pdcli activity list --type call --output jsonpdcli activity type list
Section titled “pdcli activity type list”List activity types. The Key (key_string) is what activity --type takes.
pdcli activity type list [flags]pdcli activity type listpdcli activity type list --output jsonpdcli activity update
Section titled “pdcli activity update”Update an activity (v2 PATCH — only provided fields change)
pdcli activity update <id> [flags]| Flag | Description |
|---|---|
--subject <value> | Activity subject |
--type <value> | Activity type |
--due-date <value> | Due date (YYYY-MM-DD) |
--due-time <value> | Due time (HH:MM) |
--duration <value> | Duration (HH:MM) |
--deal <value> | Linked deal ID |
--person <value> | Linked person ID |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--note <value> | Activity note |
--done | Mark the activity as done |
--undone | Mark the activity as not done |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli activity update 9 --subject "Renamed"pdcli activity update 9 --donepdcli activity update 9 --field "Outcome=Positive"pdcli alias
Section titled “pdcli alias”pdcli alias list
Section titled “pdcli alias list”List all configured aliases
pdcli alias list [flags]pdcli alias listpdcli alias set
Section titled “pdcli alias set”Create or update an alias
pdcli alias set <name> <command> [flags]pdcli alias set wd "deal list --status won"pdcli alias set open "deal list --status open --limit 50"pdcli alias unset
Section titled “pdcli alias unset”Remove an alias
pdcli alias unset <name> [flags]pdcli alias unset wdpdcli audit
Section titled “pdcli audit”pdcli audit stage-skips
Section titled “pdcli audit stage-skips”Stage-skip & sandbagging audit: deals that jumped gates or were pulled backward, mined from each deal’s changelog (one request per deal)
pdcli audit stage-skips [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
pdcli audit stage-skipspdcli audit stage-skips --pipeline 1 --output jsonpdcli auth
Section titled “pdcli auth”pdcli auth login
Section titled “pdcli auth login”Authenticate with Pipedrive (personal API token, or OAuth with --oauth)
pdcli auth login [flags]| Flag | Description |
|---|---|
--company <value> | Company domain ("acme" from acme.pipedrive.com — full URL accepted) |
--api-token <value> | Personal API token (app.pipedrive.com/settings/api). Prefer the prompt or env so the token stays out of shell history |
--oauth | Use OAuth 2.0 via your own Developer Hub app (browser flow) |
--client-id <value> | OAuth app client ID (--oauth; env PDCLI_CLIENT_ID) |
--client-secret <value> | OAuth app client secret (--oauth; env PDCLI_CLIENT_SECRET) |
--port <value> | OAuth callback port — must match the app's registered callback URL (--oauth) |
pdcli auth loginpdcli auth login --company acme --api-token <token>pdcli auth login --oauthpdcli auth login --oauth --client-id <id> --client-secret <secret>pdcli auth logout
Section titled “pdcli auth logout”Log out and remove the stored API token
pdcli auth logout [flags]pdcli auth logoutpdcli auth status
Section titled “pdcli auth status”Show current authentication status
pdcli auth status [flags]pdcli auth statuspdcli backup
Section titled “pdcli backup”pdcli backup diff
Section titled “pdcli backup diff”Field-level diff between two backup snapshots — added/removed/modified records and per-field changes, computed locally with no API calls
pdcli backup diff <a> <b> [flags]| Flag | Description |
|---|---|
--raw | Do not resolve custom-field names/option labels (show raw hash keys/ids) |
pdcli backup diff ./backup-mon ./backup-tuepdcli backup diff ./old ./new --output jsonpdcli backup diff ./old ./new --rawpdcli config
Section titled “pdcli config”pdcli config get
Section titled “pdcli config get”Get a config value for the active profile
pdcli config get <key> [flags]pdcli config get company_domainpdcli config get default_outputpdcli config list
Section titled “pdcli config list”List all config for the active profile
pdcli config list [flags]pdcli config listpdcli config set
Section titled “pdcli config set”Set a config value for the active profile
pdcli config set <key> <value> [flags]pdcli config set company_domain acmepdcli config set default_output jsonpdcli config unset
Section titled “pdcli config unset”Remove a config key from the active profile
pdcli config unset <key> [flags]pdcli config unset default_outputpdcli deal
Section titled “pdcli deal”pdcli deal bulk-update
Section titled “pdcli deal bulk-update”Update many deals at once (by --ids, a saved --filter, or ids piped on stdin)
pdcli deal bulk-update [flags]| Flag | Description |
|---|---|
--ids <value> | Comma-separated deal IDs |
--filter <value> | Pipedrive saved filter ID to select deals |
--stage <value> | Move to stage ID |
--pipeline <value> | Move to pipeline ID |
--status <open|won|lost> | Set status |
--owner <value> | Assign owner (user) ID |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
--dry-run | List the targets without updating anything |
-y, --yes | Skip the confirmation prompt |
pdcli deal bulk-update --ids 1,2,3 --stage 5pdcli deal bulk-update --filter 9 --status wonpdcli deal list --status open --jq '.[].id' | pdcli deal bulk-update --owner 42pdcli deal bulk-update --filter 9 --stage 5 --dry-runpdcli deal context
Section titled “pdcli deal context”One-call denormalized deal bundle — deal + person + org + activities + notes + products + participants, custom fields resolved to names and risk flags derived. Prompt-ready for agents (the joins v2 will not do).
pdcli deal context <id> [flags]| Flag | Description |
|---|---|
--no-activities | Skip the activities slice |
--no-notes | Skip the notes slice |
--no-products | Skip the products slice |
--no-participants | Skip the participants slice |
--activity-limit <value> | Max activities to include |
--note-limit <value> | Max notes to include |
pdcli deal context 42pdcli deal context 42 --no-notes --no-productspdcli deal context 42 --output jsonpdcli deal convert
Section titled “pdcli deal convert”Convert a deal to a lead. The conversion runs as an async job; use --wait to poll until it finishes. WARNING: on success the source deal is deleted.
pdcli deal convert <id> [flags]| Flag | Description |
|---|---|
--wait | Poll the conversion status until it finishes |
--timeout-secs <value> | Max seconds to poll when --wait is set |
-y, --yes | Skip the confirmation prompt |
pdcli deal convert 42pdcli deal convert 42 --yespdcli deal convert 42 --waitpdcli deal create
Section titled “pdcli deal create”Create a deal
pdcli deal create [flags]| Flag | Description |
|---|---|
--title <value> | Deal title |
--value <value> | Deal value |
--currency <value> | Deal currency (e.g. EUR) |
--status <open|won|lost> | Deal status |
--stage <value> | Stage ID |
--pipeline <value> | Pipeline ID |
--person <value> | Linked person ID |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--probability <value> | Success probability (0-100) |
--expected-close-date <value> | Expected close date (YYYY-MM-DD) |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli deal create --title "Acme renewal" --value 5000 --currency EURpdcli deal create --title "Sized" --field "Deal Size=Large"pdcli deal create --title "Raw" --body '{"probability":75}'pdcli deal delete
Section titled “pdcli deal delete”Delete a deal
pdcli deal delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli deal delete 42pdcli deal delete 42 --yespdcli deal follower add
Section titled “pdcli deal follower add”Add a follower (user) to a deal
pdcli deal follower add <id> [flags]| Flag | Description |
|---|---|
--user <value> | User ID |
pdcli deal follower add 42 --user 5pdcli deal follower add 42 --user 5 --output jsonpdcli deal follower list
Section titled “pdcli deal follower list”List followers of a deal
pdcli deal follower list <id> [flags]pdcli deal follower list 42pdcli deal follower list 42 --output jsonpdcli deal follower remove
Section titled “pdcli deal follower remove”Remove a follower from a deal
pdcli deal follower remove <id> [flags]| Flag | Description |
|---|---|
--user <value> | User ID |
-y, --yes | Skip the confirmation prompt |
pdcli deal follower remove 42 --user 5pdcli deal follower remove 42 --user 5 --yespdcli deal get
Section titled “pdcli deal get”Get a deal by ID
pdcli deal get <id> [flags]pdcli deal get 42pdcli deal get 42 --output jsonpdcli deal history
Section titled “pdcli deal history”Field-change history for a deal, newest-first (the API’s native order)
pdcli deal history <id> [flags]| Flag | Description |
|---|---|
--field <value> | Show only changes to this field key (e.g. stage_id) |
pdcli deal history 42pdcli deal history 42 --field stage_idpdcli deal history 42 --limit 20 --resolve-fieldspdcli deal list
Section titled “pdcli deal list”List deals
pdcli deal list [flags]| Flag | Description |
|---|---|
--archived | List archived deals instead of active ones |
--status <open|won|lost|deleted> | Filter by status |
--stage <value> | Filter by stage ID |
--pipeline <value> | Filter by pipeline ID |
--owner <value> | Filter by owner (user) ID |
--person <value> | Filter by person ID |
--org <value> | Filter by organization ID |
--filter <value> | Filter by saved filter ID |
--ids <value> | Comma-separated IDs to fetch (max 100) |
--sort-by <id|update_time|add_time> | Sort field |
--sort-direction <asc|desc> | Sort direction |
--updated-since <value> | Only items updated at/after this RFC3339 time (no fractional seconds) |
--updated-until <value> | Only items updated before this RFC3339 time (no fractional seconds) |
pdcli deal listpdcli deal list --status won --limit 50pdcli deal list --stage 3 --output jsonpdcli deal participant add
Section titled “pdcli deal participant add”Add a participant (person) to a deal
pdcli deal participant add <id> [flags]| Flag | Description |
|---|---|
--person <value> | Person ID |
pdcli deal participant add 42 --person 10pdcli deal participant add 42 --person 10 --output jsonpdcli deal participant list
Section titled “pdcli deal participant list”List participants of a deal
pdcli deal participant list <id> [flags]pdcli deal participant list 42pdcli deal participant list 42 --output jsonpdcli deal participant remove
Section titled “pdcli deal participant remove”Remove a participant from a deal
pdcli deal participant remove <id> [flags]| Flag | Description |
|---|---|
--participant <value> | Deal-participant ID |
-y, --yes | Skip the confirmation prompt |
pdcli deal participant remove 42 --participant 3pdcli deal participant remove 42 --participant 3 --yespdcli deal product add
Section titled “pdcli deal product add”Attach a product to a deal
pdcli deal product add <id> [flags]| Flag | Description |
|---|---|
--product <value> | Product ID |
--price <value> | Item price (per unit) |
--quantity <value> | Quantity |
--discount <value> | Discount value |
--discount-type <percentage|amount> | Discount type |
--tax <value> | Product tax percentage |
--comments <value> | Comments |
pdcli deal product add 42 --product 10 --price 90pdcli deal product add 42 --product 10 --price 90 --quantity 3pdcli deal product add 42 --product 10 --price 90 --discount 10 --discount-type percentagepdcli deal product list
Section titled “pdcli deal product list”List products attached to a deal
pdcli deal product list <id> [flags]| Flag | Description |
|---|---|
--sort-by <id|add_time|update_time|order_nr> | Field to sort by |
--sort-direction <asc|desc> | Sort direction |
pdcli deal product list 42pdcli deal product list 42 --sort-by add_time --sort-direction descpdcli deal product list 42 --output jsonpdcli deal product remove
Section titled “pdcli deal product remove”Remove a product attached to a deal
pdcli deal product remove <id> [flags]| Flag | Description |
|---|---|
--attachment <value> | Deal-product (attachment) ID |
-y, --yes | Skip the confirmation prompt |
pdcli deal product remove 42 --attachment 3pdcli deal product remove 42 --attachment 3 --yespdcli deal product update
Section titled “pdcli deal product update”Update a product attached to a deal (v2 PATCH — only provided fields change)
pdcli deal product update <id> [flags]| Flag | Description |
|---|---|
--attachment <value> | Deal-product (attachment) ID |
--product <value> | Product ID |
--price <value> | Item price (per unit) |
--quantity <value> | Quantity |
--discount <value> | Discount value |
--discount-type <percentage|amount> | Discount type |
--tax <value> | Product tax percentage |
--comments <value> | Comments |
pdcli deal product update 42 --attachment 3 --quantity 5pdcli deal product update 42 --attachment 3 --price 120pdcli deal product update 42 --attachment 3 --discount 15 --discount-type amountpdcli deal summary
Section titled “pdcli deal summary”Summary of open/won/lost deals, totalled per currency
pdcli deal summary [flags]| Flag | Description |
|---|---|
--status <open|won|lost> | Filter by status |
--pipeline <value> | Filter by pipeline ID |
--stage <value> | Filter by stage ID |
--filter <value> | Filter by saved filter ID |
pdcli deal summarypdcli deal summary --status open --pipeline 1pdcli deal summary --output jsonpdcli deal update
Section titled “pdcli deal update”Update a deal (v2 PATCH — only provided fields change)
pdcli deal update <id> [flags]| Flag | Description |
|---|---|
--title <value> | Deal title |
--value <value> | Deal value |
--currency <value> | Deal currency (e.g. EUR) |
--status <open|won|lost> | Deal status |
--stage <value> | Stage ID |
--pipeline <value> | Pipeline ID |
--person <value> | Linked person ID |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--probability <value> | Success probability (0-100) |
--expected-close-date <value> | Expected close date (YYYY-MM-DD) |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli deal update 42 --stage 5pdcli deal update 42 --status wonpdcli deal update 42 --field "Deal Size=Large"pdcli deal upsert
Section titled “pdcli deal upsert”Idempotent deal upsert: match by --by, then create or PATCH only the changed fields. Refuses (exit 65) if more than one record matches.
pdcli deal upsert <value> [flags]| Flag | Description |
|---|---|
--by <value> | Match field: title, or a searchable custom field |
--field <value> | Field to set as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge |
--dry-run | Preview the action without writing |
pdcli deal upsert "Acme expansion" --by title --field "Stage=Won"pdcli deal upsert "D-42" --by "External ID" --body '{"value":5000}'pdcli deal upsert "Acme expansion" --by title --field "Stage=Won" --dry-runpdcli field
Section titled “pdcli field”pdcli field create
Section titled “pdcli field create”Create a custom field on an entity
pdcli field create <entity> [flags]| Flag | Description |
|---|---|
--name <value> | Field name (label) |
--type <value> | Field type (e.g. varchar, double, monetary, enum, set) |
--options <value> | Comma-separated option labels (required for enum/set) |
pdcli field create deal --name "Budget" --type doublepdcli field create person --name "Tier" --type enum --options "Gold,Silver,Bronze"pdcli field delete
Section titled “pdcli field delete”Delete a custom field (data stored on records is lost)
pdcli field delete <entity> <field> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli field delete deal dcf558aac1ae4e8c4f849ba5e668430d8df9be12pdcli field delete deal dcf558aac1ae4e8c4f849ba5e668430d8df9be12 --yespdcli field get
Section titled “pdcli field get”Show one field by human name or hashed key
pdcli field get <entity> <field> [flags]pdcli field get deal "Deal Size"pdcli field get deal dcf558aac1ae4e8c4f849ba5e668430d8df9be12pdcli field list
Section titled “pdcli field list”List fields for an entity, including custom-field hash keys
pdcli field list <entity> [flags]pdcli field list dealpdcli field list person --output jsonpdcli field option add
Section titled “pdcli field option add”Add an option to an enum/set custom field
pdcli field option add <entity> <field> [flags]| Flag | Description |
|---|---|
--label <value> | Label for the new option |
pdcli field option add deal dcf558aac1ae4e8c4f849ba5e668430d8df9be12 --label "Critical"pdcli field option remove
Section titled “pdcli field option remove”Remove an option from an enum/set custom field (records lose the value)
pdcli field option remove <entity> <field> [flags]| Flag | Description |
|---|---|
--option <value> | Option ID to remove (see field get) |
-y, --yes | Skip the confirmation prompt |
pdcli field option remove deal dcf558aac1ae4e8c4f849ba5e668430d8df9be12 --option 4pdcli field update
Section titled “pdcli field update”Update a custom field (field_code and field_type cannot change)
pdcli field update <entity> <field> [flags]| Flag | Description |
|---|---|
--name <value> | New field name (label) |
pdcli field update deal dcf558aac1ae4e8c4f849ba5e668430d8df9be12 --name "New name"pdcli file
Section titled “pdcli file”pdcli file delete
Section titled “pdcli file delete”Delete a file
pdcli file delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli file delete 5pdcli file delete 5 --yespdcli file download
Section titled “pdcli file download”Download a file by ID
pdcli file download <id> [flags]| Flag | Description |
|---|---|
--out <value> | Path to write to (default: file name) |
pdcli file download 5pdcli file download 5 --out ./report.pdfpdcli file get
Section titled “pdcli file get”Get a file by ID
pdcli file get <id> [flags]pdcli file get 5pdcli file get 5 --output jsonpdcli file list
Section titled “pdcli file list”List files
pdcli file list [flags]pdcli file listpdcli file list --limit 50 --output jsonpdcli file remote-link
Section titled “pdcli file remote-link”Link an existing remote file (Google Drive) to an item
pdcli file remote-link [flags]| Flag | Description |
|---|---|
--deal <value> | Link to a deal ID |
--org <value> | Link to an organization ID |
--person <value> | Link to a person ID |
--remote-id <value> | ID of the remote file (e.g. Google Drive file ID) |
--remote-location <googledrive> | Remote storage location |
pdcli file remote-link --deal 42 --remote-id 1AbCpdcli file remote-link --person 9 --remote-id 1AbC --output jsonpdcli file update
Section titled “pdcli file update”Update a file name and/or description
pdcli file update <id> [flags]| Flag | Description |
|---|---|
--name <value> | The visible name of the file |
--description <value> | The description of the file |
pdcli file update 5 --name report.pdfpdcli file update 5 --description "Signed contract"pdcli file upload
Section titled “pdcli file upload”Upload a file
pdcli file upload <path> [flags]| Flag | Description |
|---|---|
--deal <value> | Associate with a deal ID |
--person <value> | Associate with a person ID |
--org <value> | Associate with an organization ID |
pdcli file upload ./report.pdfpdcli file upload ./report.pdf --deal 42pdcli filter
Section titled “pdcli filter”pdcli filter delete
Section titled “pdcli filter delete”Delete a filter
pdcli filter delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli filter delete 5pdcli filter delete 5 --yespdcli filter get
Section titled “pdcli filter get”Get a filter by ID
pdcli filter get <id> [flags]pdcli filter get 5pdcli filter get 5 --output jsonpdcli filter list
Section titled “pdcli filter list”List filters
pdcli filter list [flags]| Flag | Description |
|---|---|
--type <deals|leads|org|people|products|activity|projects> | Filter by type |
pdcli filter listpdcli filter list --type deals --output jsonpdcli goal
Section titled “pdcli goal”pdcli goal list
Section titled “pdcli goal list”List goals
pdcli goal list [flags]| Flag | Description |
|---|---|
--assignee <value> | Filter by assignee (user) ID |
--type <value> | Filter by goal type name |
pdcli goal listpdcli goal list --assignee 7 --type deals_won --output jsonpdcli lead
Section titled “pdcli lead”pdcli lead convert
Section titled “pdcli lead convert”Convert a lead to a deal. The conversion runs as an async job; use --wait to poll until it finishes. On success the lead is deleted.
pdcli lead convert <id> [flags]| Flag | Description |
|---|---|
--stage <value> | Stage ID for the new deal (a pipeline is inferred from it) |
--pipeline <value> | Pipeline ID for the new deal (ignored when --stage is set) |
--wait | Poll the conversion status until it finishes |
--timeout-secs <value> | Max seconds to poll when --wait is set |
pdcli lead convert adf21080-0e10-11eb-879b-05d71fb426ecpdcli lead convert adf21080-0e10-11eb-879b-05d71fb426ec --stage 7pdcli lead convert adf21080-0e10-11eb-879b-05d71fb426ec --waitpdcli lead create
Section titled “pdcli lead create”Create a lead
pdcli lead create [flags]| Flag | Description |
|---|---|
--title <value> | Lead title |
--person <value> | Linked person ID |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--value <value> | Lead value amount (requires --currency) |
--currency <value> | Lead value currency (requires --value) |
--expected-close-date <value> | Expected close date (YYYY-MM-DD) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli lead create --title "Acme renewal" --value 5000 --currency EURpdcli lead create --title "Linked" --person 4 --org 5pdcli lead create --title "Raw" --body '{"visible_to":"3"}'pdcli lead delete
Section titled “pdcli lead delete”Delete a lead
pdcli lead delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli lead delete adf21080-0e10-11eb-879b-05d71fb426ecpdcli lead delete adf21080-0e10-11eb-879b-05d71fb426ec --yespdcli lead get
Section titled “pdcli lead get”Get a lead by ID
pdcli lead get <id> [flags]pdcli lead get adf21080-0e10-11eb-879b-05d71fb426ecpdcli lead get adf21080-0e10-11eb-879b-05d71fb426ec --output jsonpdcli lead label list
Section titled “pdcli lead label list”List lead labels
pdcli lead label list [flags]pdcli lead label listpdcli lead label list --output jsonpdcli lead list
Section titled “pdcli lead list”List leads
pdcli lead list [flags]| Flag | Description |
|---|---|
--owner <value> | Filter by owner (user) ID |
--person <value> | Filter by person ID |
--org <value> | Filter by organization ID |
pdcli lead listpdcli lead list --owner 3 --output jsonpdcli lead update
Section titled “pdcli lead update”Update a lead (v1 PATCH — only provided fields change)
pdcli lead update <id> [flags]| Flag | Description |
|---|---|
--title <value> | Lead title |
--person <value> | Linked person ID |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--value <value> | Lead value amount (requires --currency) |
--currency <value> | Lead value currency (requires --value) |
--expected-close-date <value> | Expected close date (YYYY-MM-DD) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli lead update adf21080-0e10-11eb-879b-05d71fb426ec --title "Renamed"pdcli lead update adf21080-0e10-11eb-879b-05d71fb426ec --value 7500 --currency USDpdcli metrics
Section titled “pdcli metrics”pdcli metrics aging
Section titled “pdcli metrics aging”Deal aging: days-in-current-stage per open deal, bucketed, with a p90-dwell flag (mines each open deal’s changelog, one request per deal)
pdcli metrics aging [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
--buckets <value> | Comma-separated day thresholds; cohorts are 0-N1/N1-N2/.../last+ (lower bound inclusive, upper exclusive) |
pdcli metrics agingpdcli metrics aging --pipeline 1 --buckets 30,60,90pdcli metrics conversion-matrix
Section titled “pdcli metrics conversion-matrix”Stage-transition matrix: every stage move (incl. backward & re-entry) mined from per-deal changelogs, with Won/Lost terminal columns
pdcli metrics conversion-matrix [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
pdcli metrics conversion-matrixpdcli metrics conversion-matrix --pipeline 1 --output jsonpdcli metrics coverage
Section titled “pdcli metrics coverage”Pipeline coverage: probability-weighted open pipeline vs the revenue still needed to hit quota
pdcli metrics coverage [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
--period <value> | Goal measurement window (Nd or Nm) |
--target <value> | Manual revenue quota override (skips the Goals API entirely) |
--currency <value> | Restrict the open pipeline to this currency code (required when the pipeline holds deals in more than one currency) |
pdcli metrics coveragepdcli metrics coverage --pipeline 1pdcli metrics coverage --target 250000pdcli metrics coverage --period 1m --output jsonpdcli metrics forecast
Section titled “pdcli metrics forecast”Time-phased forecast: open pipeline bucketed by close-month into commit / best-case / weighted views, segregated per currency
pdcli metrics forecast [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
--commit-threshold <value> | Min effective win-probability (%) for a deal to count toward commit |
pdcli metrics forecastpdcli metrics forecast --pipeline 1pdcli metrics forecast --commit-threshold 80 --output jsonpdcli metrics slippage
Section titled “pdcli metrics slippage”Close-date slippage: open deals whose expected close date keeps getting pushed out (mined per-deal changelog)
pdcli metrics slippage [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
--min-pushes <value> | Only show deals pushed forward at least this many times |
pdcli metrics slippagepdcli metrics slippage --pipeline 1pdcli metrics slippage --min-pushes 2 --output jsonpdcli metrics velocity
Section titled “pdcli metrics velocity”Sales Velocity Equation: (open × win rate × avg won value) / cycle days
pdcli metrics velocity [flags]| Flag | Description |
|---|---|
--period <value> | Trailing window for closed deals (Nd or Nm) |
--pipeline <value> | Restrict to a pipeline ID |
--owner <value> | Restrict to an owner (user) ID |
pdcli metrics velocitypdcli metrics velocity --period 30d --pipeline 1pdcli note
Section titled “pdcli note”pdcli note comment add
Section titled “pdcli note comment add”Add a comment to a note
pdcli note comment add <noteId> [flags]| Flag | Description |
|---|---|
--content <value> | Comment content |
pdcli note comment add 5 --content "Nice work"pdcli note comment add 5 --content "Reviewed" --output jsonpdcli note comment delete
Section titled “pdcli note comment delete”Delete a comment from a note
pdcli note comment delete <noteId> [flags]| Flag | Description |
|---|---|
--comment <value> | Comment ID (UUID) |
-y, --yes | Skip the confirmation prompt |
pdcli note comment delete 5 --comment <uuid>pdcli note comment delete 5 --comment <uuid> --yespdcli note comment list
Section titled “pdcli note comment list”List comments on a note
pdcli note comment list <noteId> [flags]pdcli note comment list 5pdcli note comment list 5 --output jsonpdcli note comment update
Section titled “pdcli note comment update”Update a comment on a note
pdcli note comment update <noteId> [flags]| Flag | Description |
|---|---|
--comment <value> | Comment ID (UUID) |
--content <value> | New comment content |
pdcli note comment update 5 --comment <uuid> --content "Edited"pdcli note create
Section titled “pdcli note create”Create a note
pdcli note create [flags]| Flag | Description |
|---|---|
--content <value> | Note content |
--deal <value> | Attach to deal ID |
--person <value> | Attach to person ID |
--org <value> | Attach to organization ID |
--lead <value> | Attach to lead ID (UUID) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli note create --content "Called the lead"pdcli note create --content "Follow up" --deal 42pdcli note create --content "Pinned" --body '{"pinned_to_deal_flag":1}'pdcli note delete
Section titled “pdcli note delete”Delete a note
pdcli note delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli note delete 5pdcli note delete 5 --yespdcli note get
Section titled “pdcli note get”Get a note by ID
pdcli note get <id> [flags]pdcli note get 5pdcli note get 5 --output jsonpdcli note list
Section titled “pdcli note list”List notes
pdcli note list [flags]| Flag | Description |
|---|---|
--deal <value> | Filter by deal ID |
--person <value> | Filter by person ID |
--org <value> | Filter by organization ID |
pdcli note listpdcli note list --deal 42 --output jsonpdcli note update
Section titled “pdcli note update”Update a note (only provided fields change)
pdcli note update <id> [flags]| Flag | Description |
|---|---|
--content <value> | Note content |
--body <value> | Raw JSON body to merge (flags win) |
pdcli note update 5 --content "Revised note"pdcli note update 5 --body '{"pinned_to_deal_flag":1}'pdcli org
Section titled “pdcli org”pdcli org create
Section titled “pdcli org create”Create an organization
pdcli org create [flags]| Flag | Description |
|---|---|
--name <value> | Organization name |
--owner <value> | Owner (user) ID |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli org create --name "Acme Corp"pdcli org create --name "Tiered" --field "Tier=Gold"pdcli org create --name "Raw" --body '{"visible_to":3}'pdcli org delete
Section titled “pdcli org delete”Delete an organization
pdcli org delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli org delete 7pdcli org delete 7 --yespdcli org follower add
Section titled “pdcli org follower add”Add a follower (user) to an organization
pdcli org follower add <id> [flags]| Flag | Description |
|---|---|
--user <value> | User ID |
pdcli org follower add 42 --user 5pdcli org follower add 42 --user 5 --output jsonpdcli org follower list
Section titled “pdcli org follower list”List followers of an organization
pdcli org follower list <id> [flags]pdcli org follower list 42pdcli org follower list 42 --output jsonpdcli org follower remove
Section titled “pdcli org follower remove”Remove a follower from an organization
pdcli org follower remove <id> [flags]| Flag | Description |
|---|---|
--user <value> | User ID |
-y, --yes | Skip the confirmation prompt |
pdcli org follower remove 42 --user 5pdcli org follower remove 42 --user 5 --yespdcli org get
Section titled “pdcli org get”Get an organization by ID
pdcli org get <id> [flags]pdcli org get 7pdcli org get 7 --output jsonpdcli org import
Section titled “pdcli org import”Bulk-create organizations from a CSV (headers map to fields, custom fields by name)
pdcli org import <file> [flags]| Flag | Description |
|---|---|
--upsert | Match each row on --match-on, then create or update |
--match-on <value> | Field to match rows on in --upsert mode (e.g. name) |
--dry-run | Validate every row without creating anything |
-y, --yes | Skip the confirmation prompt |
pdcli org import orgs.csvpdcli org import orgs.csv --dry-runpdcli org list
Section titled “pdcli org list”List organizations
pdcli org list [flags]| Flag | Description |
|---|---|
--owner <value> | Filter by owner (user) ID |
--filter <value> | Filter by saved filter ID |
--ids <value> | Comma-separated IDs to fetch (max 100) |
--sort-by <id|update_time|add_time> | Sort field |
--sort-direction <asc|desc> | Sort direction |
--updated-since <value> | Only items updated at/after this RFC3339 time (no fractional seconds) |
--updated-until <value> | Only items updated before this RFC3339 time (no fractional seconds) |
pdcli org listpdcli org list --owner 3 --output jsonpdcli org merge
Section titled “pdcli org merge”Merge one organization into another. WARNING: the positional <id> is the LOSING record — Pipedrive deletes it. --into is the surviving record whose data wins on conflict. All related data (deals, activities, notes, files) is transferred to the survivor.
pdcli org merge <id> [flags]| Flag | Description |
|---|---|
--into <value> | ID of the surviving organization to keep (the winner) |
-y, --yes | Skip the confirmation prompt |
pdcli org merge 123 --into 456pdcli org merge 123 --into 456 --yespdcli org relationship add
Section titled “pdcli org relationship add”Create an organization relationship. For a parent relationship the --owner organization is the parent and --linked is the daughter.
pdcli org relationship add [flags]| Flag | Description |
|---|---|
--type <parent|related> | Relationship type |
--owner <value> | Owner organization ID (the parent for type parent) |
--linked <value> | Linked organization ID (the daughter for type parent) |
pdcli org relationship add --type parent --owner 1481 --linked 1480pdcli org relationship add --type related --owner 1 --linked 2pdcli org relationship list
Section titled “pdcli org relationship list”List relationships for an organization
pdcli org relationship list [flags]| Flag | Description |
|---|---|
--org <value> | Organization ID to list relationships for |
pdcli org relationship list --org 1481pdcli org relationship list --org 1481 --output jsonpdcli org relationship remove
Section titled “pdcli org relationship remove”Delete an organization relationship
pdcli org relationship remove <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli org relationship remove 7pdcli org relationship remove 7 --yespdcli org update
Section titled “pdcli org update”Update an organization (v2 PATCH — only provided fields change)
pdcli org update <id> [flags]| Flag | Description |
|---|---|
--name <value> | Organization name |
--owner <value> | Owner (user) ID |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli org update 7 --name "Acme Inc"pdcli org update 7 --owner 9pdcli org update 7 --field "Tier=Gold"pdcli org upsert
Section titled “pdcli org upsert”Idempotent organization upsert: match by --by, then create or PATCH only the changed fields. Refuses (exit 65) if more than one record matches.
pdcli org upsert <value> [flags]| Flag | Description |
|---|---|
--by <value> | Match field: name, or a searchable custom field |
--field <value> | Field to set as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge |
--dry-run | Preview the action without writing |
pdcli org upsert Acme --by name --field "Tier=Gold"pdcli org upsert "D-42" --by "External ID" --body '{"owner_id":42}'pdcli org upsert Acme --by name --field "Tier=Gold" --dry-runpdcli person
Section titled “pdcli person”pdcli person create
Section titled “pdcli person create”Create a person
pdcli person create [flags]| Flag | Description |
|---|---|
--name <value> | Person name |
--email <value> | Email address (repeatable; first is primary) |
--phone <value> | Phone number (repeatable; first is primary) |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli person create --name "Jane Doe" --email jane@acme.compdcli person create --name "Jane" --field "Segment=Enterprise"pdcli person create --name "Raw" --body '{"visible_to":"3"}'pdcli person delete
Section titled “pdcli person delete”Delete a person
pdcli person delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli person delete 42pdcli person delete 42 --yespdcli person follower add
Section titled “pdcli person follower add”Add a follower (user) to a person
pdcli person follower add <id> [flags]| Flag | Description |
|---|---|
--user <value> | User ID |
pdcli person follower add 42 --user 5pdcli person follower add 42 --user 5 --output jsonpdcli person follower list
Section titled “pdcli person follower list”List followers of a person
pdcli person follower list <id> [flags]pdcli person follower list 42pdcli person follower list 42 --output jsonpdcli person follower remove
Section titled “pdcli person follower remove”Remove a follower from a person
pdcli person follower remove <id> [flags]| Flag | Description |
|---|---|
--user <value> | User ID |
-y, --yes | Skip the confirmation prompt |
pdcli person follower remove 42 --user 5pdcli person follower remove 42 --user 5 --yespdcli person get
Section titled “pdcli person get”Get a person by ID
pdcli person get <id> [flags]pdcli person get 5pdcli person get 5 --output jsonpdcli person import
Section titled “pdcli person import”Bulk-create persons from a CSV (headers map to fields, custom fields by name)
pdcli person import <file> [flags]| Flag | Description |
|---|---|
--upsert | Match each row on --match-on, then create or update |
--match-on <value> | Field to match rows on in --upsert mode (e.g. email) |
--dry-run | Validate every row without creating anything |
-y, --yes | Skip the confirmation prompt |
pdcli person import people.csvpdcli person import people.csv --dry-runpdcli person list
Section titled “pdcli person list”List persons (contacts)
pdcli person list [flags]| Flag | Description |
|---|---|
--owner <value> | Filter by owner (user) ID |
--org <value> | Filter by organization ID |
--filter <value> | Filter by saved filter ID |
--ids <value> | Comma-separated IDs to fetch (max 100) |
--sort-by <id|update_time|add_time> | Sort field |
--sort-direction <asc|desc> | Sort direction |
--updated-since <value> | Only items updated at/after this RFC3339 time (no fractional seconds) |
--updated-until <value> | Only items updated before this RFC3339 time (no fractional seconds) |
pdcli person listpdcli person list --org 7 --output jsonpdcli person merge
Section titled “pdcli person merge”Merge one person into another. WARNING: the positional <id> is the LOSING record — Pipedrive deletes it. --into is the surviving record whose data wins on conflict. All related data (deals, activities, notes, files) is transferred to the survivor.
pdcli person merge <id> [flags]| Flag | Description |
|---|---|
--into <value> | ID of the surviving person to keep (the winner) |
-y, --yes | Skip the confirmation prompt |
pdcli person merge 123 --into 456pdcli person merge 123 --into 456 --yespdcli person update
Section titled “pdcli person update”Update a person (v2 PATCH — only provided fields change)
pdcli person update <id> [flags]| Flag | Description |
|---|---|
--name <value> | Person name |
--email <value> | Email address (repeatable; first is primary) |
--phone <value> | Phone number (repeatable; first is primary) |
--org <value> | Linked organization ID |
--owner <value> | Owner (user) ID |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli person update 42 --name "New name"pdcli person update 42 --email new@acme.compdcli person update 42 --field "Segment=Enterprise"pdcli person upsert
Section titled “pdcli person upsert”Idempotent person upsert: match by --by, then create or PATCH only the changed fields. Refuses (exit 65) if more than one record matches.
pdcli person upsert <value> [flags]| Flag | Description |
|---|---|
--by <value> | Match field: email, name, phone, or a searchable custom field |
--field <value> | Field to set as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge |
--dry-run | Preview the action without writing |
pdcli person upsert a@x.com --by email --field "Tier=Gold"pdcli person upsert "Jane Doe" --by name --body '{"owner_id":42}'pdcli person upsert a@x.com --by email --field "Tier=Gold" --dry-runpdcli pipeline
Section titled “pdcli pipeline”pdcli pipeline get
Section titled “pdcli pipeline get”Get a pipeline by ID
pdcli pipeline get <id> [flags]pdcli pipeline get 1pdcli pipeline get 1 --output jsonpdcli pipeline health
Section titled “pdcli pipeline health”Per-stage pipeline health: value, weighted value, stale deals, missing next steps
pdcli pipeline health [flags]| Flag | Description |
|---|---|
--pipeline <value> | Pipeline ID (required when the account has several) |
pdcli pipeline healthpdcli pipeline health --pipeline 1pdcli pipeline list
Section titled “pdcli pipeline list”List pipelines
pdcli pipeline list [flags]pdcli pipeline listpdcli pipeline list --output jsonpdcli product
Section titled “pdcli product”pdcli product create
Section titled “pdcli product create”Create a product
pdcli product create [flags]| Flag | Description |
|---|---|
--name <value> | Product name |
--code <value> | Product code (SKU) |
--unit <value> | Unit of measure |
--description <value> | Product description |
--owner <value> | Owner (user) ID |
--price <value> | Unit price (requires --currency) |
--currency <value> | Price currency (requires --price) |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli product create --name "Widget" --code W-1 --price 9.99 --currency EURpdcli product create --name "Sized" --field "Material=Steel"pdcli product create --name "Raw" --body '{"tax":19}'pdcli product delete
Section titled “pdcli product delete”Delete a product
pdcli product delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli product delete 7pdcli product delete 7 --yespdcli product get
Section titled “pdcli product get”Get a product by ID
pdcli product get <id> [flags]pdcli product get 7pdcli product get 7 --output jsonpdcli product list
Section titled “pdcli product list”List products
pdcli product list [flags]| Flag | Description |
|---|---|
--owner <value> | Filter by owner (user) ID |
--filter <value> | Filter by saved filter ID |
--ids <value> | Comma-separated IDs to fetch (max 100) |
--sort-by <id|name|add_time|update_time> | Sort field |
--sort-direction <asc|desc> | Sort direction |
--updated-since <value> | Only items updated at/after this RFC3339 time (no fractional seconds) |
pdcli product listpdcli product list --owner 3 --output jsonpdcli product update
Section titled “pdcli product update”Update a product (v2 PATCH — only provided fields change)
pdcli product update <id> [flags]| Flag | Description |
|---|---|
--name <value> | Product name |
--code <value> | Product code (SKU) |
--unit <value> | Unit of measure |
--description <value> | Product description |
--owner <value> | Owner (user) ID |
--price <value> | Unit price (requires --currency) |
--currency <value> | Price currency (requires --price) |
--field <value> | Custom/standard field as "Name=Value" (repeatable) |
--body <value> | Raw JSON body to merge (flags win) |
pdcli product update 7 --name "New name"pdcli product update 7 --price 12.50 --currency USDpdcli product update 7 --field "Material=Steel"pdcli profile
Section titled “pdcli profile”pdcli profile current
Section titled “pdcli profile current”Show the active profile
pdcli profile current [flags]pdcli profile currentpdcli profile list
Section titled “pdcli profile list”List all configured profiles
pdcli profile list [flags]pdcli profile listpdcli profile use
Section titled “pdcli profile use”Switch the active profile
pdcli profile use <name> [flags]pdcli profile use workpdcli project
Section titled “pdcli project”pdcli project create
Section titled “pdcli project create”Create a project
pdcli project create [flags]| Flag | Description |
|---|---|
--title <value> | Project title |
--description <value> | Project description |
--status <value> | Project status |
--start-date <value> | Start date (YYYY-MM-DD) |
--end-date <value> | End date (YYYY-MM-DD) |
--owner <value> | Owner (user) ID |
--board <value> | Board ID |
--phase <value> | Phase ID |
--body <value> | Raw JSON body to merge (flags win) |
pdcli project create --title "Launch"pdcli project create --title "Launch" --owner 3 --status openpdcli project create --title "Raw" --body '{"deal_ids":[1,2]}'pdcli project delete
Section titled “pdcli project delete”Delete a project
pdcli project delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli project delete 7pdcli project delete 7 --yespdcli project get
Section titled “pdcli project get”Get a project by ID
pdcli project get <id> [flags]pdcli project get 3pdcli project get 3 --output jsonpdcli project list
Section titled “pdcli project list”List projects
pdcli project list [flags]| Flag | Description |
|---|---|
--archived | List archived projects instead of active ones |
pdcli project listpdcli project list --output jsonpdcli project update
Section titled “pdcli project update”Update a project (v2 PATCH — only provided fields change)
pdcli project update <id> [flags]| Flag | Description |
|---|---|
--title <value> | Project title |
--description <value> | Project description |
--status <value> | Project status |
--start-date <value> | Start date (YYYY-MM-DD) |
--end-date <value> | End date (YYYY-MM-DD) |
--owner <value> | Owner (user) ID |
--board <value> | Board ID |
--phase <value> | Phase ID |
--body <value> | Raw JSON body to merge (flags win) |
pdcli project update 7 --title "Relaunch"pdcli project update 7 --status closedpdcli project update 7 --owner 9pdcli rep
Section titled “pdcli rep”pdcli rep scorecard
Section titled “pdcli rep scorecard”Per-rep scorecard: win rate, cycle, velocity and deal hygiene by owner, across all pipelines (account-wide) unless narrowed
pdcli rep scorecard [flags]| Flag | Description |
|---|---|
--period <value> | Trailing window for closed deals (Nd or Nm) |
--pipeline <value> | Restrict to a pipeline ID |
--owner <value> | Restrict to a single owner (user) ID |
pdcli rep scorecardpdcli rep scorecard --period 30d --pipeline 1pdcli rep scorecard --owner 42 --output jsonpdcli stage
Section titled “pdcli stage”pdcli stage get
Section titled “pdcli stage get”Get a stage by ID
pdcli stage get <id> [flags]pdcli stage get 5pdcli stage get 5 --output jsonpdcli stage list
Section titled “pdcli stage list”List stages
pdcli stage list [flags]| Flag | Description |
|---|---|
--pipeline <value> | Filter by pipeline ID |
pdcli stage listpdcli stage list --pipeline 1 --output jsonpdcli sync
Section titled “pdcli sync”pdcli sync warehouse
Section titled “pdcli sync warehouse”Incremental NDJSON export for a data warehouse: appends only records changed since the last run, per-entity, with high-water marks in manifest.json. First run seeds a full export. NOTE: pull-based CDC sees creates/updates only — hard deletes are not captured; reconcile against a periodic full backup.
pdcli sync warehouse [flags]| Flag | Description |
|---|---|
--dir <value> | Output directory for the NDJSON files + manifest |
--since <value> | Override the start for all entities (RFC3339 or Nd/Nm) |
--full | Ignore watermarks and rebuild from scratch (truncates files) |
-y, --yes | Skip the --full truncation confirmation |
pdcli sync warehouse --dir ./warehousepdcli sync warehouse --dir ./warehouse --since 7dpdcli sync warehouse --dir ./warehouse --fullpdcli task
Section titled “pdcli task”pdcli task create
Section titled “pdcli task create”Create a task
pdcli task create [flags]| Flag | Description |
|---|---|
--title <value> | Task title |
--project <value> | Project ID |
--description <value> | Task description |
--assignee <value> | Assignee (user) ID |
--due-date <value> | Due date (YYYY-MM-DD) |
--parent <value> | Parent task ID |
--body <value> | Raw JSON body to merge (flags win) |
pdcli task create --title "Write spec" --project 3pdcli task create --title "Subtask" --project 3 --parent 5 --assignee 7pdcli task create --title "Raw" --project 3 --body '{"priority":5}'pdcli task delete
Section titled “pdcli task delete”Delete a task
pdcli task delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli task delete 7pdcli task delete 7 --yespdcli task get
Section titled “pdcli task get”Get a task by ID
pdcli task get <id> [flags]pdcli task get 9pdcli task get 9 --output jsonpdcli task list
Section titled “pdcli task list”List tasks
pdcli task list [flags]| Flag | Description |
|---|---|
--project <value> | Filter by project ID |
--assignee <value> | Filter by assignee (user) ID |
--parent <value> | Filter by parent task ID |
--done | Only completed tasks |
--todo | Only open (not done) tasks |
pdcli task listpdcli task list --project 3 --todopdcli task list --assignee 7 --output jsonpdcli task update
Section titled “pdcli task update”Update a task (v2 PATCH — only provided fields change)
pdcli task update <id> [flags]| Flag | Description |
|---|---|
--title <value> | Task title |
--project <value> | Project ID |
--description <value> | Task description |
--assignee <value> | Assignee (user) ID |
--due-date <value> | Due date (YYYY-MM-DD) |
--parent <value> | Parent task ID |
--done | Mark the task as done |
--undone | Mark the task as not done |
--body <value> | Raw JSON body to merge (flags win) |
pdcli task update 7 --title "Renamed"pdcli task update 7 --donepdcli task update 7 --assignee 9pdcli user
Section titled “pdcli user”pdcli user find
Section titled “pdcli user find”Find users by name
pdcli user find <term> [flags]| Flag | Description |
|---|---|
--by-email | Match the term against email addresses only |
pdcli user find "jane"pdcli user find "jane@acme.com" --by-email --output jsonpdcli user list
Section titled “pdcli user list”List all users
pdcli user list [flags]pdcli user listpdcli user list --output jsonpdcli user me
Section titled “pdcli user me”Show the authenticated user
pdcli user me [flags]pdcli user mepdcli webhook
Section titled “pdcli webhook”pdcli webhook create
Section titled “pdcli webhook create”Create a webhook
pdcli webhook create [flags]| Flag | Description |
|---|---|
--url <value> | Webhook subscription URL |
--event-action <create|change|delete|*> | Event action to subscribe to |
--event-object <activity|board|deal|deal_installment|deal_product|lead|note|organization|person|phase|pipeline|product|project|stage|task|user|*> | Event object to subscribe to |
--name <value> | Webhook name |
--version <value> | Webhook payload version |
--http-auth-user <value> | HTTP basic auth username for the endpoint |
--http-auth-password <value> | HTTP basic auth password for the endpoint |
pdcli webhook create --url https://example.com/hook --event-action change --event-object dealpdcli webhook create --url https://example.com/hook --event-action "*" --event-object "*"pdcli webhook delete
Section titled “pdcli webhook delete”Delete a webhook
pdcli webhook delete <id> [flags]| Flag | Description |
|---|---|
-y, --yes | Skip the confirmation prompt |
pdcli webhook delete 3pdcli webhook delete 3 --yespdcli webhook list
Section titled “pdcli webhook list”List webhooks
pdcli webhook list [flags]pdcli webhook listpdcli webhook list --output json