# Create a contact Create a new contact with optional tags, custom fields, and pipeline stage assignment. Requires API key authentication. Note: Free plan users have a monthly limit of 100 contacts. If the limit is reached, the request will return a 429 status code. Endpoint: POST /api-create-contact Version: 1.1.0 Security: ApiKeyAuth ## Request fields (application/json): - `name` (string, required) Contact's first name Example: "John" - `last_name` (string,null) Contact's last name Example: "Doe" - `phone` (string,null) Contact's phone number (will be normalized automatically) Example: "+573188779043" - `email` (string,null) Contact's email address Example: "john.doe@example.com" - `whatsapp_id` (string,null) WhatsApp ID (defaults to phone if not provided) Example: "+573188779043" - `pipeline_stage_id` (string,null) Pipeline stage ID to assign to this contact - `profile_picture_url` (string,null) URL to the contact's profile picture - `address` (string,null) Contact's address - `city` (string,null) Contact's city - `province` (string,null) Contact's province/state - `company` (string,null) Contact's company name - `notes` (string,null) Additional notes about the contact - `tags` (array) Array of tag IDs to assign to the contact Example: ["tag-uuid-1","tag-uuid-2"] - `custom_fields` (object) Custom field values (field_id: value pairs) Example: {"field-uuid-1":"Value 1","field-uuid-2":"Value 2"} ## Response 201 fields (application/json): - `success` (boolean) - `data` (object) - `data.id` (string) - `data.user_id` (string) - `data.name` (string) - `data.last_name` (string,null) - `data.phone` (string) - `data.whatsapp_id` (string,null) - `data.email` (string,null) - `data.profile_picture_url` (string,null) URL to the contact's profile picture - `data.pipeline_stage_id` (string,null) Current pipeline stage ID for this contact - `data.pipeline_stage` (object) - `data.pipeline_stage.color` (string) Example: "#3B82F6" - `data.pipeline_stage.stage_order` (integer) Order/position of this stage in the pipeline - `data.pipeline_stage.is_system` (boolean) Whether this is a system-created stage - `data.pipeline_stage.created_at` (string) - `data.pipeline_stage.updated_at` (string) - `data.tags` (array) - `data.custom_fields` (array) Custom field values for this contact - `data.custom_fields.customer_id` (string) - `data.custom_fields.field_id` (string) - `data.custom_fields.field_value` (string,null) - `data.custom_fields.field` (object) - `data.custom_fields.field.field_name` (string) Example: "Company" - `data.custom_fields.field.field_type` (string) Enum: "text", "email", "phone", "number", "date", "select" - `data.custom_fields.field.field_options` (array,null) Options for select type fields - `data.custom_fields.field.is_required` (boolean) - `data.custom_fields.field.field_order` (integer) - `message` (string) Example: "Contact created successfully" ## Response 400 fields (application/json): - `error` (string, required) Error message ## Response 401 fields (application/json): - `error` (string, required) Error message ## Response 409 fields (application/json): - `error` (string, required) Error message ## Response 429 fields (application/json): - `error` (string) - `details` (string) ## Response 500 fields (application/json): - `error` (string, required) Error message