vCard Simple API
A simplified endpoint for creating and updating vCard records. This endpoint automatically handles both operations in a single request.
This endpoint intelligently handles both creating new vCards and updating existing ones based on the parameters provided.
POST https://oqp.link/api/vcard-simple/
curl --request POST \
--url 'https://oqp.link/api/vcard-simple/' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data '{
"name": "Abdulmuti Salkini",
"theme": "vcard",
"settings": {
"background_type": "color",
"background_color": "#F5F5F5",
"first_name": "Abdulmuti",
"last_name": "Salkini",
"company": "company",
"job_title": "Project Manager",
"birthday": "1999-01-01"
}
}'
--url 'https://oqp.link/api/vcard-simple/' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data '{
"name": "Abdulmuti Salkini",
"theme": "vcard",
"settings": {
"background_type": "color",
"background_color": "#F5F5F5",
"first_name": "Abdulmuti",
"last_name": "Salkini",
"company": "company",
"job_title": "Project Manager",
"birthday": "1999-01-01"
}
}'
curl --request POST \
--url 'https://oqp.link/api/vcard-simple/' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data '{
"vcard_id": 123,
"settings": {
"company": "New Company Name",
"job_title": "Senior Manager"
}
}'
--url 'https://oqp.link/api/vcard-simple/' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data '{
"vcard_id": 123,
"settings": {
"company": "New Company Name",
"job_title": "Senior Manager"
}
}'
| Parameters | Details | Description |
|---|---|---|
| name | Required* String | The name/title of the vCard. (*Required for creating, optional for updating) |
| vcard_id | Optional Integer | ID of existing vCard to update. If provided, updates that vCard instead of creating new one. |
| url_lookup | Optional String | URL of existing vCard to update. Alternative to vcard_id for finding the vCard to update. |
| url | Optional String | Custom URL for the vCard. Auto-generated if not provided (recommended). |
| theme | Optional String | Theme identifier (e.g., "new-york", "vcard"). Default: "new-york" |
| description | Optional String | Description |
| domain_id | Optional Integer | Domain |
| settings | Optional object | JSON object containing vCard customization settings (see Settings Parameters below) |
Settings Parameters
All fields in the settings object are optional. When updating, only provided fields are changed.
| Field | Type | Description |
|---|---|---|
| Personal Information | ||
| first_name | String | First name (max 64 characters) |
| last_name | String | Last name (max 64 characters) |
| company | String | Company name (max 64 characters) |
| job_title | String | Job title (max 64 characters) |
| birthday | String | Birthday in YYYY-MM-DD format (e.g., "1994-08-27") |
| Background Customization | ||
| background_type | String | Type of background: "preset", "color", "gradient", or "image" |
| background_color | String | Hex color code (e.g., "#F5F5F5") |
| background_preset | String | Preset background name (when background_type is "preset") |
| background_gradient_one | String | First gradient color (hex code) |
| background_gradient_two | String | Second gradient color (hex code) |
| Font Settings | ||
| font_family | String | Font family identifier (default: "default") |
| font_size | Integer | Font size in pixels (14-22, default: 16) |
| Display Options | ||
| is_share_button_visible | Boolean | Show/hide share button (default: true) |
| is_download_button_visible | Boolean | Show/hide download button (default: true) |
| SEO Settings | ||
| title | String | Page title for SEO (max 70 characters) |
| meta_description | String | Meta description for SEO (max 160 characters) |
| meta_keywords | String | Meta keywords for SEO (max 160 characters) |
{
"data": {
"id": 123,
"url": "abc1234",
"full_url": "https://oqp.link/abc1234",
"name": "Abdulmuti Salkini",
"theme": "vcard",
"settings": {
"background_type": "color",
"background_color": "#F5F5F5",
"first_name": "Abdulmuti",
"last_name": "Salkini",
"company": "company",
"job_title": "Project Manager",
"birthday": "1999-01-01",
"is_share_button_visible": true,
"is_download_button_visible": true,
"font_size": 16
},
"message": "vCard created successfully"
}
}
{
"data": {
"id": 123,
"url": "abc1234",
"full_url": "https://oqp.link/abc1234",
"name": "Abdulmuti Salkini",
"theme": "vcard",
"settings": {
"company": "New Company Name",
"job_title": "Senior Manager"
},
"message": "vCard updated successfully"
}
}
What makes this endpoint special?
Auto URL Generation
Simply omit the url parameter and the system generates a unique URL automatically.
Smart Create/Update
One endpoint handles both operations. Include vcard_id or url_lookup to update, omit to create.
Partial Updates
Only send the fields you want to change. Other settings remain unchanged.
JSON Support
Clean JSON format for easy integration with modern applications.
Common Use Cases
- CRM Integration: Automatically create vCards when new contacts are added
- Employee Directory: Generate vCards for all staff members
- Event Management: Create vCards for event attendees
- Mobile Apps: Backend API for vCard management
- Bulk Import: Import vCards from external systems
Minimal Create (Auto-generated URL)
{
"name": "John Doe"
}
Update by ID (Partial Update)
{
"vcard_id": 123,
"settings": {
"company": "New Company Only"
}
}
Update by URL
{
"url_lookup": "john-doe-ceo",
"theme": "vcard",
"settings": {
"job_title": "Senior CEO"
}
}
PHP Example
$data = [
'name' => 'Abdulmuti Salkini',
'theme' => 'vcard',
'settings' => [
'first_name' => 'Abdulmuti',
'last_name' => 'Salkini',
'company' => 'company',
'job_title' => 'Project Manager'
]
];
$ch = curl_init('https://oqp.link/api/vcard-simple/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer {api_key}'
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
| Error | Status | Cause | Solution |
|---|---|---|---|
| Empty fields | 401 | Missing required name field |
Include the name field when creating |
| URL exists | 401 | Custom URL already taken | Use different URL or omit for auto-generation |
| Invalid authorization token | 401 | API key is invalid or missing | Check your API key in Authorization header |
| Resource not found | 404 | vCard ID or URL not found | Verify the vcard_id or url_lookup |
| Plan feature limit | 401 | Reached vCard creation limit | Upgrade plan or delete unused vCards |