Create a contact

Add a contact directly, bypassing sourcing. The contact still passes through suppression and enters the normal outreach path — this creates a row, it does not send anything.

POSThttps://api.trygtm.com/v1/contacts
Scopes
contacts:write
Cost
No credits contact.create

Headers

Idempotency-Keystringrequired
A key unique to this creation. A retry carrying the same key returns the original contact rather than a duplicate, which is what makes a retry after a timeout safe.

Body

emailstringrequired
The contact's address. Checked against workspace and platform suppression before the row is written.
full_namestringoptional
Display name. Used in message drafting.
titlestringoptional
Job title, if you have one. Sourced values outrank judged ones.
companyobjectoptional
Employer. A domain here lets suppression match at company scope.
namestringoptional
Company name.
domainstringoptional
Primary web domain.
countrystringrequired
ISO 3166-1 alpha-2. Required because the pre-send gate evaluates jurisdiction, and a contact with no country cannot be gated and therefore cannot be sent to.
lawful_basisstringrequired
The basis under which this contact may be processed.legitimate_interestconsentcontract
sourcestringoptionaldefault: api.contacts.create
Free text recorded as this contact's provenance. Defaults to api.contacts.create.

Request

curl -X POST https://api.trygtm.com/v1/contacts \
  -H "Authorization: Bearer $TRYGTM_API_TOKEN" \
  -H "Idempotency-Key: 8f2a91c4-import-0417" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "dana@northbeam.example",
    "full_name": "Dana Whitfield",
    "title": "VP Demand Generation",
    "company": { "name": "Northbeam Logistics", "domain": "northbeam.example" },
    "country": "US",
    "lawful_basis": "legitimate_interest"
  }'

Response

{
  "id": "ct_8f2a91c4",
  "email": "dana@northbeam.example",
  "full_name": "Dana Whitfield",
  "status": "new",
  "collected_at": "2026-08-21T09:41:02Z",
  "retention_expires_at": "2027-02-17T09:41:02Z",
  "provenance": {
    "email": "api.contacts.create",
    "full_name": "api.contacts.create"
  }
}

Was this page helpful?