CTD's API lets you pull relationship intelligence back into your CRM — relationship scores, company details, industry, headcount, and path stage — so your reps see CTD data without leaving Salesforce or HubSpot.
What data you can pull
For any company reachable through your network, CTD can return:
| Field | Description |
|---|---|
ctd_score | Raw relationship score (numeric) |
ctd_score_scaled | Score on a 1–3 scale |
ctd_score_label | Human-readable label: Strong, Familiar, or Weak |
stage | Current path stage (e.g., Approaching, Meeting Set) |
num_employees | Employee count |
num_employees_range | Bucketed range (e.g., "101–200") |
industry | Industry classification |
ctd_url | Deep link to the company's CTD profile |
linkedin_url | LinkedIn company page URL |
domains | All known domains for the company |
Fetching a company record
GET https://api.ctd.ai/user/atc-paths-api/public/v1/company
Returns details for a single company reachable through your network. Provide exactly one of company_linkedin_url or company_domain as a query parameter — not both.
// Example request
GET /company?company_domain=example.com
// Response
{
"name": "Example Corp",
"domains": ["example.com", "example.net"],
"ctd_url": "https://app.ctd.ai/companies/example-corp",
"linkedin_url": "https://www.linkedin.com/company/example-corp",
"num_employees": 101,
"num_employees_range": "101-200",
"industry": "Technology, Information & Internet",
"ctd_score": 7500.7725404,
"ctd_score_scaled": 2,
"ctd_score_label": "medium",
"stage": "Approaching"
}
company_linkedin_url is the preferred identifier — CTD normalizes it to https://www.linkedin.com/company/<slug> format automatically. Use company_domain as a fallback when you don't have the LinkedIn URL.
Common enrichment patterns
Score your account list
Loop through your CRM accounts and call GET /company for each one. Write ctd_score_label back as a custom CRM field to let reps prioritize by relationship strength. Accounts without a CTD record (not reachable through your network) will return a 404 — treat those as no score.
Surface path stage in the CRM
The stage field reflects whatever pipeline stage has been set in CTD. Writing it back to a CRM field keeps both systems in sync without requiring reps to check CTD separately.
Add a CTD deep link
Store ctd_url as a URL field on the CRM account record. Reps can click straight through to the CTD company page to see connectors, paths, and relationship history without switching tabs manually.
Enriching contacts
GET https://api.ctd.ai/user/atc-paths-api/public/v1/reachable-person
Returns relationship intelligence for a single person reachable through your network. Provide exactly one of person_linkedin_url or person_email as a query parameter — not both.
// Example response
{
"person": {
"name": "Sarah Johnson",
"linkedin_id": "sarah-johnson-42",
"title": "VP of Sales",
"company_name": "Acme Corp",
"company_linkedin_url": "https://www.linkedin.com/company/acme-corp",
"location": "New York, NY",
"is_target_person": true,
"ctd_score": 8500.25,
"ctd_score_scaled": 3,
"ctd_score_label": "strong",
"person_ctd_url": "https://app.ctd.ai/people/sarah-johnson",
"company_ctd_url": "https://app.ctd.ai/companies/acme-corp",
"total_paths": 5,
"total_2nd_degree_paths": 3,
"total_strong_paths": 2,
"current_roles": [...],
"former_roles": [...]
}
}
Key fields for CRM enrichment:
| Field | Description |
|---|---|
ctd_score_label | Strong, Familiar, or Weak — the relationship strength between your org and this person |
total_paths | Total number of people in your org who know this person |
total_strong_paths | Paths with a strong relationship score — your best intro routes |
total_2nd_degree_paths | Second-degree connections through shared contacts |
is_target_person | Whether this person is on your target account list |
person_ctd_url | Deep link to this person's CTD profile |
current_roles | Current job(s) with company, domain, start date, and industry |
former_roles | Employment history — useful for detecting job changes |
total_strong_paths back to a CRM contact field so reps can instantly see how well-connected your org is to each contact — without needing to open CTD.
Executive alignment
CTD surfaces whether executives from your company are connected to executives at a target account — and how strong those relationships are. RevOps teams use this to identify where C-level alignment already exists and where it needs to be built.
When your CEO has a strong path to a prospect's CEO, that's a deal accelerator worth knowing about before the next QBR. When the connection doesn't exist yet, it becomes a deliberate relationship-building objective that leadership can act on.
How to use it
Call the global paths endpoint for a target account, filtering by degree=second and target_seniority=CXO to get all executive-level paths your org has into that company:
GET https://api.ctd.ai/enterprise/atc-paths-api/public/v2/global/paths
?company_domain=acme.com
°ree[]=second
&target_seniority[]=CXO
// Headers
ctd-api-key: ...
ctd-client-id: your@company.com
The response returns all paths from anyone in your org to CXO-level contacts at the target company — including the connector name, relationship score, and the target executive's details. Write the strongest result back to an "Executive alignment" field on the opportunity record so reps and managers can see it at a glance without opening CTD.
Bulk enrichment
There is no batch endpoint for company lookups — you'll need to call GET /company once per account. For large lists, rate-limit your requests and process enrichment as a scheduled nightly job rather than on-demand. The API reference lists current rate limits.
For the reverse direction — pushing your target account list into CTD — see CRM sync via API.