Companies
Create a company
Creates a company (status Prospect unless given, owned by the caller). An existing name returns 409 exists; similar names return 409 similar with a similar list — send confirm_new: true to create anyway. Optionally creates the first contact.
Authorization
AuthorizationheaderrequiredBearer token: API key (sk_…), OAuth access token (mcp_…) or mobile session (xk_…).
Module: CustomersScope:
crm.writeBody application/json
namestringrequiredCompany name (max 200 characters).
statusstringoptionaldefault: ProspectStatus.
Values
ACProspectcitystringoptionalCity.
sectorstringoptionalSector.
phonestringoptionalPhone.
websitestringoptionalWebsite.
addressstringoptionalAddress.
notestringoptionalNote.
owner_idintegeroptionalOwner user id (admins only).
visit_period_daysintegeroptionalVisit every N days.
potential_kgnumberoptionalMonthly potential quantity (installation's base unit).
contact_namestringoptionalFirst contact's name (becomes the main contact).
contact_titlestringoptionalFirst contact's job title.
contact_emailstringoptionalFirst contact's e-mail.
contact_phonestringoptionalFirst contact's phone.
confirm_newbooleanoptionalCreate even if similar names exist.
Errors
| HTTP | error | Meaning |
|---|---|---|
400 | invalid | Missing or invalid field (`message` explains). |
409 | exists | A company with this name exists (returned in `customer`). |
409 | similar | Similar names exist (`similar`); send `confirm_new: true` to create anyway. |
Request
curl -X POST https://ornek.solk.app/api/v1/customers \
-H "Authorization: Bearer $SOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Kuzey Plastik Sanayi",
"city": "Bursa",
"sector": "Plastik",
"phone": "+90 224 555 01 02",
"website": "kuzeyplastik.com.tr",
"contact_name": "Selin Kara",
"contact_title": "Satın Alma Müdürü",
"contact_email": "selin.kara@kuzeyplastik.com.tr",
"confirm_new": true
}'const res = await fetch("https://ornek.solk.app/api/v1/customers", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Kuzey Plastik Sanayi",
"city": "Bursa",
"sector": "Plastik",
"phone": "+90 224 555 01 02",
"website": "kuzeyplastik.com.tr",
"contact_name": "Selin Kara",
"contact_title": "Satın Alma Müdürü",
"contact_email": "selin.kara@kuzeyplastik.com.tr",
"confirm_new": true
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/customers",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
json={
"name": "Kuzey Plastik Sanayi",
"city": "Bursa",
"sector": "Plastik",
"phone": "+90 224 555 01 02",
"website": "kuzeyplastik.com.tr",
"contact_name": "Selin Kara",
"contact_title": "Satın Alma Müdürü",
"contact_email": "selin.kara@kuzeyplastik.com.tr",
"confirm_new": True
},
)
print(r.json())Response
{
"customer": {
"act": {
"addr": "Bursa",
"c": 31,
"mail": "selin.kara@kuzeyplastik.com.tr",
"n": "Kuzey Plastik Sanayi",
"tel": "+90 224 555 01 02",
"url": "/customers/31",
"wa": "902245550102",
"who": "Selin Kara"
},
"active": true,
"address": "",
"at_risk": false,
"barrier": "",
"can_edit": true,
"city": "Bursa",
"commit_kg": null,
"competitors": [],
"contacts": [
{
"customer": "Kuzey Plastik Sanayi",
"customer_id": 31,
"department": "",
"email": "selin.kara@kuzeyplastik.com.tr",
"id": 58,
"is_former": false,
"is_main": true,
"name": "Selin Kara",
"note": "",
"phone": "",
"rid": "003URRQi11tfUY7",
"title": "Satın Alma Müdürü",
"wa": ""
}
],
"created_at": "2026-10-02T20:07:00",
"currency": "EUR",
"currency_default": "",
"demos": [],
"events": [
{
"badge": null,
"dot": "#94a3b8",
"icon": "building",
"kind": "firma",
"note": "",
"opp_id": null,
"planned": false,
"state": null,
"sub": "Firma #31 · Deniz Aksoy",
"title": "Firma kaydı açıldı",
"url": "",
"when": "2026-10-02",
"who": ""
}
],
"extra_kg": null,
"id": 31,
"initials": "KP",
"last_visit": null,
"main_contact": {
"email": "selin.kara@kuzeyplastik.com.tr",
"name": "Selin Kara",
"phone": "",
"wa": ""
},
"mgmt_note": "",
"mgmt_support": false,
"name": "Kuzey Plastik Sanayi",
"next_visit_due": null,
"note": "",
"offers": [],
"open_actions": [],
"open_opps": 0,
"opps": [],
"orders": [],
"our_kg_current": null,
"our_kg_target": null,
"owner": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
},
"pending_state": null,
"period": 180,
"phone": "+90 224 555 01 02",
"potential_kg": null,
"prices": [],
"priority_score": 0.0,
"rid": "001QJi5Zr1Hk2VH",
"sector": "Plastik",
"share_current": null,
"share_start": null,
"share_target": null,
"status": "Prospect",
"status_label": "Prospect",
"supplier_note": "",
"threads": [],
"threads_n": 0,
"unit": "kg",
"visit_overdue_days": 0,
"visit_period_days": null,
"visit_postponed_until": null,
"visit_state": "none",
"visits": [],
"website": "kuzeyplastik.com.tr"
},
"ok": true
}{
"error": "similar",
"message": "Benzer adlı firma var — mevcut kaydı seçin ya da confirm_new=1 ile yeni açın.",
"ok": false,
"similar": [
{
"active": true,
"at_risk": false,
"city": "Kocaeli",
"currency": "EUR",
"currency_default": "",
"id": 2,
"initials": "FA",
"last_visit": "2026-09-24",
"main_contact": {
"email": "elif.karaca@filizambalaj.example",
"name": "Elif Karaca",
"phone": "0 (262) 000 27 12",
"wa": "902620002712"
},
"name": "Filiz Ambalaj Ltd. Şti.",
"next_visit_due": "2026-12-23",
"open_opps": 1,
"owner": {
"full_name": "Deniz Aksoy",
"id": 1,
"role": "admin",
"role_label": "Yönetici",
"username": "admin"
},
"pending_state": "soon",
"period": 90,
"phone": "0 (262) 000 83 56",
"potential_kg": 40000.0,
"rid": "001rutEPiRkEPfD",
"sector": "Gıda ambalajı",
"status": "AC",
"status_label": "Aktif Müşteri",
"unit": "kg",
"visit_overdue_days": -82,
"visit_state": "ok"
}
]
}Example responses were captured from a v22 installation running sample data; lists are shortened to two items.