{"openapi":"3.1.0","info":{"title":"vCard API","version":"1.0.0","description":"Generate and parse vCard (.vcf) contact cards. Build a standards-compliant vCard 3.0 from simple fields — name (or first/last), organisation, job title, one or more phone numbers and emails, websites, a postal address, birthday, note and a photo URL — ready to download as a .vcf or embed in a contact QR code (pair it with the QR API for \"scan to save contact\"). Or go the other way: parse any vCard string back into clean structured fields. Pure local processing — no key, no third-party service, nothing stored. Live. 3 endpoints. Built for digital business cards, contact QR codes, address-book import/export, CRM integrations and email-signature tools.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/vcard-api","description":"oanor gateway"}],"tags":[{"name":"vCard"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/generate":{"get":{"operationId":"get_v1_generate","tags":["vCard"],"summary":"Generate a vCard","description":"","parameters":[{"name":"first_name","in":"query","required":false,"description":"First name","schema":{"type":"string"},"example":"Ada"},{"name":"last_name","in":"query","required":false,"description":"Last name","schema":{"type":"string"},"example":"Lovelace"},{"name":"org","in":"query","required":false,"description":"Organisation","schema":{"type":"string"},"example":"Analytical Engine"},{"name":"title","in":"query","required":false,"description":"Job title","schema":{"type":"string"}},{"name":"phone","in":"query","required":false,"description":"Phone(s), comma-separated","schema":{"type":"string"},"example":"+1-555-0100"},{"name":"email","in":"query","required":false,"description":"Email(s), comma-separated","schema":{"type":"string"},"example":"ada@example.com"},{"name":"url","in":"query","required":false,"description":"Website(s)","schema":{"type":"string"}},{"name":"city","in":"query","required":false,"description":"City","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Country","schema":{"type":"string"}},{"name":"birthday","in":"query","required":false,"description":"Birthday (YYYY-MM-DD)","schema":{"type":"string"}},{"name":"note","in":"query","required":false,"description":"Note","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"lines":8,"vcard":"BEGIN:VCARD\r\nVERSION:3.0\r\nN:Lovelace;Ada;;;\r\nFN:Ada Lovelace\r\nORG:Analytical Engine\r\nTEL;TYPE=CELL,VOICE:+1-555-0100\r\nEMAIL;TYPE=INTERNET:ada@example.com\r\nEND:VCARD"},"meta":{"timestamp":"2026-06-02T16:52:02.387Z","request_id":"8ad1411a-bd59-41f4-8346-d6a31092ce76"},"status":"ok","message":"Generate a vCard","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/parse":{"get":{"operationId":"get_v1_parse","tags":["vCard"],"summary":"Parse a vCard","description":"","parameters":[{"name":"vcard","in":"query","required":true,"description":"vCard text to parse","schema":{"type":"string"},"example":"BEGIN:VCARD\nVERSION:3.0\nFN:Ada Lovelace\nEMAIL:ada@example.com\nTEL:+1-555-0100\nEND:VCARD"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"urls":[],"emails":["ada@example.com"],"phones":["+1-555-0100"],"full_name":"Ada Lovelace"},"meta":{"timestamp":"2026-06-02T16:52:02.499Z","request_id":"024aee86-ac17-4b8d-aa74-bc9cc2836e7f"},"status":"ok","message":"Parse a vCard","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; this gateway requires x-api-key","name":"vCard API","note":"Generate a vCard (.vcf) from fields (name/first_name/last_name, org, title, phone, email, url, address fields, birthday, note, photo_url — phone/email/url accept comma-separated lists) via /v1/generate, and parse a vCard back into structured fields via /v1/parse. vCard 3.0 for broad compatibility (incl. contact QR codes — pair with the QR API). Instant, nothing stored.","source":"Local vCard 3.0 build/parse — no key, no upstream","endpoints":3},"meta":{"timestamp":"2026-06-02T16:52:02.603Z","request_id":"face0f90-dd4e-48be-9fab-7c03f99f2998"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1600,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":780,"monthly_call_quota":33000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2740,"monthly_call_quota":192000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6340,"monthly_call_quota":980000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/vcard-api"}