orkasa

Resources

Leads

list · get · create · update · archive

A lead is the person. What gets worked hangs off its operation.

Filters

GET /leads?temperature=&origin=&email=&assigned_agent_id=&include_archived=

email matches case-insensitively, because an address typed by a human is not reliably lowercased. That filter is what makes Zapier's Find Lead work as the search half of a find-or-create.

Create

POST /leads runs the same primitive as the UI: find-or-create the contact (matched on normalized phone and email), insert the lead, round-robin an agent, open the lead's operation, and fire the sanctions screen. The new operation's id comes back as operation_id.

full_namestringrequired
phonestring
emailstring
originstring

Includes email, the value for leads forwarded by a mailbox automation. That way the funnel attributes them instead of burying them in other.

operation_typebuy | rent

Optional. Given, the operation opens exactly as in the app. Omitted, the lead and its contact are created with no operation and operation_id comes back null: a raw lead to qualify.

budget_maxnumber
bedrooms_minnumber
intentstring
notesstring
email_subjectstring

Subject of the forwarded mail. Not stored on the lead.

email_bodystring

The mail body. Send it and the lead is qualified by the AI, exactly as an inbound WhatsApp message is. If absent, an origin: "email" lead falls back to notes — so a Zap that maps the Gmail body to notes qualifies without being reconfigured.

operation_type: "sell" is rejected with 422. A listing is negotiated with an owner and ends in a signed mandate; it never starts from this endpoint, and coercing it into a demand operation would be worse than refusing it.

Full example in Lead to viewing.

Archive

DELETE /leads/{id} is a soft archive (archived_at + archive_reason), never a hard delete. A lead is the root of contacts, operations, viewings and offers: really deleting it would orphan everything else.

Listing leads — the sellers — carry lead_status as NULL. A filter written as "not archived" drops them silently. To count supply, filter on operation_type, not on status.