# Create or update a contact `POST /api/contacts` (operationId: `createContact`, group: Contacts) Saves a contact by phone number. A number that already exists is updated, and any extra fields you send are merged into its custom attributes. The phone number is normalised and must be a valid mobile number. Part of the core API, included in the Growth and Scale plans. Any one of these scopes is enough: `contacts`. **Request body** (JSON, required) | Field | Type | Required | Description | | --- | --- | --- | --- | | `phone` | string | yes | The contact’s phone number with the country code. A 10-digit number with no country code is treated as Indian (91 is added). | | `name` | string | no | Display name. | | `email` | string | no | Email address. | | `company` | string | no | Company. | | `tags` | string | no | Comma-separated tags, for example "vip,hosting". | | `status` | string | no | CRM pipeline status. | Example: ```json { "phone": "919876543210", "name": "Ravi Kumar", "email": "ravi@example.com", "company": "Kumar Hosting", "tags": "vip,hosting" } ``` **Response 200**: Saved. Example: ```json { "success": true, "message": "Contact successfully saved." } ``` **Errors specific to this call.** The common ones (401, 403, 429 and the rest) are in the [Errors guide](https://inboxwa.online/docs/api/guide/errors.md). | Status | error | When | | --- | --- | --- | | 400 | `Phone number is required.` | phone is missing. | | 400 | `too short` | The phone number is not valid. The reason is one of empty, no digits, too short, too long or not a mobile. | Part of the InboxWA API reference: https://inboxwa.online/docs/api . Full reference as one document: https://inboxwa.online/docs/api.md . OpenAPI: https://inboxwa.online/openapi.json