Contact Assets

vCard Architect

Compose a production-grade digital contact card — import an existing .vcf, embed a photo, multiple phones and emails, work and home addresses, social URLs, and metadata — with live preview and QR handoff.

JSON API reference
01

Identity

Name & presence. Structured N: and FN: fields. Upload a photo (embedded in .vcf) or link a public image URL.

02

Professional

03

Contact

04

Web & Social

05

Addresses

06

Personal & Meta

Open in QR Architect
API & agent accessPOST /api/tools/vcard.json

JSON contract

vCard Architect uses the same fields in the browser studio and viaPOST /api/tools/vcard.json. Full toolkit catalog:/api/tools/manifest.json.

POST the full contact object as JSON. Defaults to vCard 4.0 — pass version:'3.0' for legacy clients. Set download:true for a .vcf file.

  • Required: firstName, lastName. See availableFields in responses for the full catalog.
  • version: '4.0' (default) or '3.0'. v4 uses GENDER and data-URI PHOTO; v3 uses X-GENDER and ENCODING=b.
  • photo.base64 (or data URL) embeds PHOTO in .vcf; photo.url uses a URI. Set includePhoto:false to omit.
  • QR / API contact payloads omit embedded photos by default to keep QR matrices scannable.
  • Legacy flat address keys (street, city, …) map to workAddress automatically.
POST /api/tools/vcard.json
Content-Type: application/json

{
  "firstName": "Roy",
  "lastName": "Dawson",
  "middleName": "IV",
  "prefix": "Mr.",
  "organization": "Ready For Us",
  "department": "Engineering",
  "title": "Principal Engineer",
  "email": "roy.dawson.iv@gmail.com",
  "mobile": "+15551234567",
  "url": "https://imyourboyroy.com",
  "linkedIn": "https://linkedin.com/in/example",
  "workAddress": {
    "street": "123 Main St",
    "city": "Austin",
    "region": "TX",
    "postalCode": "78701",
    "country": "USA"
  },
  "photo": {
    "url": "https://imyourboyroy.com/assets/og-image.png"
  },
  "note": "Available for consulting.",
  "birthday": "1990-01-15",
  "timezone": "America/Chicago",
  "version": "4.0",
  "download": false
}