CRMCRM Opportunities

CRM Opportunities

Track deals through the Talkturo CRM — create, list, update, and delete opportunities with pipeline stages, amounts, probabilities, and activity history.

curl -X GET "https://app.talkturo.com/api/crm/opportunities?teamId=team_4f8a2c91&stage=proposal&ownerUserId=usr_82c1d7a4&limit=25&offset=0" \
  -H "Cookie: sb-access-token=example_session_cookie"
{
  "opportunities": [
    {
      "id": "opp_2d91c6f4",
      "team_id": "team_4f8a2c91",
      "name": "Northwind Health Platform Expansion",
      "primary_contact_id": "cnt_91b4a2e7",
      "stage": "proposal",
      "amount": 48000,
      "currency": "USD",
      "probability": 70,
      "expected_close_date": "2026-10-15",
      "owner_user_id": "usr_82c1d7a4",
      "notes": "Proposal review scheduled with the procurement team."
    }
  ],
  "count": 1,
  "limit": 25,
  "offset": 0,
  "stageTotals": {
    "lead": 4,
    "qualified": 3,
    "proposal": 1,
    "negotiation": 2,
    "won": 8,
    "lost": 5
  }
}
curl -X POST "https://app.talkturo.com/api/crm/opportunities" \
  -H "Content-Type: application/json" \
  -H "Cookie: sb-access-token=example_session_cookie" \
  -d '{
    "teamId": "team_4f8a2c91",
    "name": "Northwind Health Platform Expansion",
    "primaryContactId": "cnt_91b4a2e7",
    "stage": "qualified",
    "amount": 48000,
    "currency": "USD",
    "probability": 60,
    "expectedCloseDate": "2026-10-15",
    "ownerUserId": "usr_82c1d7a4",
    "notes": "Expansion opportunity identified during the quarterly review.",
    "customFields": {
      "region": "North America",
      "contractTermMonths": 24
    }
  }'
{
  "success": true,
  "opportunity": {
    "id": "opp_6c52a1ef",
    "team_id": "team_4f8a2c91",
    "name": "Northwind Health Platform Expansion",
    "primary_contact_id": "cnt_91b4a2e7",
    "stage": "qualified",
    "amount": 48000,
    "currency": "USD",
    "probability": 60,
    "expected_close_date": "2026-10-15",
    "owner_user_id": "usr_82c1d7a4",
    "notes": "Expansion opportunity identified during the quarterly review.",
    "custom_fields": {
      "region": "North America",
      "contractTermMonths": 24
    }
  }
}
curl -X GET "https://app.talkturo.com/api/crm/opportunities/opp_6c52a1ef" \
  -H "Cookie: sb-access-token=example_session_cookie"
{
  "success": true,
  "opportunity": {
    "id": "opp_6c52a1ef",
    "team_id": "team_4f8a2c91",
    "name": "Northwind Health Platform Expansion",
    "primary_contact_id": "cnt_91b4a2e7",
    "stage": "qualified",
    "amount": 48000,
    "currency": "USD",
    "probability": 60,
    "expected_close_date": "2026-10-15",
    "owner_user_id": "usr_82c1d7a4",
    "notes": "Expansion opportunity identified during the quarterly review."
  },
  "activities": [
    {
      "id": "act_4b27e8c1",
      "contact_id": "cnt_91b4a2e7",
      "activity_type": "meeting",
      "created_at": "2026-07-18T14:30:00Z"
    }
  ]
}
curl -X PUT "https://app.talkturo.com/api/crm/opportunities/opp_6c52a1ef" \
  -H "Content-Type: application/json" \
  -H "Cookie: sb-access-token=example_session_cookie" \
  -d '{
    "name": "Northwind Health Platform Expansion",
    "stage": "proposal",
    "amount": 52000,
    "currency": "USD",
    "probability": 75,
    "expectedCloseDate": "2026-10-31",
    "ownerUserId": "usr_82c1d7a4",
    "notes": "Proposal sent for procurement review.",
    "customFields": {
      "region": "North America",
      "contractTermMonths": 24
    },
    "actualCloseDate": null,
    "lostReason": null,
    "wonDetails": null
  }'
{
  "success": true,
  "opportunity": {
    "id": "opp_6c52a1ef",
    "team_id": "team_4f8a2c91",
    "name": "Northwind Health Platform Expansion",
    "primary_contact_id": "cnt_91b4a2e7",
    "stage": "proposal",
    "amount": 52000,
    "currency": "USD",
    "probability": 75,
    "expected_close_date": "2026-10-31",
    "owner_user_id": "usr_82c1d7a4",
    "notes": "Proposal sent for procurement review.",
    "custom_fields": {
      "region": "North America",
      "contractTermMonths": 24
    }
  }
}
curl -X DELETE "https://app.talkturo.com/api/crm/opportunities/opp_6c52a1ef" \
  -H "Cookie: sb-access-token=example_session_cookie"
{
  "success": true
}

Manage CRM opportunities

Use the CRM Opportunities API to manage deals for a team. You can filter opportunities by pipeline stage and owner, track amounts and close dates, and retrieve related contact activity.

All CRM Opportunities endpoints require an authenticated session cookie. These endpoints do not accept API key authentication.

The item route derives the opportunity's team_id and verifies that the authenticated session can access the team before it reads, updates, or deletes the opportunity.

Endpoints at a glance

MethodPathDescription
GET/api/crm/opportunitiesList opportunities for a team
POST/api/crm/opportunitiesCreate an opportunity
GET/api/crm/opportunities/{id}Retrieve an opportunity and related activities
PUT/api/crm/opportunities/{id}Update an opportunity
DELETE/api/crm/opportunities/{id}Delete an opportunity

Pipeline stages

The stage field accepts these values:

  • lead
  • qualified
  • proposal
  • negotiation
  • won
  • lost

List opportunities

Retrieve opportunities for a team with optional stage and owner filters. Use limit and offset to paginate the results.

Query parameters

query
teamIdstring
Required

Team whose opportunities to return.

query
stagestring

Filter results by pipeline stage.

Allowed values:leadqualifiedproposalnegotiationwonlost
query
ownerUserIdstring

Filter results by the user assigned as the opportunity owner.

query
limitinteger

Maximum number of opportunities to return.

query
offsetinteger

Number of matching opportunities to skip before returning results.

Response fields

opportunitiesarray
Required

Opportunities matching the requested team and filters.

countinteger
Required

Number of opportunities in the response.

limitinteger
Required

Maximum number of opportunities requested for the page.

offsetinteger
Required

Number of opportunities skipped before the returned results.

stageTotalsobject
Required

Stage totals for the team's opportunities.

Create an opportunity

Create an opportunity for a team. The teamId and name fields are required; all other fields are optional.

Request body

body
teamIdstring
Required

Team that owns the opportunity.

body
namestring
Required

Name of the opportunity.

body
primaryContactIdstring

ID of the primary contact associated with the opportunity.

body
stagestring

Pipeline stage for the opportunity.

Allowed values:leadqualifiedproposalnegotiationwonlost
body
amountnumber

Monetary amount associated with the opportunity.

body
currencystring

Currency code for the opportunity amount.

body
probabilitynumber

Estimated probability of closing the opportunity.

body
expectedCloseDatestring

Expected date on which the opportunity will close.

body
ownerUserIdstring

ID of the user who owns the opportunity.

body
notesstring

Notes associated with the opportunity.

body
customFieldsobject

Additional opportunity fields stored as a custom object.

Response fields

successboolean
Required

Indicates whether the opportunity was created successfully.

opportunityobject
Required

The newly created opportunity.

Get an opportunity

Retrieve one opportunity by ID. The response includes up to 50 related contact_activities records.

Path parameter

path
idstring
Required

Unique identifier of the opportunity to retrieve.

Response fields

successboolean
Required

Indicates whether the opportunity was found.

opportunityobject
Required

The requested opportunity.

activitiesarray
Required

Up to 50 related contact_activities records.

Update an opportunity

Update one or more fields on an existing opportunity with PUT. The request does not require fields that you are not changing.

Path parameter

path
idstring
Required

Unique identifier of the opportunity to update.

Request body

body
namestring

Updated name of the opportunity.

body
stagestring

Updated pipeline stage.

Allowed values:leadqualifiedproposalnegotiationwonlost
body
amountnumber

Updated monetary amount.

body
currencystring

Updated currency code.

body
probabilitynumber

Updated estimated probability of closing the opportunity.

body
expectedCloseDatestring

Updated expected close date.

body
ownerUserIdstring

Updated owner user ID.

body
notesstring

Updated notes for the opportunity.

body
customFieldsobject

Updated custom opportunity fields.

body
actualCloseDatestring

Actual date on which the opportunity closed.

body
lostReasonstring

Reason the opportunity was lost.

body
wonDetailsobject

Details associated with winning the opportunity.

Response fields

successboolean
Required

Indicates whether the opportunity was updated successfully.

opportunityobject
Required

The updated opportunity.

Delete an opportunity

Delete an opportunity by ID.

Path parameter

path
idstring
Required

Unique identifier of the opportunity to delete.

Response fields

successboolean
Required

Indicates whether the opportunity was deleted successfully.

Deleting an opportunity is irreversible. Confirm the opportunity ID before sending the request.