Opportunities
Update BANT
Sets the Budget, Authority, Need and Timing criteria; the matching checklist steps are updated too.
Authorization
AuthorizationheaderrequiredBearer token: API key (sk_…), OAuth access token (mcp_…) or mobile session (xk_…).
Module: OpportunitiesScope:
crm.writePath parameters
idintegerrequiredOpportunity id.
Body application/json
bant_bbooleanoptionalBudget confirmed.
bant_abooleanoptionalAuthority known.
bant_nbooleanoptionalNeed confirmed.
bant_tbooleanoptionalTiming known.
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/bant \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"bant_b": true,
"bant_a": true,
"bant_n": true,
"bant_t": true
}'const res = await fetch("https://ornek.solk.app/api/v1/opportunities/53/bant", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"bant_b": true,
"bant_a": true,
"bant_n": true,
"bant_t": true
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/opportunities/53/bant",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"bant_b": True,
"bant_a": True,
"bant_n": True,
"bant_t": True
},
)
print(r.json())Response
{
"message": "BANT güncellendi (4/4).",
"ok": true,
"opp": {
"bant": 4,
"bant_a": true,
"bant_b": true,
"bant_n": true,
"bant_t": true,
"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": true,
"gate_problems": [],
"guide": "BANT 4/4",
"health": {
"grade": "success",
"label": "sağlıklı",
"score": 90
},
"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": "Ön koşullar tamam → Viable aşamasına geçir",
"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": true,
"done": true,
"due_date": null,
"id": 467,
"note": "otomatik: BANT kutusu",
"stage": "Qualify",
"state": "done",
"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.