List Opportunities
Retrieve a paginated list of opportunities.
Supports:
- Pagination (
page_size,page) - Date filtering (
updated_after,updated_before) - Phase entry/exit date filtering (
entered_phase_id+entered_after/entered_before,exited_phase_id+exited_after/exited_before) - Sorting (
order_by, default: desc) - Field search (
title,address,primaryName,primaryPhone,primaryEmail) - Full text search (
q) - Phase detail (
include_phases=true:phaseInstancesplus the current phase’sstartedAt/completedAt; use apage_sizeof 25 or less)
Each opportunity includes ownerId, salesRepId, projectManagerId and a projectManager object (null when unset). updatedBy is only returned by GET /opportunities/{opportunity_id}.
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.
Note: entered_phase_id/exited_phase_id identify a phase template (shared across all deals on a workflow), not a specific phase instance. Use the phaseTemplateId from a GET /opportunities/{opportunity_id} response or the GET /workflows response to find the id for a given phase (e.g. “Closed - Won”). When either filter is used, each row also includes a compact phaseTimeline (phaseTemplateId, startedAt, completedAt); use GET /opportunities/{opportunity_id} for the full phaseInstances with names/positions/SLA.
Authentication
Query parameters
Number of items per page (max 100)
Page number (1-based)
Filter items updated after this timestamp (ISO 8601). Also matches records whose custom property values changed within the window.
Filter items updated before this timestamp (ISO 8601). Also matches records whose custom property values changed within the window.
Phase template ID to filter by phase-entry date. Required when entered_after or entered_before is provided. Given alone (no date bounds), matches records that ever entered this phase.
Only include records that entered the phase given by entered_phase_id on or after this date/timestamp. Accepts a date (2026-07-01) or a full ISO 8601 timestamp (2026-07-01T00:00:00Z). Requires entered_phase_id.
Only include records that entered the phase given by entered_phase_id before this date/timestamp (exclusive). Accepts a date (2026-08-01) or a full ISO 8601 timestamp (2026-08-01T00:00:00Z). Requires entered_phase_id.
Phase template ID to filter by phase-exit date. Required when exited_after or exited_before is provided. Given alone (no date bounds), matches records that have exited this phase at any point.
Only include records that exited the phase given by exited_phase_id on or after this date/timestamp. Accepts a date (2026-07-01) or a full ISO 8601 timestamp (2026-07-01T00:00:00Z). Requires exited_phase_id.
Only include records that exited the phase given by exited_phase_id before this date/timestamp (exclusive). Accepts a date (2026-08-01) or a full ISO 8601 timestamp (2026-08-01T00:00:00Z). Requires exited_phase_id. On opportunities, combine with exited_phase_id set to a “Closed - Won”-style phase template to find deals that closed within a date range.
Whether to include archived (inactive) records in the response. By default only active records are returned.
Also return phaseInstances (every phase with its status, startedAt and completedAt) and phase.startedAt / phase.completedAt for the current phase, in the same shape as the single-record GET. Defaults to false. Adds two relation reads per row, so use a page_size of 25 or less when it is on.
Response
An array containing a single string, which represents the full opportunity location/address.
Deal confidence score (0-100)
Status of the opportunity:
ACTIVE- Opportunity is openON_HOLD- Opportunity is temporarily pausedWON- Opportunity was wonLOST- Opportunity was lost
Latitude/Longitude in “lat,lon” format. Read-only here — settable only via PATCH /sites/{id} on the linked site.
Image URL for the opportunity. Read-only — not settable via this API.
Street view image URL. Read-only — derived from geoLocation, not settable directly.
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.
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.
Current phase. startedAt and completedAt are present on GET /opportunities/{opportunity_id} and on lists with include_phases=true.
Ordered list of phase instances for the opportunity. Returned by GET /opportunities/{opportunity_id}, and on lists and search with include_phases=true.
