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.
Authorization
Authorizationheaderrequiredcrm.writeBody application/json
linesarray<object>requiredt text, h line height / image height (0–1, optional). Max 60 lines.aibooleanoptionaldefault: Truefalse = do not use AI.Errors
| HTTP | error | Meaning |
|---|---|---|
400 | empty | empty |
403 | plan | plan |
curl -X POST https://ornek.solk.app/api/v1/cards/parse \
-H "Authorization: Bearer $SOLK_API_KEY"const res = await fetch("https://ornek.solk.app/api/v1/cards/parse", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/v1/cards/parse",
headers={"Authorization": f"Bearer {os.environ['SOLK_API_KEY']}"},
)
print(r.json())