Add a LinkedIn source
Add a web page, note or voice sample as a candidate source. It cannot be reviewed or attested through the API; a person does that in the app before drafts rely on it.
POST
https://app.trygtm.com/api/v1/linkedin/profiles/{profile_id}/sources- Scope
write- MCP tool
- add_linkedin_source
Path parameters
profile_idstringrequired- The managed profile's id, from list_linkedin_profiles.
Headers
Idempotency-Keystringoptional- A key unique to this write, up to 255 characters. A retry carrying the same key returns the first response instead of running again. Kept for 24 hours.
Body
kindstringrequired- url is a web page; personal_note a fact or story; voice_sample words that show how the person writes.
urlpersonal_notevoice_sample titlestringrequired- A short title the person will recognise.
excerptstringrequired- The words the source contributes, quoted exactly.
canonical_urlstring | nulloptional- The page's link. Required for url.
publisherstring | nulloptional- Who published it.
published_atstring | nulloptional- When it was published, ISO 8601 with an offset, when known.
expires_atstring | nulloptional- When a time-sensitive fact stops being safe to use, ISO 8601 with an offset.
Request
curl -X POST https://app.trygtm.com/api/v1/linkedin/profiles/8f2a91c4-6d1e-4c0a-9a57-2f3b1c7e9d10/sources \
-H "Authorization: Bearer $TRYGTM_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"kind": "url",
"title": "VP Demand Generation",
"excerpt": "…"
}'Response
{
"data": {
"source": {
"id": "4a5b6c7d-8e9f-4a0b-9c1d-2e3f4a5b6c7d",
"kind": "personal_note",
"origin_table": null,
"origin_id": null,
"title": "Onboarding call notes, Q3",
"canonical_url": null,
"publisher": null,
"published_at": null,
"retrieved_at": "2026-09-27T10:00:00.000Z",
"excerpt": "We ran 40 onboarding calls this quarter; most teams stalled at importing their first list.",
"content_hash": "9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c",
"review_status": "candidate",
"reviewed_at": null,
"attested": false,
"expires_at": null,
"revoked_at": null,
"revoked_reason": null,
"created_kind": "agent",
"excerpt_truncated": false
},
"profile_path": "/linkedin/6b1f2e3d-4c5a-4b6c-8d7e-9f0a1b2c3d4e"
}
}