## Create Contact **post** `/print-mail/v1/contacts` Creates a contact. This will also verify the contact's address **if you create it using a live API key**. To sucessfully create a contact, either a `firstName`, a `companyName`, or both are required. You can supply both, but you **cannot** supply neither. You have the option to supply the entire address (except for `countryCode`) via `addressLine1`, in which case PostGrid will parse it automatically. However, this is **not guaranteed to be correct**, so we recommend passing along the structured address fields (`city`, `provinceOrState`, etc) if you have them. _Note that if you create a contact that has identical information to another contact, this will simply update the description of the existing contact and return it. This avoids creating duplicate contacts._ ### Body Parameters - `contact_create: ContactCreate` - `ContactCreateWithFirstName = object { addressLine1, countryCode, firstName, 13 more }` - `addressLine1: string` The first line of the contact's address. - `countryCode: string` The ISO 3611-1 country code of the contact's address. - `firstName: string` - `addressLine2: optional string` Second line of the contact's address, if applicable. - `city: optional string` The city of the contact's address. - `companyName: optional string` Company name of the contact. - `description: optional string` An optional string describing this resource. Will be visible in the API and the dashboard. - `email: optional string` Email of the contact. - `forceVerifiedStatus: optional boolean` If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise. - `jobTitle: optional string` Job title of the contact. - `lastName: optional string` Last name of the contact. - `metadata: optional map[unknown]` See the section on Metadata. - `phoneNumber: optional string` Phone number of the contact. - `postalOrZip: optional string` The postal or ZIP code of the contact's address. - `provinceOrState: optional string` Province or state of the contact's address. - `skipVerification: optional boolean` If `true`, PostGrid will skip running this contact's address through our address verification system. - `ContactCreateWithCompanyName = object { addressLine1, companyName, countryCode, 13 more }` - `addressLine1: string` The first line of the contact's address. - `companyName: string` - `countryCode: string` The ISO 3611-1 country code of the contact's address. - `addressLine2: optional string` Second line of the contact's address, if applicable. - `city: optional string` The city of the contact's address. - `description: optional string` An optional string describing this resource. Will be visible in the API and the dashboard. - `email: optional string` Email of the contact. - `firstName: optional string` First name of the contact. - `forceVerifiedStatus: optional boolean` If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise. - `jobTitle: optional string` Job title of the contact. - `lastName: optional string` Last name of the contact. - `metadata: optional map[unknown]` See the section on Metadata. - `phoneNumber: optional string` Phone number of the contact. - `postalOrZip: optional string` The postal or ZIP code of the contact's address. - `provinceOrState: optional string` Province or state of the contact's address. - `skipVerification: optional boolean` If `true`, PostGrid will skip running this contact's address through our address verification system. ### Returns - `Contact = object { id, addressLine1, addressStatus, 20 more }` - `id: string` A unique ID prefixed with contact_ - `addressLine1: string` The first line of the contact's address. - `addressStatus: "verified" or "corrected" or "failed"` One of `verified`, `corrected`, or `failed`. - `"verified"` - `"corrected"` - `"failed"` - `countryCode: string` The ISO 3611-1 country code of the contact's address. - `createdAt: string` The UTC time at which this resource was created. - `live: boolean` `true` if this is a live mode resource else `false`. - `object: "contact"` Always `contact`. - `"contact"` - `updatedAt: string` The UTC time at which this resource was last updated. - `addressErrors: optional string` A series of human-readable errors/warnings that were raised when running the provided address through our address verification. - `addressLine2: optional string` Second line of the contact's address, if applicable. - `city: optional string` The city of the contact's address. - `companyName: optional string` Company name of the contact. - `description: optional string` An optional string describing this resource. Will be visible in the API and the dashboard. - `email: optional string` Email of the contact. - `firstName: optional string` First name of the contact. - `forceVerifiedStatus: optional boolean` If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise. - `jobTitle: optional string` Job title of the contact. - `lastName: optional string` Last name of the contact. - `metadata: optional map[unknown]` See the section on Metadata. - `phoneNumber: optional string` Phone number of the contact. - `postalOrZip: optional string` The postal or ZIP code of the contact's address. - `provinceOrState: optional string` Province or state of the contact's address. - `skipVerification: optional boolean` If `true`, PostGrid will skip running this contact's address through our address verification system. ### Example ```http curl https://api.postgrid.com/print-mail/v1/contacts \ -H 'Content-Type: application/json' \ -H "X-API-Key: $POSTGRID_PRINT_MAIL_API_KEY" \ -d '{ "addressLine1": "addressLine1", "countryCode": "countryCode", "firstName": "firstName" }' ``` #### Response ```json { "id": "contact_pxd7wnnD1xY6H6etKNvjb4", "object": "contact", "live": false, "companyName": "PostGrid", "addressLine1": "90 CANAL ST STE 600", "city": "BOSTON", "provinceOrState": "MA", "postalOrZip": "90210-1234", "countryCode": "US", "skipVerification": false, "forceVerifiedStatus": false, "addressStatus": "verified", "createdAt": "2022-02-16T15:08:41.052Z", "updatedAt": "2022-02-16T15:08:41.052Z" } ```