# Contacts ## 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" } ``` ## List Contacts **get** `/print-mail/v1/contacts` Get a list of contacts. ### Query Parameters - `limit: optional number` - `search: optional string` You can supply any string to help narrow down the list of resources. For example, if you pass `"New York"` (quoted), it will return resources that have that string present somewhere in their response. Alternatively, you can supply a structured search query. See the documentation on `StructuredSearchQuery` for more details. - `skip: optional number` ### Returns - `data: array of Contact` - `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. - `limit: number` - `object: "list"` - `"list"` - `skip: number` - `totalCount: number` ### Example ```http curl https://api.postgrid.com/print-mail/v1/contacts \ -H "X-API-Key: $POSTGRID_PRINT_MAIL_API_KEY" ``` #### Response ```json { "skip": 0, "limit": 10, "totalCount": 1, "object": "list", "data": [ { "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" } ] } ``` ## Get Contact **get** `/print-mail/v1/contacts/{id}` Retrieve a contact. ### Path Parameters - `id: string` ### 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/$ID \ -H "X-API-Key: $POSTGRID_PRINT_MAIL_API_KEY" ``` #### 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" } ``` ## Delete Contact **delete** `/print-mail/v1/contacts/{id}` Delete a contact. Note that this will not affect orders that were sent to this contact. ### Path Parameters - `id: string` ### Returns - `id: string` A unique ID prefixed with contact_ - `deleted: true` - `true` - `object: "contact"` Always `contact`. - `"contact"` ### Example ```http curl https://api.postgrid.com/print-mail/v1/contacts/$ID \ -X DELETE \ -H "X-API-Key: $POSTGRID_PRINT_MAIL_API_KEY" ``` #### Response ```json { "id": "contact_sqF12lZ1VlBb", "deleted": true, "object": "contact" } ``` ## Domain Types ### Contact - `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. ### Contact Create - `ContactCreate = ContactCreateWithFirstName or ContactCreateWithCompanyName` - `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.