PartyType, ContactType, and FirstName are always required. When PartyType is Company, you must also supply CompanyName.
The request body must be submitted as
application/x-www-form-urlencoded. Encode special characters in field values before sending.Request
POST /public/people
Headers
Must be
application/json.Must be
application/x-www-form-urlencoded.Your API Application Key.
Your User API Key.
Current UTC timestamp in RFC 7231 format (e.g.
Mon, 06 Apr 2026 00:22:19 GMT).HMAC-SHA256 signature of the canonical request, Base64-encoded. Include the content type when building the canonical message for non-GET requests.
Body Parameters
Whether this contact is an
Individual or Company.Classification of the contact (e.g.
Customer, Vendor).Contact’s first name.
Contact’s last name.
Company name. Required when
PartyType is Company.Primary email address.
CC email address for proposal delivery.
Primary phone number.
Free-text notes to store on the contact record.
Response
200 Success
The response returns the full contact record as created, including the assignedid and any associated location objects.
Unique numeric identifier assigned to the new contact.
Individual or Company.The contact classification supplied on creation.
Contact’s first name.
Contact’s last name.
Company name.
Primary email address.
CC email address.
Primary phone number.
Free-text notes stored on the contact.
ISO 8601 timestamp of the last modification.
The contact’s primary location object, if one was created. Contains
id, street, suite, city, postalCode, state, stateAbbrev, country, and phone.The contact’s billing location object, if one was created. Same shape as
primaryLocation.Number of proposals associated with this contact.
Number of payments associated with this contact.
Error Codes
| Code | Meaning |
|---|---|
| 401 | Not authorized. Your HMAC signature was incorrect or credentials are invalid. |
| 402 | An active Portal.io subscription is required to use this endpoint. |
| 403 | Your user account does not have permission for this API call. |