List contacts

Page through the contacts in a workspace. Every contact here passed the ICP gate at sourcing time, so this is an accept list — rejected candidates are not contacts and are not returned.

GEThttps://api.trygtm.com/v1/contacts
Scopes
contacts:read

Query parameters

limitintegeroptionaldefault: 50
Rows per page, 1–200.
cursorstringoptional
Opaque cursor from the previous response's next_cursor. Omit for the first page.
signal_idstringoptional
Restrict to contacts sourced by one signal.
min_intentintegeroptional
Lower bound on the 1–5 intent score. This is engagement heat, not ICP fit — fit is binary and already true for every row.
statusstringoptional
Filter by outreach status.newqueuedcontactedrepliedsuppressed

Request

curl -G https://api.trygtm.com/v1/contacts \
  -H "Authorization: Bearer $TRYGTM_API_TOKEN" \
  -d limit=50 \
  -d min_intent=4

Response

{
  "data": [
    {
      "id": "ct_8f2a91c4",
      "full_name": "Dana Whitfield",
      "title": "VP Demand Generation",
      "company": "Northbeam Logistics",
      "company_domain": "northbeam.example",
      "country": "US",
      "linkedin_url": "https://www.linkedin.com/in/example",
      "intent_score": 4,
      "status": "queued",
      "collected_at": "2026-08-19T14:02:11Z",
      "retention_expires_at": "2027-02-15T14:02:11Z",
      "provenance": {
        "full_name": "linkedin.search.people",
        "title": "ai.classify.fit",
        "company_domain": "linkedin.company.profile"
      }
    }
  ],
  "next_cursor": "eyJvIjoxfQ"
}

Was this page helpful?