Skip to Content
Public APICreate Contact

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/contacts

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/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" }
FieldRequiredNotes
phone_numberyesCustomer’s phone in country-code + number format, no + and no special characters. E.g. +91 98765 43210919876543210
whatsapp_idnoWhatsApp ID if it differs from phone_number. Defaults to phone_number
display_namenoContact’s name (name is accepted as an alias)
emailnoContact email
website_urlnoContact website
tagsnoArray of tag strings to attach on creation
custom_fieldsnoFree-form key/value object stored against the contact
notesnoFree-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

CodeMeaning
201 CreatedContact created
400 Bad RequestMissing phone_number or malformed payload
401 UnauthorizedAPI key invalid or missing
409 ConflictA contact with this phone number already exists
429 Too Many RequestsRate limit exceeded

Implementation tips

  • Normalize phone numbers at the boundary — strip +, spaces, dashes, parentheses before sending. Only digits are accepted.
  • Treat 409 as “already imported” — fetch the returned id and use the tag / note endpoints to enrich it.
  • Pair with Get Users to read contacts back, and the tag / note endpoints to enrich them.