Skip to main content
POST
/
public
/
people
curl -i -X POST \
  'https://api.portal.io/public/people' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE' \
  -d 'PartyType=Person' \
  -d 'ContactType=Client' \
  -d 'FirstName=Jane' \
  -d 'LastName=Smith' \
  -d 'ContactEmail=jane.smith%40example.com' \
  -d 'ContactPhone=555-555-0100'
{
  "notes": "",
  "lastModifiedDate": "2026-04-06T00:22:19Z",
  "primaryLocation": null,
  "billingLocation": null,
  "proposalCount": 0,
  "paymentCount": 0,
  "id": 1042,
  "partyType": "Person",
  "contactType": "Client",
  "firstName": "Jane",
  "lastName": "Smith",
  "companyName": "",
  "contactEmail": "jane.smith@example.com",
  "contactEmailCC": "",
  "contactPhone": "555-555-0100"
}
Use this endpoint to add a new contact to your Portal.io dealer account. Contacts are used as the client on proposals. PartyType, ContactType, and FirstName are always required. When PartyType is Company, you must also supply CompanyName. Valid PartyType values: Person, Company. Valid ContactType values: Client, Employee, Contractor, Other.
The request body must be submitted as application/x-www-form-urlencoded. Encode special characters in field values before sending.
curl -i -X POST \
  'https://api.portal.io/public/people' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE' \
  -d 'PartyType=Person' \
  -d 'ContactType=Client' \
  -d 'FirstName=Jane' \
  -d 'LastName=Smith' \
  -d 'ContactEmail=jane.smith%40example.com' \
  -d 'ContactPhone=555-555-0100'
{
  "notes": "",
  "lastModifiedDate": "2026-04-06T00:22:19Z",
  "primaryLocation": null,
  "billingLocation": null,
  "proposalCount": 0,
  "paymentCount": 0,
  "id": 1042,
  "partyType": "Person",
  "contactType": "Client",
  "firstName": "Jane",
  "lastName": "Smith",
  "companyName": "",
  "contactEmail": "jane.smith@example.com",
  "contactEmailCC": "",
  "contactPhone": "555-555-0100"
}

Headers

Accept
enum<string>
required

Accept Header

Available options:
application/json
X-MSS-API-APPID
string
required

Application Id

X-MSS-CUSTOM-DATE
string
required

A date timestamp of the request

X-MSS-SIGNATURE
string
required

A signature for the request

X-MSS-API-USERKEY
string
required

User API Key

Body

application/x-www-form-urlencoded
PartyType
string
required
ContactType
string
required
FirstName
string
required

First Name (Maximum character length is 100)

LastName
string

Last Name (Maximum character length is 50)

CompanyName
string

Company Name (Maximum character length is 100)

ContactEmail
string

Email (Maximum character length is 256)

ContactEmailCC
string

Additioanl email(s) copied when a proposal is submitted

ContactPhone
string

Contact Phone (Maximum character length is 30)

Notes
string

Response

Success

Contact detail model

lastModifiedDate
string<date-time>
required

UTC timestamp when the contact was last modified

id
integer<int32>
required

Unique numeric identifier of the contact

partyType
enum<string>
required

Contact party type such as Person or Company

Available options:
Undefined,
Person,
Company
contactType
enum<string>
required

Contact category type

Available options:
Undefined,
Client,
Employee,
Contractor,
Other
notes
string

Free-text notes stored on the contact

primaryLocation
PublicContactLocationModel · object

Contact-location detail model

billingLocation
PublicContactLocationModel · object

Contact-location detail model

proposalCount
integer<int32>

Number of proposals linked to the contact when counts are requested

paymentCount
integer<int32>

Number of payments linked to the contact when counts are requested

firstName
string

Contact first name

lastName
string

Contact last name

companyName
string

Company name when the contact represents a company

contactEmail
string

Primary contact email address

contactEmailCC
string

Additional email addresses copied when a proposal is submitted

contactPhone
string

Primary contact phone number