Title Changes
List title changes
Cursor-paginated list of LinkedIn title-change feed items for the authenticated user's contacts, newest first (or, with the `X-Dex-Workspace` header, for that workspace's contacts, readable by any mem
GET /v2/title-changes/
Parameters
Query parameters
take
integer
cursor
string (uuid)
isMajor
boolean
Responses
200 — Successful response
Content-Type: application/json
data
object required
data.title_changes
array<object> required
data.title_changes[].id
string (uuid) required
data.title_changes[].user_id
string required
data.title_changes[].contact_id
string (uuid) | null
data.title_changes[].feed_type
string required
data.title_changes[].body
object required
data.title_changes[].body.name
string | null
data.title_changes[].body.title_before
string | null
data.title_changes[].body.title_after
string | null
data.title_changes[].body.linkedin_url
string | null
data.title_changes[].created_at
string (date-time) required
data.title_changes[].workspace_id
string (uuid) | null
data.title_changes[].is_major
boolean required
data.title_changes[].contact
object | null required
data.title_changes[].contact.id
string (uuid) required
data.title_changes[].contact.full_name
string | null
data.title_changes[].contact.image_url
string | null
data.title_changes[].contact.linkedin
string | null
data.title_changes[].contact.contact_emails
array<object> required
data.title_changes[].contact.contact_emails[].email
string required
data.pagination
object
data.pagination.nextCursor
string | null
data.pagination.count
integer
Example
{
"data": {
"title_changes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"user_id": "string",
"feed_type": "string",
"body": {
"name": "string",
"title_before": "string"
},
"created_at": "2026-10-23T10:31:51.464Z",
"is_major": false,
"contact": {
"id": "00000000-0000-0000-0000-000000000000",
"contact_emails": [
{
"email": null
}
]
}
}
]
}
}
400 — Request body failed validation.
Content-Type: application/json
(body)
any
401 — Missing or invalid API key.
Content-Type: application/json
(body)
any
403 — Valid key, insufficient permission.
Content-Type: application/json
(body)
any
404 — Resource does not exist.
Content-Type: application/json
(body)
any
409 — Request conflicts with the current state of the resource.
Content-Type: application/json
(body)
any
429 — Rate limit exceeded.
Content-Type: application/json
(body)
any
500 — Unexpected server error.
Content-Type: application/json
(body)
any
Code samples
curl https://api.prod.getdex.com/v2/title-changes/ \
--header 'Authorization: Bearer YOUR_API_KEY'
fetch('https://api.prod.getdex.com/v2/title-changes/', {
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
})
requests.get(
"https://api.prod.getdex.com/v2/title-changes/",
headers={
"Authorization": "Bearer YOUR_API_KEY"
}
)
Delete a meeting type
Permanently delete a meeting type. Pass `?reassign_to=<meetingTypeId>` to move the type's existing notes onto another type; omit it and they fall back to the plain 'note' type. Both happen in one tran
Create a contact email
Add an email address to a contact, optionally with a label (e.g. "Work"). **Requires `Idempotency-Key`.** Returns the created row: `{ data: { contact_email: {...} } }`, status 201.

