Workspace

Parse a business card

Splits business-card lines read on the phone (OCR) into fields: name, title, department, company, mobile / other phone (fax skipped), e-mail, website, address, city. No image is sent, text only. When AI is available to the user (unless ai: false), the text is corrected with a fast model and every field is checked against the OCR text — an e-mail / phone / website / city not in the text, or a name / company unlike the words on the card, is rejected and the rule-based value kept (fields.ai_fields: fields corrected by AI, engine: rules | ai). match: an existing contact (e-mail or phone), company (e-mail domain, same name) or similarly named companies (similar); hidden_exists = a company with this name exists in another team. Matching does not use AI.

POST/api/v1/cards/parse

Authorization

Authorizationheaderrequired
Bearer token: API key (sk_…), OAuth access token (mcp_…) or mobile session (xk_…).
Module: CustomersScope: crm.write

Body application/json

linesarray<object>required
OCR lines: t text, h line height / image height (0–1, optional). Max 60 lines.
aibooleanoptionaldefault: True
false = do not use AI.

Errors

HTTPerrorMeaning
400emptyempty
403planplan
Request
curl -X POST https://ornek.solk.app/api/v1/cards/parse \
  -H "Authorization: Bearer $SOLK_API_KEY"
Response