Scrapers / Developer & File Tools

vCard (.vcf) Generator
hipersoft/vcard-vcf-generator
Turn a contact list into standards-compliant vCard (.vcf) files — one per contact plus a combined file — ready to import into any phone, Google Contacts, Outlook or CRM.
Total users
1Monthly users
0Total runs
83Per vcard generated
$0.002Last rebuilt
Oct 26, 2026Overview
Turn a contact list into standards-compliant vCard (.vcf) files — one per contact, plus a combined file — ready to import into any phone, Google Contacts, Outlook, Apple Contacts or CRM. Perfect for onboarding a team, an event guest list, or exporting a CRM segment.

What it does
- Builds vCard 3.0 files with name, org, title, phones, email, URL, address and notes.
- One
.vcfper contact and a combinedcontacts.vcffor a single import. - Proper escaping and line folding so the files import cleanly everywhere.
Use cases
- Sales & events — import hundreds of contacts into a phone/CRM at once.
- Onboarding — hand new hires a ready company contact list.
- Migrations — convert a spreadsheet of contacts into vCards.
Input
{ "contacts": [
{ "name": "Ada Lovelace", "email": "ada@example.com", "phone": "+1 555 0100", "org": "Analytical Engines", "title": "Mathematician" }
] }
Each contact supports: name (or firstName/lastName), email, phone, workPhone, org, title, url, address, city, state, zip, country, note.
Output

{ "name": "Ada Lovelace", "email": "ada@example.com", "phone": "+1 555 0100", "vcardUrl": "https://api.apify.com/v2/key-value-stores/.../records/vcard-0001.vcf" }
Output schema
| Field | Type | Description |
|---|---|---|
name |
string | Contact name. |
email |
string | Contact email. |
phone |
string | Contact phone. |
vcardUrl |
string (URL) | Link to the contact's .vcf file. |
FAQ
How do I import them all at once? Use the combined contacts.vcf saved in the key-value store.
Which apps support the files? Any that read vCard 3.0 — iOS/Android contacts, Google Contacts, Outlook, Apple Contacts, most CRMs.
Can I automate it? Yes — via integrations on the Apify platform and the Apify API.
Notes
Original clean-room implementation.
Input
| Field | Type | Description |
|---|---|---|
contacts requiredContacts | array | One object per contact. Supported keys: name (or firstName/lastName), email, phone, workPhone, org, title, url, address, city, state, zip, country, note. |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~vcard-vcf-generator/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"contacts": [
{
"name": "Ada Lovelace",
"email": "ada@example.com",
"phone": "+1 555 0100",
"org": "Analytical Engines",
"title": "Mathematician"
},
{
"firstName": "Alan",
"lastName": "Turing",
"email": "alan@example.com",
"phone": "+44 20 7946 0000"
}
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/vcard-vcf-generator").call(run_input={
"contacts": [
{
"name": "Ada Lovelace",
"email": "ada@example.com",
"phone": "+1 555 0100",
"org": "Analytical Engines",
"title": "Mathematician"
},
{
"firstName": "Alan",
"lastName": "Turing",
"email": "alan@example.com",
"phone": "+44 20 7946 0000"
}
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/vcard-vcf-generator').call({
"contacts": [
{
"name": "Ada Lovelace",
"email": "ada@example.com",
"phone": "+1 555 0100",
"org": "Analytical Engines",
"title": "Mathematician"
},
{
"firstName": "Alan",
"lastName": "Turing",
"email": "alan@example.com",
"phone": "+44 20 7946 0000"
}
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| vCard generated One contact turned into a vCard (.vcf) file | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs · 103 users · $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs · 22 users · $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs · 8 users · $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs · 3 users · $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs · 13 users · $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy — reliable, no captcha, no setup.
121 runs · 8 users · $0.001 / result scrapedSend the site and the fields. We build it and you get it first.