1. Contact
Hatif
  • Rate Limiting
  • Account API
    • Service Login
      POST
  • Channels API
    • Get Channels
      GET
  • Support API
    • Upload Image, Video, or PDF
      POST
    • Upload Audio File
      POST
  • Whatsapp API
    • Send Text
      POST
    • Send Template
      POST
    • Send Image
      POST
    • Send Audio
      POST
    • Send Video
      POST
    • Send File
      POST
    • List Templates (Service Account)
      GET
  • Contact
    • Set Property Value on Contact
      PUT
    • Search Contacts
      POST
    • Delete Property Value on Contact
      DELETE
    • Create Contact
      POST
    • Update Contact
      PUT
    • Get Contacts
      GET
    • Get Contact By Id
      GET
    • Create Bulk Contacts vCards
      POST
    • Contacts History
      GET
  • Contact Properties
    • List Contact Properties
      GET
    • Contact Properties Statistics
      POST
    • Create Contact Property
      POST
    • Update Contact Property
      PUT
    • Delete Contact Property
      DELETE
  • Workspace API
    • Get Workspace Users
  • Conversations API
    • Get Conversation Timeline
    • List Conversations
    • Create Conversation
    • Assign Conversation
    • Get Conversation
  • Outbound IVR API
    • Create Outbound IVR
  • Tags API
    • Tag a conversation
    • Create Tag
    • Delete Tag
    • Update Tag
    • List Tags
  • Conversations - Service Account
  • Call Webhook
  • WhatsApp Message Webhook
  • Schemas
    • Call Webhook
    • WhatsApp Message Webhook
    • ServiceAccountTemplateDto
    • ConversationDto
    • CreateTagDto
    • ServiceAccountTemplateParameterDto
    • ChannelConversationDto
    • UpdateTagDto
    • TemplateParameterDto
    • TagDto
    • ParameterValueDto
    • ConversationTimelineDto
    • PagedResultOfTagDto
    • ChannelNotFoundError
    • AiSummaryDto
    • ReplyInfoDto
    • InternalThreadDto
    • LocationMessageDto
    • AssignationInfoDto
    • PagedResultOfConversationDto
    • PagedResultOfConversationTimelineDto
  1. Contact

Create Bulk Contacts vCards

POST
/v1/contacts/import/vcards
Parses one or more vCard strings (the standard .vcf contact format used by phones/email clients) and bulk-creates/updates contacts from them.
vCard field mapping:
vCard lineMaps to
FN:name
TEL...:phoneNumber (parses past TEL;type=CELL;...: prefixes to the actual number)
EMAIL...:email
ORG:company
TITLE:position
Duplicate handling : when a parsed contact's phone number already exists, duplicateStrategy controls what happens:
ValueNameBehavior
1Skip (default)Leave the existing contact untouched
2UpdateOverwrite the existing contact with the imported data
3ErrorMark that entry as failed instead of touching the existing contact

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/jsonRequired

Examples

Responses

🟢200OK
application/json
Per-vCard import results.
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.voxa.sa/v1/contacts/import/vcards' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "vCards": [
        "BEGIN:VCARD\nVERSION:3.0\nFN:Ahmed Al-Otaibi\nTEL:+966501234567\nEMAIL:ahmed@example.com\nORG:Acme Co\nTITLE:Manager\nEND:VCARD"
    ],
    "duplicateStrategy": 1
}'
Response Response Example
{
    "totalContacts": 1,
    "successCount": 1,
    "failedCount": 0,
    "skippedCount": 0,
    "updatedCount": 0,
    "results": [
        {
            "phoneNumber": "+966501334567",
            "name": "Ahmed Noshy",
            "contactId": "3a21f3...............",
            "isSuccess": true,
            "status": 1,
            "errorMessage": null
        }
    ]
}
Modified at 2026-06-19 18:59:38
Previous
Get Contact By Id
Next
Contacts History
Built with