Create Opportunity

Create a new opportunity with required and optional fields. Required fields: - `title`: Opportunity title/name - `address`: Opportunity location - `trades`: Array of trade types Optional fields: - `accountId`: Link to existing account - `workflowId`: Link to workflow - `phaseId`: Link to phase - `value`: Opportunity value - `size`: Opportunity size - `confidence`: Confidence score (0-100) - `primaryEmail`/`primaryPhone`: Contact information - `contacts`: Contact IDs only (no name, email, phone, etc.). The contacts must be created first via POST /contacts. - `custom`: Custom fields object Note: If primaryEmail or primaryPhone is provided, a contact will be automatically created or matched. **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

Query parameters

allow_new_optionsbooleanOptionalDefaults to false
Whether to allow creation of new dropdown options during record creation
match_byenumOptionalDefaults to title
Field to use for matching existing records
Allowed values:
match_found_strategyenumOptionalDefaults to skip
Strategy to use when a match is found
Allowed values:

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 stringsRequired
Array of trade types
descriptionstring or nullOptional
Opportunity description
accountIdinteger or nullOptional
ID of associated account
workflowIdinteger or nullOptional
ID of associated workflow
valuedoubleOptional
Project value
sizedoubleOptional
Project size
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.

custommap from strings to anyOptional
Custom fields

Response

Matching opportunity found
accountIdinteger or null
Associated account ID
addresslist of strings or null

An array containing a single string, which represents the full opportunity location/address.

citystring or null
confidencedouble or null

Deal confidence score (0-100)

createdAtstring or nullformat: "date-time"
Creation timestamp
createdByIdinteger or null
Identifier of the user who created the opportunity
custommap from strings to any or null
Custom fields
descriptionstring or null
Record description
geoLocationlist of strings or null

Latitude/Longitude in “lat,lon” format

idinteger or null
Unique identifier
imageUrlstring or null
Image URL for the opportunity
isActiveboolean or null
Whether the record is active
jurisdictionobject or null
lastActivitystring or nullformat: "date-time"
numberinteger or null
Sequential opportunity number
ownerobject or null
phaseobject or null
phaseIdinteger or null
phaseInstanceslist of objects or null
Ordered list of phase instances for the opportunity
primaryEmailstring or nullformat: "email"
Primary contact email
primaryPhonestring or null
Primary contact phone
projectManagerobject or null
salesRepobject or null
sizedouble or null
Deal size
statestring or null
streetstring or null
streetViewUrlstring or null
Street view image URL
titlestring or null

Record title/name

tradeslist of strings or null
Array of trade types
updatedAtstring or nullformat: "date-time"
Last update timestamp
valuedouble or null
Deal value
workflowIdinteger or null
Associated workflow ID
workflowNamestring or null
Name of the associated workflow.
zipcodestring or null

Errors