Skip to content

Update Opportunity

PUT /external/v1/opportunities/:id

Updates an existing opportunity and its linked contact. Only provided fields will be updated.

Authentication

Requires opportunities:write permission.

Path Parameters

ParameterTypeRequiredDescription
idstringYesThe unique identifier of the opportunity

Request Body

All fields are optional. Contact fields update the linked contact; opportunity fields update the opportunity itself.

FieldTypeDescription
namestringLead's full name (updates contact name and opportunity title)
titlestringContact's job title/position
companystringCompany name
locationstringLocation
headlinestringContact headline
profile_urlstringProfile URL
profile_picturestringProfile picture URL
emailstringEmail address
phonestringPhone number
scorenumberLead score
notesstringAdditional notes
owner_user_idstringAssigned seller
pipeline_idstringPipeline
stage_idstringStage

TIP

To move the opportunity between stages with automatic lifecycle timestamps and an optional loss reason, use the Update Stage endpoint.

Request

bash
curl --request PUT \
  --url "https://app.getraze.com/external/v1/opportunities/opp_abc123def456" \
  --header "Content-Type: application/json" \
  --header "X-API-Key: YOUR_API_KEY" \
  --data '{
    "score": 95,
    "notes": "Upgraded to enterprise package"
  }'
javascript
const axios = require('axios');

const opportunityId = 'opp_abc123def456';

const response = await axios.put(
  `https://app.getraze.com/external/v1/opportunities/${opportunityId}`,
  {
    score: 95,
    notes: 'Upgraded to enterprise package'
  },
  {
    headers: {
      'X-API-Key': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
python
import requests

opportunity_id = 'opp_abc123def456'

response = requests.put(
    f'https://app.getraze.com/external/v1/opportunities/{opportunity_id}',
    headers={
        'X-API-Key': 'YOUR_API_KEY',
        'Content-Type': 'application/json'
    },
    json={
        'score': 95,
        'notes': 'Upgraded to enterprise package'
    }
)

print(response.json())

Response

json
{
  "success": true,
  "data": {
    "id": "opp_abc123def456",
    "title": "Acme Inc - Plan Pro",
    "score": 95,
    "notes": "Upgraded to enterprise package",
    "pipeline_id": "pipe_01",
    "stage_id": "stg_proposal",
    "contact_id": "cnt_abc123",
    "contact_name": "John Doe",
    "contact_email": "john@example.com",
    "contact_company": "Acme Inc",
    "contact_title": "CEO",
    "owner_user_name": "Maria Silva",
    "updated_at": "2026-01-25T10:00:00Z"
  }
}

Errors

StatusCodeDescription
400VALIDATION_ERRORNo fields provided to update
404NOT_FOUNDOpportunity not found

GetRaze - AI-Powered Lead Generation