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.
POST
https://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"
}
}