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: truemakes this company the contact's primary company - Only one company can be primary per contact
- Setting
isPrimary: falseclears 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-Matchheader 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
- Type: stringidrequired
Link ID
Headers
- Type: stringIf
- Match 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.
- Type: null | booleanis
Primary Whether this company is the contact's primary company. Only one company can be primary per contact.
- Type: null | stringjob
Title 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
}