Create Contact
Add a new contact to your Splashify Pro address book. Useful for pushing sign-ups, leads, or CRM records into Splashify so you can message and segment them.
Endpoint
POST https://api.splashifypro.com/api/v1/public/contactsHeaders
| Header | Value |
|---|---|
Authorization | Basic YOUR_API_KEY |
Content-Type | application/json |
Request body
{
"phone_number": "919876543210",
"display_name": "John Doe",
"email": "[email protected]",
"website_url": "https://example.com",
"tags": ["lead", "website"],
"custom_fields": {
"company": "Acme Inc",
"plan": "pro"
},
"notes": "Imported from CRM on signup"
}| Field | Required | Notes |
|---|---|---|
phone_number | yes | Customer’s phone in country-code + number format, no + and no special characters. E.g. +91 98765 43210 → 919876543210 |
whatsapp_id | no | WhatsApp ID if it differs from phone_number. Defaults to phone_number |
display_name | no | Contact’s name (name is accepted as an alias) |
email | no | Contact email |
website_url | no | Contact website |
tags | no | Array of tag strings to attach on creation |
custom_fields | no | Free-form key/value object stored against the contact |
notes | no | Free-text note |
Example
curl -X POST https://api.splashifypro.com/api/v1/public/contacts \
-H "Authorization: Basic YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "919876543210",
"display_name": "John Doe",
"email": "[email protected]",
"tags": ["lead", "website"]
}'Successful response — 201 Created
{
"result": true,
"message": "Contact created successfully",
"contact": {
"id": "a537a43e-49b7-4306-9763-6a97417de0bb",
"whatsapp_id": "919876543210",
"phone_number": "919876543210",
"display_name": "John Doe",
"email": "[email protected]",
"website_url": "",
"tags": ["lead", "website"],
"custom_fields": { },
"notes": "",
"created_at": "2026-06-20T08:48:02Z"
}
}Keep the returned contact.id — you can pass it as contact_id to the tag, note, and delete endpoints instead of phone_number.
Error response — contact already exists — 409 Conflict
{
"result": false,
"message": "A contact with this phone number already exists",
"id": "a537a43e-49b7-4306-9763-6a97417de0bb"
}The id field carries the existing contact’s UUID so you can update it instead.
Status codes
| Code | Meaning |
|---|---|
201 Created | Contact created |
400 Bad Request | Missing phone_number or malformed payload |
401 Unauthorized | API key invalid or missing |
409 Conflict | A contact with this phone number already exists |
429 Too Many Requests | Rate limit exceeded |
Implementation tips
- Normalize phone numbers at the boundary — strip
+, spaces, dashes, parentheses before sending. Only digits are accepted. - Treat
409as “already imported” — fetch the returnedidand use the tag / note endpoints to enrich it. - Pair with Get Users to read contacts back, and the tag / note endpoints to enrich them.