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:

FieldDescription
ctd_scoreRaw relationship score (numeric)
ctd_score_scaledScore on a 1–3 scale
ctd_score_labelHuman-readable label: Strong, Familiar, or Weak
stageCurrent path stage (e.g., Approaching, Meeting Set)
num_employeesEmployee count
num_employees_rangeBucketed range (e.g., "101–200")
industryIndustry classification
ctd_urlDeep link to the company's CTD profile
linkedin_urlLinkedIn company page URL
domainsAll 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"
}
Tip: The 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:

FieldDescription
ctd_score_labelStrong, Familiar, or Weak — the relationship strength between your org and this person
total_pathsTotal number of people in your org who know this person
total_strong_pathsPaths with a strong relationship score — your best intro routes
total_2nd_degree_pathsSecond-degree connections through shared contacts
is_target_personWhether this person is on your target account list
person_ctd_urlDeep link to this person's CTD profile
current_rolesCurrent job(s) with company, domain, start date, and industry
former_rolesEmployment history — useful for detecting job changes
Tip: Write 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
  &degree[]=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.

Tip: Run this query whenever a new opportunity is created. If a strong CXO path exists and no intro has been requested within 14 days, trigger an alert to the AE's manager.

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.