Search Opportunities

Search opportunities using up to two filters (prop1/op1/value1 and optionally prop2/op2/value2), combined with `logic` (AND/OR). Properties: - `propX` can be a standard field (e.g., `status`, `title`, `city`, `type`, etc.) or a custom property key name. - Use the `property key` from your company settings. Operators (`opX`): - Equality: `eq`, `neq` - Numeric/datetime comparisons: `gt`, `gte`, `lt`, `lte` - Text/string matching: `contains` (case-insensitive) - Lists: `in`, `nin` (CSV list in `valueX`) - Ranges: `between` (use `valueX` as `from,to`) - Existence: `exists` is not supported for custom properties due to performance limitations. Use `eq` or `neq` instead. Value formats: - `in`/`nin`: lists can be provided as: - Plain CSV: `value1=OPEN,ACTIVE` - Quoted CSV (to include commas inside a value): `value1="Last, First",Other` - JSON array: `value1=["Last, First","Other"]` - `between`: `from,to` (e.g., `value1=2025-01-01,2025-12-31` or `value1=10,20`) - Dates should be ISO 8601 strings; numeric-like values on custom properties are matched against both numeric and text representations. Examples: - status equals ACTIVE: `?prop1=status&op1=eq&value1=ACTIVE` - custom id equals 1234: `?prop1=legacy_tool_project_id&op1=eq&value1=1234` - title contains "Solar": `?prop1=name&op1=contains&value1=Solar` - status IN (ACTIVE, ON_HOLD) AND city = Austin: `?prop1=status&op1=in&value1=ACTIVE,ON_HOLD&logic=and&prop2=city&op2=eq&value2=Austin` **Note:** The `/requests` path is an alias for `/opportunities` and will continue to work until users are individually notified and migrated. **Note:** If an opportunity has no `title` (empty or whitespace-only), the response returns the parent account's `title` instead. The stored value is not modified — this is a read-time fallback only.

Authentication

x-api-keystring
API Key authentication via header

Query parameters

prop1stringRequired

First field to filter (standard or custom keyName)

op1enumRequired
Operator for prop1
value1stringRequired

Value for prop1 (CSV for in/nin, from,to for between)

logicenumOptionalDefaults to and
Logical combination when both prop1 and prop2 are provided
Allowed values:
prop2stringOptional
Optional second field to filter
op2enumOptional
Operator for prop2
value2stringOptional

Value for prop2 (CSV for in/nin, from,to for between)

page_sizeintegerOptional1-100Defaults to 20

Number of items per page (max 100)

pageintegerOptional>=1Defaults to 1

Page number (1-based)

order_byenumOptionalDefaults to asc
Sort order for results
Allowed values:
include_archivedbooleanOptionalDefaults to false

Whether to include archived (inactive) records in the response. By default only active records are returned.

Response

List of opportunities matching filters
idinteger
Unique identifier
createdAtstringformat: "date-time"
Creation timestamp
updatedAtstringformat: "date-time"
Last update timestamp
titlestring

Record title/name

descriptionstring or null
Record description
addresslist of strings

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

isActiveboolean
Whether the record is active
primaryEmailstring or nullformat: "email"
Primary contact email
primaryPhonestring or null
Primary contact phone
numberinteger
Sequential opportunity number
custommap from strings to any
Custom fields
tradeslist of strings
Array of trade types
valuedouble or null
Deal value
sizedouble or null
Deal size
confidencedouble or null

Deal confidence score (0-100)

workflowIdinteger or null
Associated workflow ID
accountIdinteger or null
Associated account ID
createdByIdinteger
Identifier of the user who created the opportunity
geoLocationlist of strings

Latitude/Longitude in “lat,lon” format

imageUrlstring or null
Image URL for the opportunity
streetViewUrlstring or null
Street view image URL
citystring
zipcodestring
statestring
streetstring
phaseobject or null
phaseInstanceslist of objects
Ordered list of phase instances for the opportunity
ownerobject or null
salesRepobject or null
projectManagerobject or null
jurisdictionobject or null
lastActivitystring or nullformat: "date-time"
phaseIdinteger or null
workflowNamestring
Name of the associated workflow.

Errors

400
Bad Request Error
401
Unauthorized Error