--- title: Contacts API description: Upsert normalized contact records and import contacts in bulk. --- import Endpoint from '../../../components/Endpoint.astro'; `phone_number` is required. Optional contact fields include name, email, city, location, source, lead status, custom instruction, tags, and note. ```python import os, requests contact = requests.post( "https://api.vaniagent.com/api/developer/v1/contacts", headers={"X-API-Key": os.environ["VANIAGENT_API_KEY"]}, json={ "phone_number": "+919876543210", "contact_name": "Asha Rao", "source": "crm_webhook", "lead_status": "new", "tags": ["demo-request", "south-region"], "note": "Requested a product demo.", }, ) contact.raise_for_status() ``` Supported normalized sources and lead statuses are listed in **Contacts → Statuses, sources, and tags**. Upsert semantics help prevent duplicate application records, but callers should still normalize numbers consistently.