Creates a new contact.

Usage Examples

Create a contact with minimal data:

POST /api/v1/network/contacts
{
  "firstName": "John",
  "lastName": "Doe",
  "email": "john@example.com"
}

Create with external reference for CRM sync:

{
  "externalRefs": [
    {
      "namespace": "salesforce",
      "id": "003ABC123"
    }
  ],
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "jane.smith@acme.com",
  "phone": "+46701234567",
  "primaryLanguage": "en",
  "tags": ["vip", "enterprise"],
  "strategy": "Focus on commercial real estate in Stockholm"
}

ExternalRefs Best Practices

  • Use consistent namespace values to identify the source system (e.g., "salesforce", "pipedrive", "hubspot")
  • Each namespace+id combination must be unique within your organization - duplicates return 409 Conflict
  • You can store multiple external references per contact (one per CRM system)
  • Store the returned id in your CRM to enable efficient lookups and updates

Validation Rules

  • email: Must be a valid email address format
  • primaryLanguage: Must be a valid ISO 639-1 language code (e.g., "en", "sv", "de")
  • tags: Array of strings, no length limit
  • All text fields have maximum lengths (see request schema)

Response

Returns 201 Created with:

  • Location header pointing to the new resource URI
  • Full contact object in response body with assigned id and etag
Body·
required

Contact data to create. All fields are optional except for at least one identifier (name, email, or phone).

Request to create a new contact.

  • connections
    Type: array object[] ·

    List of company connections (employments).

    A link between a contact and a company, used when creating or updating contacts.

  • email
    Type: null | string
    max length:  
    255

    Email address. Must be unique within your organization.

  • externalRefs
    Type: array object[] ·

    External references to this contact in other systems (e.g. CRM IDs).

    Represents an external system reference (e.g., Salesforce, HubSpot, Pipedrive). Supports multiple CRM systems simultaneously.

  • firstName
    Type: null | string
    max length:  
    255

    First name.

  • lastName
    Type: null | string
    max length:  
    255

    Last name.

  • linkedInUrl
    Type: null | string
    max length:  
    500

    LinkedIn profile URL in the format https://www.linkedin.com/in/{slug}.

  • phone
    Type: null | string
    max length:  
    50

    Phone number.

  • primaryLanguage
    Type: null | string
    max length:  
    10

    ISO 639-1 language code (e.g. 'en', 'sv').

  • strategy
    Type: null | string

    Investment strategy or description.

  • tags
    Type: array string[]

    List of tags or labels.

Responses
  • application/json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
Request Example for post/api/v1/network/contacts
curl https://app.propstreet.com/api/v1/network/contacts \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "externalRefs": [
    {
      "namespace": "",
      "id": ""
    }
  ],
  "firstName": null,
  "lastName": null,
  "email": null,
  "phone": null,
  "linkedInUrl": null,
  "primaryLanguage": null,
  "tags": [
    ""
  ],
  "strategy": null,
  "connections": [
    {
      "company": {
        "kind": "existing",
        "id": ""
      },
      "jobTitle": null,
      "primary": true
    }
  ]
}'
{
  "id": "string",
  "uri": null,
  "externalRefs": [
    {
      "namespace": "string",
      "id": "string"
    }
  ],
  "firstName": null,
  "lastName": null,
  "email": null,
  "phone": null,
  "linkedInUrl": null,
  "emails": [
    {
      "address": "string",
      "type": null,
      "isPrimary": true
    }
  ],
  "phones": [
    {
      "number": "string",
      "type": null,
      "isPrimary": true
    }
  ],
  "primaryLanguage": null,
  "tags": [
    "string"
  ],
  "strategy": null,
  "primaryCompanyId": null,
  "companies": [
    {
      "id": "string",
      "uri": null,
      "name": "string",
      "jobTitle": null,
      "isPrimary": true
    }
  ],
  "profilePictureUrl": null,
  "createdUtc": "2026-05-18T20:22:36.959Z",
  "updatedUtc": "2026-05-18T20:22:36.959Z",
  "deletedUtc": null,
  "etag": "string",
  "changeType": null,
  "changeOrigin": null
}