Skip to content

Opportunities API

53 endpoints. All requests need an Authorization header — see Authentication. API keys additionally need the matching scope.

Method Path Description
GET /api/opps/ List Opportunities Query: stage_id, stage_type, search, owner_id, opportunity_type_id, territory.
POST /api/opps/ Create Opportunity Accepts a JSON body.
GET /api/opps/pipeline Get Pipeline Query: pipeline_name, per_stage.
GET /api/opps/stages List Stages Query: pipeline_name.
POST /api/opps/stages Create Stage Accepts a JSON body.
POST /api/opps/stages/reorder Reorder Stages Accepts a JSON body.
PATCH /api/opps/stages/{stage_id} Update Stage Accepts a JSON body.
DELETE /api/opps/stages/{stage_id} Delete Stage
GET /api/opps/types List Opportunity Types
POST /api/opps/types Create Opportunity Type Accepts a JSON body.
PATCH /api/opps/types/{type_id} Update Opportunity Type Accepts a JSON body.
DELETE /api/opps/types/{type_id} Delete Opportunity Type
GET /api/opps/{opp_id} Get Opportunity
PATCH /api/opps/{opp_id} Update Opportunity Accepts a JSON body.
DELETE /api/opps/{opp_id} Delete Opportunity
GET /api/opps/{opp_id}/booking-status Opportunity Booking Status
GET /api/opps/{opp_id}/comments List Comments Query: limit, offset.
POST /api/opps/{opp_id}/comments Create Comment Accepts a JSON body.
PATCH /api/opps/{opp_id}/comments/{comment_id} Update Comment Accepts a JSON body.
DELETE /api/opps/{opp_id}/comments/{comment_id} Delete Comment
POST /api/opps/{opp_id}/comments/{comment_id}/attachments Upload Comment Attachment Accepts a JSON body.
DELETE /api/opps/{opp_id}/comments/{comment_id}/attachments/{att_id} Delete Comment Attachment
GET /api/opps/{opp_id}/comments/{comment_id}/attachments/{att_id}/{filename} Download Comment Attachment
GET /api/opps/{opp_id}/contact-roles List Contact Roles
POST /api/opps/{opp_id}/contact-roles Add Contact Role Accepts a JSON body.
PATCH /api/opps/{opp_id}/contact-roles/{role_id} Update Contact Role Accepts a JSON body.
DELETE /api/opps/{opp_id}/contact-roles/{role_id} Delete Contact Role
GET /api/opps/{opp_id}/emails List Opp Emails Query: page, limit.
GET /api/opps/{opp_id}/forecast-chain Get Forecast Chain Query: period_id.
POST /api/opps/{opp_id}/link Link Opportunity Accepts a JSON body.
DELETE /api/opps/{opp_id}/link Unlink Opportunity
GET /api/opps/{opp_id}/link-candidates Search Link Candidates Query: search, limit.
GET /api/opps/{opp_id}/meetings List Opp Meetings
GET /api/opps/{opp_id}/quotes List Quotes
POST /api/opps/{opp_id}/quotes Create Quote Accepts a JSON body.
GET /api/opps/{opp_id}/quotes/{quote_id} Get Quote
PATCH /api/opps/{opp_id}/quotes/{quote_id} Update Quote Accepts a JSON body.
DELETE /api/opps/{opp_id}/quotes/{quote_id} Delete Quote
GET /api/opps/{opp_id}/quotes/{quote_id}/activities List Activities
GET /api/opps/{opp_id}/quotes/{quote_id}/approvals List Approvals
POST /api/opps/{opp_id}/quotes/{quote_id}/approvals/{approval_id}/approve Approve Approval Query: notes.
POST /api/opps/{opp_id}/quotes/{quote_id}/approvals/{approval_id}/reject Reject Approval Query: notes.
POST /api/opps/{opp_id}/quotes/{quote_id}/check-approvals Check Approvals
POST /api/opps/{opp_id}/quotes/{quote_id}/deliver-to-room Deliver To Room
POST /api/opps/{opp_id}/quotes/{quote_id}/generate-pdf Generate Pdf
POST /api/opps/{opp_id}/quotes/{quote_id}/items Add Line Item Accepts a JSON body.
PATCH /api/opps/{opp_id}/quotes/{quote_id}/items/{item_id} Update Line Item Accepts a JSON body.
DELETE /api/opps/{opp_id}/quotes/{quote_id}/items/{item_id} Delete Line Item
GET /api/opps/{opp_id}/quotes/{quote_id}/pdf Download Pdf
POST /api/opps/{opp_id}/quotes/{quote_id}/send-email Send Quote Email Endpoint
POST /api/opps/{opp_id}/quotes/{quote_id}/set-primary Set Primary Quote
POST /api/opps/{opp_id}/quotes/{quote_id}/submit-approval Submit For Approval
GET /api/opps/{opp_id}/stage-history Get Stage History

Try it

The full request/response schema for every endpoint is in the OpenAPI spec served by your own workspace.