Get Opportunity
GET/external/v1/opportunities/:idRetrieves a specific opportunity/lead by ID, including its contact, pipeline/stage, sector, discard reason, product line items and internal comments.
Authentication
Requires opportunities:read permission.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The unique identifier of the opportunity |
Request
bash
curl --request GET \
--url "https://app.getraze.com/external/v1/opportunities/opp_abc123def456" \
--header "X-API-Key: YOUR_API_KEY"javascript
const axios = require('axios');
const opportunityId = 'opp_abc123def456';
const response = await axios.get(
`https://app.getraze.com/external/v1/opportunities/${opportunityId}`,
{ headers: { 'X-API-Key': 'YOUR_API_KEY' } }
);
console.log(response.data);python
import requests
opportunity_id = 'opp_abc123def456'
response = requests.get(
f'https://app.getraze.com/external/v1/opportunities/{opportunity_id}',
headers={'X-API-Key': 'YOUR_API_KEY'}
)
print(response.json())Response
json
{
"success": true,
"data": {
"id": "opp_abc123def456",
"title": "Acme Inc - Plan Pro",
"value": 50000.00,
"currency": "BRL",
"probability": 60,
"expected_close_date": "2026-03-31",
"score": 85,
"source": "linkedin",
"notes": "Interested in enterprise plan",
"pipeline_id": "pipe_01",
"pipeline_name": "Sales",
"stage_id": "stg_proposal",
"stage_name": "Proposal",
"sector_id": "sec_01",
"sector_name": "Inbound",
"discard_reason_id": null,
"discard_reason": null,
"campaign_id": "camp_xyz789",
"owner_user_id": "usr_123",
"contact_id": "cnt_abc123",
"contact_name": "John Doe",
"contact_email": "john@example.com",
"contact_phone": "+5511999999999",
"contact_company": "Acme Inc",
"contact_title": "CEO",
"campaign_name": "Q1 Outreach",
"owner_user_name": "Maria Silva",
"owner_user_email": "maria@acme.com",
"sent_at": "2026-01-15T10:30:00Z",
"won_at": null,
"lost_at": null,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-20T14:00:00Z",
"products": [
{
"id": "opx_01",
"product_id": "prod_01",
"name": "Plan Pro",
"quantity": 1,
"unit_price": 199.00,
"total_price": 199.00,
"discount_percent": 0,
"discount_value": 0
}
],
"comments": [
{
"id": "cmt_01",
"content": "Spoke with the CFO, sending proposal.",
"user_name": "Maria Silva",
"created_at": "2026-01-18T11:00:00Z"
}
]
}
}Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique opportunity identifier |
title | string | Opportunity title |
value | number | Opportunity value |
currency | string | Currency code |
probability | integer | Win probability (%) |
expected_close_date | string | Forecast close date |
score | integer | Lead score |
source | string | Lead source |
notes | string | Additional notes |
pipeline_id / pipeline_name | string | Pipeline |
stage_id / stage_name | string | Current stage |
sector_id / sector_name | string | Sector/team (nullable) |
discard_reason_id / discard_reason | string | Loss reason when discarded (nullable) |
campaign_id / campaign_name | string | Associated campaign (nullable) |
owner_user_id / owner_user_name / owner_user_email | string | Assigned seller (nullable) |
contact_* | string | Linked contact summary |
sent_at … lost_at | string | Lifecycle timestamps per stage (nullable) |
products | array | Product/service line items (product_id, name, quantity, unit_price, total_price, discounts) |
comments | array | Internal comments (id, content, user_name, created_at) |
TIP
Need the full stage-change trail (entry/exit timestamps per stage)? Use Opportunity History.
Errors
| Status | Code | Description |
|---|---|---|
| 404 | NOT_FOUND | Opportunity not found |