Updates a contact-company link (job title and/or primary status).

Usage Example

Update job title:

PATCH /api/v1/network/links/123
If-Match: W/"AAAAAAAAK0Q="
{
  "jobTitle": "Chief Financial Officer"
}

Set as primary company:

PATCH /api/v1/network/links/123
If-Match: W/"AAAAAAAAK0Q="
{
  "isPrimary": true
}

Update both fields:

PATCH /api/v1/network/links/123
If-Match: W/"AAAAAAAAK0Q="
{
  "jobTitle": "CFO",
  "isPrimary": true
}

Clear job title:

PATCH /api/v1/network/links/123
If-Match: W/"AAAAAAAAK0Q="
{
  "jobTitle": null
}

Primary Company Logic

  • Setting isPrimary: true makes this company the contact's primary company
  • Only one company can be primary per contact
  • Setting isPrimary: false clears the primary status if this is currently the primary
  • Primary status is visible in the contact's timeline and affects UI display

Concurrency Control

  • The If-Match header with ETag is required to prevent lost updates
  • Get the current ETag from a GET request first
  • If another request modifies the link between your GET and PATCH, you'll receive 412 Precondition Failed
  • Retrieve the updated link and retry with the new ETag

Audit Trail

Updates are recorded in the network action timeline for both the contact and company.

Path Parameters
  • id
    Type: string
    required

    Link ID

Headers
  • If-Match
    Type: string

    ETag from previous GET (required for concurrency control)

Body·
required

ETag from previous GET for optimistic concurrency control

Request body for updating a contact-company link. Only include fields you want to change. Omitted fields are left unchanged; fields set to null are cleared.

  • isPrimary
    Type: null | boolean

    Whether this company is the contact's primary company. Only one company can be primary per contact.

  • jobTitle
    Type: null | string

    Job title at the company (e.g., "CFO", "Board Member")

Responses
  • application/json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
Request Example for patch/api/v1/network/links/{id}
curl 'https://app.propstreet.com/api/v1/network/links/{id}' \
  --request PATCH \
  --header 'If-Match: ' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "jobTitle": null,
  "isPrimary": null
}'
{
  "id": "string",
  "contactId": "string",
  "companyId": "string",
  "jobTitle": null,
  "createdUtc": "2026-05-18T20:22:36.959Z",
  "updatedUtc": "2026-05-18T20:22:36.959Z",
  "deletedUtc": null,
  "etag": "string",
  "changeType": null,
  "changeOrigin": null
}