opportunities

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.

post/opportunities

Request

  • Base URL: https://api.coperniq.io/v1
  • URL: https://api.coperniq.io/v1/opportunities
  • Auth: API key in header x-api-key

Query parameters

allow_new_optionsboolean

Whether to allow creation of new dropdown options during record creation

match_by'title' | 'primaryEmail' | 'primaryPhone' | 'address'

Field to use for matching existing records

match_found_strategy'skip' | 'replace' | 'enrich'
  • skip: Return existing record without changes
  • replace: Replace existing record with new data
  • enrich: Update only empty fields in existing record

Strategy to use when a match is found

Request body

titlestring required

Opportunity title/name

descriptionstring nullable

Opportunity description

addressstring[] required

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

tradesTradeType[] required

Array of trade types

accountIdinteger

ID of associated account. Only accepted on create.

workflowIdinteger nullable

ID of associated workflow

phaseIdinteger nullable

ID of associated phase template

ownerIdinteger nullable

ID of the owning user

salesRepIdinteger nullable

ID of the assigned sales rep

projectManagerIdinteger nullable

ID of the assigned project manager

valuenumber double

Project value

sizenumber double

Project size

confidencenumber double nullable

Deal confidence score (0-100)

status'ACTIVE' | 'ON_HOLD' | 'WON' | 'LOST'

Status of the opportunity:

  • ACTIVE - Opportunity is open
  • ON_HOLD - Opportunity is temporarily paused
  • WON - Opportunity was won
  • LOST - Opportunity was lost
primaryEmailstring email

Primary contact email

primaryPhonestring

Primary contact phone

contactsinteger[]

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.

customobject

Custom fields

Response

Matching opportunity found

idinteger

Unique identifier

createdAtstring date-time

Creation timestamp

updatedAtstring date-time

Timestamp of the most recent update to the record, including changes to its custom property values.

titlestring

Record title/name

descriptionstring nullable

Record description

addressstring[]

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

isActiveboolean

Whether the record is active

primaryEmailstring email nullable

Primary contact email

primaryPhonestring nullable

Primary contact phone

numberinteger

Sequential opportunity number

customobject

Custom fields

tradesTradeType[]

Array of trade types

valuenumber double nullable

Deal value

sizenumber double nullable

Deal size

confidencenumber double nullable

Deal confidence score (0-100)

status'ACTIVE' | 'ON_HOLD' | 'WON' | 'LOST'

Status of the opportunity:

  • ACTIVE - Opportunity is open
  • ON_HOLD - Opportunity is temporarily paused
  • WON - Opportunity was won
  • LOST - Opportunity was lost
workflowIdinteger nullable

Associated workflow ID

accountIdinteger nullable

Associated account ID

geoLocationstring[]

Latitude/Longitude in "lat,lon" format. Read-only here — settable only via PATCH /sites/{id} on the linked site.

imageUrlstring nullable

Image URL for the opportunity. Read-only — not settable via this API.

streetViewUrlstring nullable

Street view image URL. Read-only — derived from geoLocation, not settable directly.

citystring
zipcodestring
statestring
streetstring
lastActivitystring date-time nullable
phaseIdinteger nullable
workflowNamestring

Name of the associated workflow.

Changes

No recorded changes to this operation across all 1 revision of this API.