vCard QR Code Decoder

Decode vCard QR codes to read names, phone numbers and email addresses

vCard

Our free vCard QR code decoder extracts contact details encoded in electronic business-card QR codes, such as names, phone numbers, email addresses and organisations. vCard text begins with BEGIN:VCARD and uses named properties including FN for a formatted name, TEL for a phone number and EMAIL for an email address.

Need to decode vCard barcodes in your app?

Copy the example below to get started using our free Barcode Parser API. No API key needed.

cURL Node.js Python C# Go PHP Java HTML
barcode=$'BEGIN:VCARD\x0aVERSION:3.0\x0aFN:John Smith\x0aTEL:+441223123456\x0aEMAIL:john@example.com\x0aEND:VCARD'
curl -sS -G https://parser.orcascan.com/ \
    --data-urlencode "barcode=$barcode" \
    --data-urlencode 'type=vcard'
// Node.js 18+
var barcode = "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+441223123456\nEMAIL:john@example.com\nEND:VCARD";
var url = "https://parser.orcascan.com/?barcode=" + encodeURIComponent(barcode) + "&type=vcard";

fetch(url)
    .then(function(res) { return res.json(); })
    .then(console.log);
import json
from urllib.parse import quote
from urllib.request import urlopen

barcode = "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+441223123456\nEMAIL:john@example.com\nEND:VCARD"
url = "https://parser.orcascan.com/?barcode=" + quote(barcode, safe="") + "&type=vcard"

with urlopen(url) as response:
    print(json.load(response))
using System;
using System.Net.Http;

var barcode = "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+441223123456\nEMAIL:john@example.com\nEND:VCARD";
var url = "https://parser.orcascan.com/?barcode=" + Uri.EscapeDataString(barcode) + "&type=vcard";

using var client = new HttpClient();
Console.WriteLine(await client.GetStringAsync(url));
package main

import (
    "io"
    "net/http"
    "net/url"
    "os"
)

func main() {
    barcode := "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+441223123456\nEMAIL:john@example.com\nEND:VCARD"
    endpoint := "https://parser.orcascan.com/?barcode=" + url.QueryEscape(barcode) + "&type=vcard"
    res, err := http.Get(endpoint)
    if err != nil { panic(err) }
    defer res.Body.Close()
    io.Copy(os.Stdout, res.Body)
}
<?php
$barcode = "BEGIN:VCARD\x0aVERSION:3.0\x0aFN:John Smith\x0aTEL:+441223123456\x0aEMAIL:john@example.com\x0aEND:VCARD";
$url = "https://parser.orcascan.com/?barcode=" . rawurlencode($barcode) . "&type=vcard";

echo file_get_contents($url);
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;

class BarcodeParser {
    public static void main(String[] args) throws Exception {
        String barcode = "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+441223123456\nEMAIL:john@example.com\nEND:VCARD";
        String url = "https://parser.orcascan.com/?barcode=" +
            URLEncoder.encode(barcode, StandardCharsets.UTF_8) + "&type=vcard";
        var request = HttpRequest.newBuilder(URI.create(url)).build();
        var response = HttpClient.newHttpClient().send(
            request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<!doctype html>
<html>
<body>
<pre id="result">Loading...</pre>
<script>
var barcode = "BEGIN:VCARD\nVERSION:3.0\nFN:John Smith\nTEL:+441223123456\nEMAIL:john@example.com\nEND:VCARD";
var url = "https://parser.orcascan.com/?barcode=" + encodeURIComponent(barcode) + "&type=vcard";
fetch(url)
    .then(function(res) { return res.json(); })
    .then(function(json) {
        document.getElementById("result").textContent = JSON.stringify(json, null, 2);
    });
</script>
</body>
</html>

Need to decode lots of vCard barcodes?

Import a spreadsheet of barcodes and automatically extract their data into separate columns.

Decode barcodes in bulk →

Need to extract vCard data as you scan?

Scan barcodes with your phone and automatically capture their data in a shared spreadsheet.

Scan with your phone →

Frequently asked questions

What marks the beginning and end of vCard QR data?

A vCard record starts with BEGIN:VCARD and ends with END:VCARD. A VERSION property identifies the vCard version used.

What do FN, TEL and EMAIL mean in a vCard?

FN contains the formatted name, TEL a telephone number and EMAIL an email address. Other properties can include ORG, ADR and URL.

Why do some vCard fields contain colons, semicolons or escaped characters?

The colon separates a property name and its value; semicolons can separate parameters or structured values. Escaping and line folding allow special characters and long content.

Need help tracking vCard barcodes?

We've helped organizations of all sizes tackle barcode challenges, chat with our team live for help to find a solution.