For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Update an existing opportunity. Supports partial updates.
Updatable fields:
- Standard fields (value, size, status, confidence, etc.)
- Workflow fields (workflowId, phaseId)
- Contact information (primaryEmail, primaryPhone)
- Contacts (contact IDs only, no name, email, phone, etc.)
- Custom fields (through custom object)
Note: Updates are atomic - either all fields update or none do.
> **Changing account association is not supported via update.** To move an opportunity to a different account, delete and re-create it under the new account.
**Note:** The `/requests` path is an alias for `/opportunities` and will continue to work until users are individually notified and migrated.
Authentication
x-api-keystring
API Key authentication via header
Path parameters
opportunity_idintegerRequired
Opportunity identifier
Query parameters
allow_new_optionsbooleanOptionalDefaults to false
Whether to allow creation of new dropdown options during record creation
Request
This endpoint expects an object.
titlestringRequired
Opportunity title/name
addresslist of stringsRequired
An array containing a single string, which represents the full opportunity location/address.
tradeslist of enumsRequired
Array of trade types
descriptionstring or nullOptional
Opportunity description
accountIdintegerOptional
ID of associated account. Only accepted on create.
workflowIdinteger or nullOptional
ID of associated workflow
phaseIdinteger or nullOptional
ID of associated phase template
ownerIdinteger or nullOptional
ID of the owning user
salesRepIdinteger or nullOptional
ID of the assigned sales rep
projectManagerIdinteger or nullOptional
ID of the assigned project manager
valuedoubleOptional
Project value
sizedoubleOptional
Project size
confidencedouble or nullOptional
Deal confidence score (0-100)
statusenumOptional
Status of the project:
ACTIVE - Project is active and in progress
ON_HOLD - Project is temporarily paused
CANCELLED - Project has been cancelled
COMPLETED - Project has been completed
Allowed values:
primaryEmailstringOptionalformat: "email"
Primary contact email
primaryPhonestringOptional
Primary contact phone
contactslist of integersOptional
Contact IDs only (no name, email, phone, etc.). The contacts must be created first via POST /contacts. The first ID in the array is treated as the primary contact.
custommap from strings to anyOptional
Custom fields
Response
Opportunity updated successfully
idintegerOptional
Unique identifier
createdAtstringOptionalformat: "date-time"
Creation timestamp
updatedAtstringOptionalformat: "date-time"
Timestamp of the most recent update to the record, including changes to its custom property values.
titlestringOptional
Record title/name
descriptionstring or nullOptional
Record description
addresslist of stringsOptional
An array containing a single string, which represents the full opportunity location/address.
isActivebooleanOptional
Whether the record is active
primaryEmailstring or nullOptionalformat: "email"
Primary contact email
primaryPhonestring or nullOptional
Primary contact phone
numberintegerOptional
Sequential opportunity number
createdByobject or nullOptional
User who created the record. Null when the record was created by a non-user actor (e.g. automation or a contact).
updatedByobject or nullOptional
User who last edited a field on the record, derived from the changelog. Null when the record has never been edited or the last edit was made by a non-user actor.
custommap from strings to anyOptional
Custom fields
tradeslist of enumsOptional
Array of trade types
valuedouble or nullOptional
Deal value
sizedouble or nullOptional
Deal size
confidencedouble or nullOptional
Deal confidence score (0-100)
workflowIdinteger or nullOptional
Associated workflow ID
accountIdinteger or nullOptional
Associated account ID
geoLocationlist of stringsOptionalRead-only
Latitude/Longitude in “lat,lon” format. Read-only here — settable only via PATCH /sites/{id} on the linked site.
imageUrlstring or nullOptionalRead-only
Image URL for the opportunity. Read-only — not settable via this API.
streetViewUrlstring or nullOptionalRead-only
Street view image URL. Read-only — derived from geoLocation, not settable directly.
citystringOptional
zipcodestringOptional
statestringOptional
streetstringOptional
phaseTimelinelist of objectsOptional
Only present on GET /opportunities and /opportunities/search when entered_phase_id/exited_phase_id is used to filter the results. Contains the deal’s full phase-transition history (not just the matched phase) in compact form — use GET /opportunities/{opportunity_id} for the complete phaseInstances with names, positions, and SLA info.
ownerobject or nullOptional
salesRepobject or nullOptional
projectManagerobject or nullOptional
jurisdictionobject or nullOptional
lastActivitystring or nullOptionalformat: "date-time"
phaseIdinteger or nullOptional
workflowNamestringOptional
Name of the associated workflow.
contactslist of objectsOptional
Contacts associated with this opportunity (independent of, and not inherited from, the parent account’s contacts). Set on create or update via the contacts request field. On GET requests, only populated when include_contacts=true is passed. Always populated on POST (create) and PATCH (update) responses. Ordered with the primary contact first, capped at 20 contacts.
Errors
400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
Update an existing opportunity. Supports partial updates.
Updatable fields:
Standard fields (value, size, status, confidence, etc.)
Workflow fields (workflowId, phaseId)
Contact information (primaryEmail, primaryPhone)
Contacts (contact IDs only, no name, email, phone, etc.)
Custom fields (through custom object)
Note: Updates are atomic - either all fields update or none do.
Changing account association is not supported via update. To move an opportunity to a different account, delete and re-create it under the new account.
Note: The /requests path is an alias for /opportunities and will continue to work until users are individually notified and migrated.