Opportunities
Update an opportunity
Frequently changed fields: quantity, unit price (recorded in offer history when it changes), payment terms, close date (logged), next step date, note, product, type, line, name, forecast category and stage label. Use the stage endpoint to move stages.
Authorization
AuthorizationheaderrequiredBearer token: API key (sk_…), OAuth access token (mcp_…) or mobile session (xk_…).
Module: OpportunitiesScope:
crm.writePath parameters
idintegerrequiredOpportunity id.
Body application/json
potential_kgnumberoptionalMonthly quantity.
offer_pricenumberoptionalUnit price.
payment_daysintegeroptionalPayment terms (days).
close_datestringoptionalClose date (YYYY-MM-DD).
next_step_datestringoptionalNext step date.
notestringoptionalNote.
product_idintegeroptionalProduct.
typestringoptionalType.
linestringoptionalLine.
namestringoptionalName.
forecast_catstringoptionalForecast category.
Values
PipelineBest CaseCommitClosedOmitteddetail_statusstringoptionalDetail label matching the stage (Makro pipeline).
Errors
| HTTP | error | Meaning |
|---|---|---|
403 | forbidden | You may not see / edit this record. |
404 | not_found | Record not found. |
Request
curl -X POST https://ornek.solk.app/api/v1/opportunities/53/fields \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"close_date": "2026-11-16",
"forecast_cat": "Best Case",
"note": "Numune onayı bekleniyor."
}'const res = await fetch("https://ornek.solk.app/api/v1/opportunities/53/fields", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"close_date": "2026-11-16",
"forecast_cat": "Best Case",
"note": "Numune onayı bekleniyor."
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/opportunities/53/fields",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"close_date": "2026-11-16",
"forecast_cat": "Best Case",
"note": "Numune onayı bekleniyor."
},
)
print(r.json())Response
{
"ok": true,
"opp": {
"bant": 0,
"bant_a": false,
"bant_b": false,
"bant_n": false,
"bant_t": false,
"base_currency": "EUR",
"can_edit": true,
"can_revive": false,
"close_category": "",
"close_date": "2026-11-16",
"close_reason": "",
"closed_at": null,
"competitor": "Mevcut tedarikçi",
"cur_sym": "€",
"currency": "EUR",
"customer": "Kuzey Plastik Sanayi",
"customer_city": "Bursa",
"customer_id": 31,
"days_in_stage": 0,
"demos": [],
"detail_status": "",
"fc": "Best Case",
"gate_ok": false,
"gate_problems": [
"BANT kriterleri 4/4 sağlanmalı (Budget · Authority · Need · Time)"
],
"guide": "BANT 4/4",
"health": {
"grade": "success",
"label": "sağlıklı",
"score": 85
},
"health_color": "g",
"health_manual": false,
"health_note": "",
"health_why": [
[
"−15"
]
],
"id": 53,
"initials": "KP",
"is_account": false,
"is_open": true,
"last_update": "2026-10-02",
"lifetime_left": 180,
"line": "",
"logs": [
{
"date": "2026-10-02T20:07:00",
"from": null,
"note": "Proje açıldı (mobil)",
"to": "Qualify",
"user": "Deniz Aksoy"
}
],
"name": "Streç film tedariki",
"next_stage": "Viable",
"next_step": "Karar verici / yetkili kişiyi belirle (Authority)",
"note": "Numune onayı bekleniyor.",
"notes": [],
"offer_price": 2.35,
"offers": [],
"orders": [],
"owner": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
},
"payment_days": 60,
"potential_kg": 12000.0,
"prob": 0.1,
"probability": null,
"product": "",
"product_id": null,
"pu": "€/kg",
"rid": "006BMHmVNZ9nFLS",
"sla_days": 30,
"sla_left": 30,
"source": "",
"stage": "Qualify",
"stage_label": "Qualify",
"start_date": "2026-10-02",
"steps": [
{
"assignee": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
},
"auto": false,
"done": false,
"due_date": null,
"id": 467,
"note": "",
"stage": "Qualify",
"state": "open",
"title": "Karar verici / yetkili kişiyi belirle (Authority)"
}
],
"tags": [],
"tasks": [],
"threads": [],
"threads_n": 0,
"trend": "",
"trend_label": "Otomatik",
"type": "",
"unit": "kg",
"unit_code": "kg",
"value": 338400.0,
"value_base": 338400.0,
"value_short": "338K",
"visits": [],
"weighted": 33840.0
}
}Example responses were captured from a v22 installation running sample data; lists are shortened to two items.