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.

POSThttps://app.trygtm.com/api/v1/linkedin/profiles/{profile_id}/sources
Scope
write

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"
  }
}

Was this page helpful?