{"openapi":"3.0.0","info":{"title":"Workspace API","version":"1.0.0"},"servers":[{"url":"http://api.ctd.ai"}],"security":[{"ApiKeyAuth":[]}],"paths":{"/enterprise/atc-paths-api/public/v1/people":{"get":{"operationId":"getPeople","summary":"Reachable company employees","description":"Returns a list of people working at the specified company who can be reached through at least one path from either your coworkers or external members.","tags":["People"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"company_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The company LinkedIn URL (preferred identifier). The URL is normalized to `https://www.linkedin.com/company/<slug>`. Exactly one of company_linkedin_url or company_domain must be provided (not both).\n"},{"name":"company_domain","in":"query","required":false,"schema":{"type":"string"},"description":"The company primary domain (e.g., 'example.com'). The domain is normalized before processing. Exactly one of company_domain or company_linkedin_url must be provided (not both), otherwise the request will be rejected.\n"},{"name":"degree","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["first","second","third"]}},"example":["first","second"],"description":"Filter people by connection degree (first, second, or third degree)."},{"name":"relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer","enum":[1,2,3]}},"example":[2,3],"description":"Filter people by the strength of the relationship between your organization and the individual, where 1 = weak, 2 = medium, and 3 = strong. A strong relationship means there is at least one strong path between your coworkers or external members and that person.\n"},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"example":true,"description":"Filter results to include only people marked as target personas. Target personas are defined by your organization admin in the CTD application and may not be configured."},{"name":"target_title","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["managing director"],"description":"Filter people by job title. Returns all people whose job title contains the provided value as a case-insensitive substring."},{"name":"target_seniority","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Owner","CEO","CXO","Partner","VP","Manager","Director","Principal","Senior","EA","Board","Investor","Advisor","Founder","Consultant","Entry","Unpaid","Training"]}},"example":["CEO","VP","Director"],"description":"Filter people by seniority level using the predefined seniority categories. Matching is case-insensitive."},{"name":"target_function","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Travel","Media","Customer Success","Support","Education","Information Technology","Engineering","Finance","Health","Human Resources","Legal","Product","Operations","Design","Public Relations","Real Estate","Sales"]}},"example":["Engineering","Sales"],"description":"Filter people by functional area using the predefined function categories. Matching is case-insensitive."},{"name":"path_stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter people by path stage. Returns only people for whom there is at least one path in the specified stage. Values are trimmed and matched case-insensitively.\n"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Pagination starting index (1-based)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPeopleResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/company":{"get":{"operationId":"getCompany","summary":"Reachable company","description":"Returns company details, including CTD score and stage information when available. Available only for companies that are reachable through your organization's network, meaning there is at least one path from your organization to that company.\n","tags":["Company"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"company_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The company LinkedIn URL (preferred identifier). The URL is normalized to `https://www.linkedin.com/company/<slug>`. Exactly one of company_linkedin_url or company_domain must be provided (not both), otherwise the request will be rejected.\n"},{"name":"company_domain","in":"query","required":false,"schema":{"type":"string"},"description":"The company primary domain (e.g., 'example.com'). The domain is normalized before processing. Exactly one of company_domain or company_linkedin_url must be provided (not both), otherwise the request will be rejected.\n"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCompanyResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/paths/search":{"get":{"summary":"Search paths using natural language","description":"Accepts a natural language search query and returns matching paths with an explanation.","tags":["Paths"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"API key for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"Caller email; required for audit and access checks."},{"name":"search_query","in":"query","required":true,"schema":{"type":"string"},"description":"Natural language search query","example":"Show me paths to CTOs in New York"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSearchPathsResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/job-changes":{"get":{"operationId":"getJobChanges","summary":"Job changes","description":"Returns a paginated list of job changes for people reachable through your organization's network, including new hires, departures, company switches, and promotions.","tags":["Job Changes"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":365,"default":90},"description":"Number of days to look back for job changes. Default is 90 days."},{"name":"is_champion","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter to show only job changes for champions (key connectors in your network)."},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter to show only job changes for people marked as target personas."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Pagination starting index (1-based)."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":40},"description":"Number of items to return per page. Maximum value is 100."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobChangesResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/reachable-companies":{"get":{"operationId":"getReachableCompanies","summary":"Reachable companies","description":"Returns a paginated list of companies reachable through the user's network, with CTD scores, stages, and filtering options.","tags":["Companies"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching"],"description":"Filter companies by stage. Values are matched case-insensitively."},{"name":"is_target_account","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter to show only companies marked as target accounts."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Pagination starting index (1-based)."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40,"default":40},"description":"Number of items to return per page. Maximum value is 40."},{"name":"format","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["csv","json"]},"description":"Response format. If not provided or null, defaults to JSON."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReachableCompaniesResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/reachable-people":{"get":{"operationId":"getReachablePeople","summary":"Reachable people","description":"Returns a paginated list of people reachable through the user's network, with relationship scores and path statistics.","tags":["People"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"degree","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["first","second","third"]}},"example":["first","second"],"description":"Filter people by connection degree (first, second, or third degree)."},{"name":"relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer","enum":[0,1,2,3]}},"example":[2,3],"description":"Filter people by the strength of the relationship between your organization and the individual, where 0 = very weak, 1 = weak, 2 = medium, and 3 = strong.\n"},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"example":true,"description":"Filter results to include only people marked as target personas."},{"name":"target_title","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["managing director"],"description":"Filter people by job title. Returns all people whose job title contains the provided value as a case-insensitive substring."},{"name":"target_seniority","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Owner","CEO","CXO","Partner","VP","Manager","Director","Principal","Senior","EA","Board","Investor","Advisor","Founder","Consultant","Entry","Unpaid","Training"]}},"example":["CEO","VP","Director"],"description":"Filter people by seniority level using the predefined seniority categories. Matching is case-insensitive."},{"name":"target_function","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Travel","Media","Customer Success","Support","Education","Information Technology","Engineering","Finance","Health","Human Resources","Legal","Product","Operations","Design","Public Relations","Real Estate","Sales"]}},"example":["Engineering","Sales"],"description":"Filter people by functional area using the predefined function categories. Matching is case-insensitive."},{"name":"target_location","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["New York"],"description":"Filter people by location. Returns people whose location contains the provided value as a case-insensitive substring."},{"name":"path_stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter people by path stage. Returns only people for whom there is at least one path in the specified stage. Values are trimmed and matched case-insensitively.\n"},{"name":"path_relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["weak","medium","strong"]}},"example":["medium","strong"],"description":"Filter by path relationship strength."},{"name":"path_relationship_type","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["deterministic","probabilistic"]},"example":"deterministic","description":"Filter by path relationship type. Deterministic means that all nodes in the path are connected to each other via email or LinkedIn connections, while probabilistic means that the connection between the connector and the target person is predicted based on publicly available career and education overlap signals.\n"},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"Pagination starting index (1-based)."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"format","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["csv","json"]},"description":"Response format. If not provided or null, defaults to JSON."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReachablePeopleResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/reachable-person":{"get":{"operationId":"getReachablePerson","summary":"Reachable person","description":"Returns a single reachable person identified by LinkedIn URL, with relationship scores and path statistics from the authenticated user's perspective.","tags":["People"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"person_linkedin_url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"The person LinkedIn URL. The URL is normalized to https://www.linkedin.com/in/{slug}.\n"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReachablePersonResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v1/global/reachable-person":{"get":{"operationId":"getGlobalReachablePerson","summary":"Reachable person (global view)","description":"Returns a single reachable person identified by LinkedIn URL, with enterprise-wide relationship scores and path statistics. Results are not personalized per user.","tags":["People"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"person_linkedin_url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"The person LinkedIn URL. The URL is normalized to https://www.linkedin.com/in/{slug}.\n"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReachablePersonResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v2/paths":{"get":{"operationId":"getPathsV2","summary":"Paths to a company or a person","description":"Returns paths from the user authenticated in the API to the specified company or person via coworkers or external members.","tags":["Paths"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"company_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The company LinkedIn URL (preferred identifier). The URL is normalized to `https://www.linkedin.com/company/<slug>`. Exactly one of company_linkedin_url or company_domain must be provided for company-based lookup (not both), otherwise the request will be rejected.\n"},{"name":"company_domain","in":"query","required":false,"schema":{"type":"string"},"description":"The company primary domain (e.g., 'example.com'). The domain is normalized before processing. Exactly one of company_domain or company_linkedin_url must be provided for company-based lookup (not both), otherwise the request will be rejected.\n"},{"name":"person_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The person LinkedIn URL. The URL is normalized to https://www.linkedin.com/in/{slug}.\n"},{"name":"degree","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["first","second","third"]}},"example":["first","second"],"description":"Filter paths by connection degree (first, second, or third degree). Available for both people and company lookups."},{"name":"path_relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["weak","medium","strong"]}},"example":["medium","strong"],"description":"Filter paths by path relationship strength."},{"name":"path_relationship_type","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["deterministic","probabilistic"]},"example":"deterministic","description":"Filter paths by path relationship type. Deterministic means that all nodes in the path are connected to each other via email or LinkedIn connections, while probabilistic means that the connection between the connector and the target person is predicted based on publicly available career and education overlap signals.\n"},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"example":true,"description":"Filter results to include only paths to people marked as target personas. Target personas are defined by your organization admin in the CTD application and may not be configured. Available for company lookup only."},{"name":"target_title","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["CEO","CTO","VP of Engineering"],"description":"Filter by job title. Returns paths to people whose job title contains the provided value as a case-insensitive substring. Available for company lookup only."},{"name":"target_seniority","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Owner","CEO","CXO","Partner","VP","Manager","Director","Principal","Senior","EA","Board","Investor","Advisor","Founder","Consultant","Entry","Unpaid","Training"]}},"example":["CEO"],"description":"Filter by seniority level using predefined seniority categories. Matching is case-insensitive. Available for company lookup only."},{"name":"target_function","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Travel","Media","Customer Success","Support","Education","Information Technology","Engineering","Finance","Health","Human Resources","Legal","Product","Operations","Design","Public Relations","Real Estate","Sales"]}},"example":["Engineering","Sales"],"description":"Filter by functional area using predefined function categories. Matching is case-insensitive. Available for company lookup only."},{"name":"path_stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter paths by stage. Stage values are trimmed and matched case-insensitively. Available for both people and company lookups.\n"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Pagination starting index (1-based)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPathsResponseV2"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v2/paths/by-stage":{"get":{"operationId":"getPathsByStageV2","summary":"Paths filtered by stage","description":"Returns paths filtered by one or more path stages, across the user's network.","tags":["Paths"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"stage","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter paths by stage. At least one stage is required. Values are trimmed and matched case-insensitively.\n"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40,"default":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Pagination starting index (1-based)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGlobalPathsResponseV2"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v2/global/paths":{"get":{"operationId":"getGlobalPathsV2","summary":"Paths to a company or a person (global view)","description":"Returns enterprise-wide paths to the specified company or person through coworkers or external members. Results are not personalized per user.","tags":["Paths"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"company_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The company LinkedIn URL (preferred identifier). The URL is normalized to `https://www.linkedin.com/company/<slug>`. Exactly one of company_linkedin_url or company_domain must be provided for company-based lookup (not both), otherwise the request will be rejected.\n"},{"name":"company_domain","in":"query","required":false,"schema":{"type":"string"},"description":"The company primary domain (e.g., 'example.com'). The domain is normalized before processing. Exactly one of company_domain or company_linkedin_url must be provided for company-based lookup (not both), otherwise the request will be rejected.\n"},{"name":"person_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The person LinkedIn URL. The URL is normalized to https://www.linkedin.com/in/{slug}.\n"},{"name":"degree","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["first","second","third"]}},"example":["first","second"],"description":"Filter paths by connection degree (first, second, or third degree). Available for both people and company lookups."},{"name":"path_relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["weak","medium","strong"]}},"example":["medium","strong"],"description":"Filter paths by path relationship strength."},{"name":"path_relationship_type","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["deterministic","probabilistic"]},"example":"deterministic","description":"Filter paths by path relationship type. Deterministic means that all nodes in the path are connected to each other via email or LinkedIn connections, while probabilistic means that the connection between the connector and the target person is predicted based on publicly available career and education overlap signals.\n"},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"example":true,"description":"Filter results to include only paths to people marked as target personas. Target personas are defined by your organization admin in the CTD application and may not be configured. Available for company lookup only."},{"name":"target_title","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["CEO","CTO","VP of Engineering"],"description":"Filter by job title. Returns paths to people whose job title contains the provided value as a case-insensitive substring. Available for company lookup only."},{"name":"target_seniority","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Owner","CEO","CXO","Partner","VP","Manager","Director","Principal","Senior","EA","Board","Investor","Advisor","Founder","Consultant","Entry","Unpaid","Training"]}},"example":["CEO"],"description":"Filter by seniority level using predefined seniority categories. Matching is case-insensitive. Available for company lookup only."},{"name":"target_function","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Travel","Media","Customer Success","Support","Education","Information Technology","Engineering","Finance","Health","Human Resources","Legal","Product","Operations","Design","Public Relations","Real Estate","Sales"]}},"example":["Engineering","Sales"],"description":"Filter by functional area using predefined function categories. Matching is case-insensitive. Available for company lookup only."},{"name":"path_stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter paths by stage. Stage values are trimmed and matched case-insensitively. Available for both people and company lookups.\n"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Pagination starting index (1-based)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGlobalPathsResponseV2"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v2/paths/connector":{"get":{"operationId":"getPathsByConnectorV2","summary":"Paths through a specific connector","description":"Paths that pass through the specified connector within your organization's network.","tags":["Paths"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"connector_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The connector LinkedIn URL (preferred identifier). LinkedIn URL is normalized to https://www.linkedin.com/in/{slug}. Exactly one of connector_linkedin_url or connector_email must be provided (not both), otherwise the request will be rejected.\n"},{"name":"connector_email","in":"query","required":false,"schema":{"type":"string","format":"email"},"description":"The connector email address. Exactly one of connector_email or connector_linkedin_url must be provided (not both), otherwise the request will be rejected.\n"},{"name":"degree","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["first","second","third"]}},"example":["first","second"],"description":"Filter paths by connection degree (first, second, or third degree)."},{"name":"path_relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["weak","medium","strong"]}},"example":["medium","strong"],"description":"Filter paths by path relationship strength."},{"name":"path_relationship_type","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["deterministic","probabilistic"]},"example":"deterministic","description":"Filter paths by path relationship type. Deterministic means that all nodes in the path are connected to each other via email or LinkedIn connections, while probabilistic means that the connection between the connector and the target person is predicted based on publicly available career and education overlap signals.\n"},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"example":true,"description":"Filter results to include only paths to people marked as target personas. Target personas are defined by your organization admin in the CTD application and may not be configured.\n"},{"name":"target_title","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["CEO","CTO","VP of Engineering"],"description":"Filter by job title. Returns paths to people whose job title contains the provided value as a case-insensitive substring."},{"name":"target_seniority","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Owner","CEO","CXO","Partner","VP","Manager","Director","Principal","Senior","EA","Board","Investor","Advisor","Founder","Consultant","Entry","Unpaid","Training"]}},"example":["CEO"],"description":"Filter by seniority level using predefined seniority categories; matching is case-insensitive."},{"name":"target_function","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Travel","Media","Customer Success","Support","Education","Information Technology","Engineering","Finance","Health","Human Resources","Legal","Product","Operations","Design","Public Relations","Real Estate","Sales"]}},"example":["Engineering","Sales"],"description":"Filter by functional area using predefined function categories. Matching is case-insensitive."},{"name":"path_stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter paths by stage. Returns only paths in the specified stage. Values are trimmed and matched case-insensitively.\n"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Pagination starting index (1-based)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPathsResponseV2"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/enterprise/atc-paths-api/public/v2/global/paths/connector":{"get":{"operationId":"getGlobalPathsByConnectorV2","summary":"Paths through a specific connector (global view)","description":"Returns a paginated list of paths that pass through the specified connector within your organization's network.","tags":["Paths"],"parameters":[{"name":"ctd-api-key","in":"header","required":true,"schema":{"type":"string"},"description":"Enterprise CTD API key, used for authentication."},{"name":"ctd-client-id","in":"header","required":true,"schema":{"type":"string","format":"email"},"description":"The user's organization email address, used for audit logging and access control validation."},{"name":"connector_linkedin_url","in":"query","required":false,"schema":{"type":"string","format":"uri"},"description":"The connector LinkedIn URL (preferred identifier). LinkedIn URL is normalized to https://www.linkedin.com/in/{slug}. Exactly one of connector_linkedin_url or connector_email must be provided (not both), otherwise the request will be rejected.\n"},{"name":"connector_email","in":"query","required":false,"schema":{"type":"string","format":"email"},"description":"The connector email address. Exactly one of connector_email or connector_linkedin_url must be provided (not both), otherwise the request will be rejected.\n"},{"name":"degree","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["first","second","third"]}},"example":["first","second"],"description":"Filter paths by connection degree (first, second, or third degree)."},{"name":"path_relationship_strength","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["weak","medium","strong"]}},"example":["medium","strong"],"description":"Filter paths by path relationship strength."},{"name":"path_relationship_type","in":"query","required":false,"schema":{"type":"string","nullable":true,"enum":["deterministic","probabilistic"]},"example":"deterministic","description":"Filter paths by path relationship type. Deterministic means that all nodes in the path are connected to each other via email or LinkedIn connections, while probabilistic means that the connection between the connector and the target person is predicted based on publicly available career and education overlap signals.\n"},{"name":"is_target_persona","in":"query","required":false,"schema":{"type":"boolean"},"example":true,"description":"Filter results to include only paths to people marked as target personas. Target personas are defined by your organization admin in the CTD application and may not be configured.\n"},{"name":"target_title","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":["CEO","CTO","VP of Engineering"],"description":"Filter by job title. Returns paths to people whose job title contains the provided value as a case-insensitive substring."},{"name":"target_seniority","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Owner","CEO","CXO","Partner","VP","Manager","Director","Principal","Senior","EA","Board","Investor","Advisor","Founder","Consultant","Entry","Unpaid","Training"]}},"example":["CEO"],"description":"Filter by seniority level using predefined seniority categories; matching is case-insensitive."},{"name":"target_function","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Travel","Media","Customer Success","Support","Education","Information Technology","Engineering","Finance","Health","Human Resources","Legal","Product","Operations","Design","Public Relations","Real Estate","Sales"]}},"example":["Engineering","Sales"],"description":"Filter by functional area using predefined function categories. Matching is case-insensitive."},{"name":"path_stage","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]}},"example":["To do","Approaching Connector"],"description":"Filter paths by stage. Returns only paths in the specified stage. Values are trimmed and matched case-insensitively.\n"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":40},"example":20,"description":"Number of items to return per page. Maximum value is 40."},{"name":"start_item","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Pagination starting index (1-based)."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicGlobalPathsResponseV2"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"ctd-api-key","description":"Enterprise CTD API key, used for authentication."}},"schemas":{"PublicPathNode":{"type":"object","properties":{"id":{"type":"string","enum":["user","conn1","conn2","target"],"description":"Node position in the path (user = user authenticated in the API, conn1 = first connector, conn2 = second connector, target = target person)."},"name":{"type":"string","nullable":true,"description":"Full name of the person."},"linkedin_id":{"type":"string","nullable":true,"description":"LinkedIn profile identifier."},"title":{"type":"string","nullable":true,"description":"Default current job title."},"company_name":{"type":"string","nullable":true,"description":"Default company the person works at."},"connector_type":{"type":"string","nullable":true,"description":"Type of connector (e.g., coworker, investor, advisor, personal connector)."},"tier":{"type":"integer","nullable":true,"description":"Connector tier level."},"location":{"type":"string","nullable":true,"description":"Geographic location of the person."},"is_target_person":{"type":"boolean","nullable":true,"description":"Whether the person is marked as a target persona."},"company_ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the person's company."},"person_ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the person's profile."}}},"PublicPathEdge":{"type":"object","properties":{"from":{"type":"string","enum":["user","conn1","conn2"]},"to":{"type":"string","enum":["conn1","conn2","target"]},"relationship_type":{"type":"array","items":{"type":"string","enum":["overlapped","email connected","linkedin connected","invited","enterprise external member","coworker"]}},"overlapping_score":{"type":"integer","example":92115,"description":"Raw overlap score representing shared work history and mutual network signals. Primarily intended for sorting."},"overlapping_score_scaled":{"type":"integer","minimum":0,"maximum":3,"example":2,"description":"Scaled overlap score from 0 to 3 where 0 = no overlap, 1 = weak overlap, 2 = medium overlap, and 3 = strong overlap."},"overlapping_score_label":{"type":"string","nullable":true,"enum":[null,"weak","medium","strong"],"example":"medium","description":"Human-readable label for overlapping_score_scaled."},"overlapping_message":{"type":"string","nullable":true,"description":"Detailed explanation of shared work history and mutual connection signals contributing to the overlap score."},"relationship_strength":{"type":"integer","minimum":0,"maximum":3,"example":2,"description":"Relationship strength score from 0 to 3 where 0 = no detected email or LinkedIn connections, 1 = weak, 2 = medium, and 3 = strong."},"relationship_strength_label":{"type":"string","nullable":true,"enum":["weak","medium","strong"],"example":"medium"},"final_relationship_strength":{"type":"integer","minimum":1,"maximum":3,"example":2,"description":"Final relationship strength score taking into account both relationship strength and overlap score."},"final_relationship_strength_label":{"type":"string","nullable":true,"enum":["weak","medium","strong","weak overlap","medium overlap","strong overlap"],"example":"medium","description":"Human-readable label for final relationship strength that takes into account both relationship strength and the overlap score. A relationship strength of 0 indicates that no email or LinkedIn connections were detected, most likely because the connector is not a CTD user and their accounts were not ingested. However, based on publicly available overlap signals, we may still predict a relationship, labeled as \"weak overlap\", \"medium overlap\", or \"strong overlap\". In the CTD app, the green overlap icon represents the label \"strong overlap\", while the green three dots represent the label \"strong\".\n"}}},"PublicPathPayload":{"type":"object","properties":{"path_id":{"type":"integer","description":"Unique identifier of the path in the path_new table."},"stage":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]},"degree":{"type":"integer","example":2},"path_relationship_strength":{"type":"integer","nullable":true,"minimum":1,"maximum":3,"description":"Path relationship strength score from 1 to 3 where 1 = weak, 2 = medium, and 3 = strong."},"path_relationship_strength_label":{"type":"string","nullable":true,"enum":["weak","medium","strong"],"description":"Human-readable label for path_relationship_strength."},"path_relationship_type":{"type":"string","nullable":true,"enum":["deterministic","probabilistic"],"description":"Path relationship type. Deterministic means that all nodes in the path are connected to each other via email or LinkedIn connections,\nwhile probabilistic means that the connection between the connector and the target person is predicted based on publicly available career and education overlap signals."},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathNode"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathEdge"}}}},"PublicPath":{"type":"object","properties":{"path":{"$ref":"#/components/schemas/PublicPathPayload"}}},"PublicPathsResponse":{"type":"object","properties":{"paths":{"type":"array","items":{"$ref":"#/components/schemas/PublicPath"}}},"example":{"paths":[{"path":{"path_id":1234567,"stage":"Not started","degree":1,"nodes":[{"id":"user","name":"John Smith","linkedin_id":"john-smith","title":"Director of Engineering","company_name":"Example Corp","person_ctd_url":"https://ctd.ai/person/john-smith"},{"id":"conn1","name":"John Doe","linkedin_id":"john-doe","title":"Manager","company_name":"Example Corp","connector_type":"first","tier":1,"person_ctd_url":"https://ctd.ai/person/john-doe"},{"id":"target","name":"Jane Smith","linkedin_id":"jane-smith","title":"CEO","company_name":"Target Inc","location":"San Francisco","is_target_person":true,"company_ctd_url":"https://ctd.ai/company/target-inc","person_ctd_url":"https://ctd.ai/person/jane-smith"}],"edges":[{"from":"user","to":"conn1","relationship_type":["email connected"],"overlapping_score":0,"overlapping_score_scaled":0,"overlapping_score_label":null,"overlapping_message":"","relationship_strength":2,"relationship_strength_label":"medium","final_relationship_strength":2,"final_relationship_strength_label":"medium"},{"from":"conn1","to":"target","relationship_type":["linkedin connected","overlapped"],"overlapping_score":92115,"overlapping_score_scaled":2,"overlapping_score_label":"medium","overlapping_message":"You worked together at Example Corp for 3 years","relationship_strength":3,"relationship_strength_label":"strong","final_relationship_strength":3,"final_relationship_strength_label":"strong"}]}}]}},"PublicGlobalPathsResponse":{"type":"object","properties":{"paths":{"type":"array","items":{"$ref":"#/components/schemas/PublicPath"}}},"example":{"paths":[{"path":{"path_id":1234567,"stage":"Not started","degree":1,"nodes":[{"id":"conn1","name":"John Doe","linkedin_id":"john-doe","title":"Manager","company_name":"Example Corp","connector_type":"first","tier":1,"person_ctd_url":"https://ctd.ai/person/john-doe"},{"id":"target","name":"Jane Smith","linkedin_id":"jane-smith","title":"CEO","company_name":"Target Inc","location":"San Francisco","is_target_person":true,"company_ctd_url":"https://ctd.ai/company/target-inc","person_ctd_url":"https://ctd.ai/person/jane-smith"}],"edges":[{"from":"conn1","to":"target","relationship_type":["linkedin connected","overlapped"],"overlapping_score":92115,"overlapping_score_scaled":2,"overlapping_score_label":"medium","overlapping_message":"You worked together at Example Corp for 3 years","relationship_strength":3,"relationship_strength_label":"strong","final_relationship_strength":3,"final_relationship_strength_label":"strong"}]}}]}},"PublicPathCurrentRole":{"type":"object","properties":{"title":{"type":"string","nullable":true,"description":"Role title."},"company_name":{"type":"string","nullable":true,"description":"Company name for the role."},"company_ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the company."},"company_linkedin":{"type":"string","nullable":true,"description":"LinkedIn URL for the company."},"path_stage":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"],"description":"Path stage for this role."}}},"PublicPathNodeV2":{"allOf":[{"$ref":"#/components/schemas/PublicPathNode"},{"type":"object","properties":{"current_roles":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathCurrentRole"},"description":"List of current roles. Only populated on the target node."}}}]},"PublicPathPayloadV2":{"type":"object","properties":{"path_id":{"type":"integer","description":"Unique identifier of the path in the path_new table."},"stage":{"type":"string","enum":["Not started","To do","Approaching Connector","Approaching Target","Successful","Unsuccessful","Not relevant","Bad data"]},"degree":{"type":"integer","example":2},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathNodeV2"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathEdge"}}}},"PublicPathV2":{"type":"object","properties":{"path":{"$ref":"#/components/schemas/PublicPathPayloadV2"}}},"PublicPathsResponseV2":{"type":"object","properties":{"paths":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathV2"}}},"example":{"paths":[{"path":{"path_id":1234567,"stage":"Not started","degree":1,"nodes":[{"id":"user","name":"John Smith","linkedin_id":"john-smith","title":"Director of Engineering","company_name":"Example Corp","person_ctd_url":"https://ctd.ai/person/john-smith"},{"id":"conn1","name":"John Doe","linkedin_id":"john-doe","title":"Manager","company_name":"Example Corp","connector_type":"first","tier":1,"person_ctd_url":"https://ctd.ai/person/john-doe"},{"id":"target","name":"Jane Smith","linkedin_id":"jane-smith","title":"CEO","company_name":"Target Inc","location":"San Francisco","is_target_person":true,"company_ctd_url":"https://ctd.ai/company/target-inc","person_ctd_url":"https://ctd.ai/person/jane-smith","current_roles":[{"title":"CEO","company_name":"Target Inc","company_ctd_url":"https://ctd.ai/company/target-inc","company_linkedin":"https://www.linkedin.com/company/target-inc","path_stage":"Not started"}]}],"edges":[{"from":"user","to":"conn1","relationship_type":["email connected"],"overlapping_score":0,"overlapping_score_scaled":0,"overlapping_score_label":null,"overlapping_message":"","relationship_strength":2,"relationship_strength_label":"medium","final_relationship_strength":2,"final_relationship_strength_label":"medium"},{"from":"conn1","to":"target","relationship_type":["linkedin connected","overlapped"],"overlapping_score":92115,"overlapping_score_scaled":2,"overlapping_score_label":"medium","overlapping_message":"You worked together at Example Corp for 3 years","relationship_strength":3,"relationship_strength_label":"strong","final_relationship_strength":3,"final_relationship_strength_label":"strong"}]}}]}},"PublicGlobalPathsResponseV2":{"type":"object","properties":{"paths":{"type":"array","items":{"$ref":"#/components/schemas/PublicPathV2"}}},"example":{"paths":[{"path":{"path_id":1234567,"stage":"Not started","degree":1,"nodes":[{"id":"conn1","name":"John Doe","linkedin_id":"john-doe","title":"Manager","company_name":"Example Corp","connector_type":"first","tier":1,"person_ctd_url":"https://ctd.ai/person/john-doe"},{"id":"target","name":"Jane Smith","linkedin_id":"jane-smith","title":"CEO","company_name":"Target Inc","location":"San Francisco","is_target_person":true,"company_ctd_url":"https://ctd.ai/company/target-inc","person_ctd_url":"https://ctd.ai/person/jane-smith","current_roles":[{"title":"CEO","company_name":"Target Inc","company_ctd_url":"https://ctd.ai/company/target-inc","company_linkedin":"https://www.linkedin.com/company/target-inc","path_stage":"Not started"}]}],"edges":[{"from":"conn1","to":"target","relationship_type":["linkedin connected","overlapped"],"overlapping_score":92115,"overlapping_score_scaled":2,"overlapping_score_label":"medium","overlapping_message":"You worked together at Example Corp for 3 years","relationship_strength":3,"relationship_strength_label":"strong","final_relationship_strength":3,"final_relationship_strength_label":"strong"}]}}]}},"PublicPerson":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"Full name of the person."},"linkedin_id":{"type":"string","nullable":true,"description":"LinkedIn profile identifier of the person."},"title":{"type":"string","nullable":true,"description":"Default current job title of the person."},"company_name":{"type":"string","nullable":true,"description":"Default company the person works at."},"location":{"type":"string","nullable":true,"description":"Geographic location of the person."},"is_target_person":{"type":"boolean","nullable":true,"description":"Whether the person is marked as a target persona."},"company_ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the person's company."},"person_ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the person's profile."},"ctd_score":{"type":"string","nullable":true,"description":"Relationship strength score between your organization and the person. It's good to use for sorting (the higher the score, the stronger the relationship)."},"ctd_score_scaled":{"type":"integer","nullable":true,"minimum":0,"maximum":3,"description":"Scaled CTD score from 0 to 3."},"ctd_score_label":{"type":"string","nullable":true,"enum":["weak","medium","strong"],"description":"Human-readable label for ctd_score_scaled."},"company_linkedin_url":{"type":"string","nullable":true,"description":"LinkedIn company page URL."}}},"PublicPeopleResponse":{"type":"object","properties":{"people":{"type":"array","items":{"$ref":"#/components/schemas/PublicPerson"}}},"example":{"people":[{"name":"Jane Smith","linkedin_id":"jane-smith","title":"CEO","company_name":"Target Inc","location":"San Francisco","is_target_person":false,"ctd_score":"10003.45960000","ctd_score_scaled":3,"ctd_score_label":"strong","company_linkedin_url":"https://www.linkedin.com/company/target-inc","company_ctd_url":"https://ctd.ai/company/target-inc","person_ctd_url":"https://ctd.ai/person/jane-smith"}]}},"PublicCompanyResponse":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"Company name."},"domains":{"type":"array","items":{"type":"string"},"nullable":true,"description":"List of company domains."},"ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the company."},"linkedin_url":{"type":"string","nullable":true,"description":"LinkedIn company page URL."},"num_employees":{"type":"integer","nullable":true,"description":"Number of employees at the company."},"num_employees_range":{"type":"string","nullable":true,"description":"Employee count range (e.g., \"101-200\")."},"industry":{"type":"string","nullable":true,"description":"Company industry classification."},"ctd_score":{"type":"number","nullable":true,"description":"Raw CTD score for the company. It's good to use for sorting by relationship strength between your organization and the company (the higher the score, the stronger the relationship)."},"ctd_score_scaled":{"type":"integer","nullable":true,"minimum":0,"maximum":3,"description":"Scaled CTD score from 0 to 3."},"ctd_score_label":{"type":"string","nullable":true,"enum":["very weak","weak","medium","strong"],"description":"Human-readable label for ctd_score_scaled."},"stage":{"type":"string","nullable":true,"description":"The company stage information."}},"example":{"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"}},"PublicSearchPathsResponse":{"type":"object","properties":{"explanation":{"type":"string","description":"Natural language explanation of the search results"},"paths":{"type":"array","items":{"$ref":"#/components/schemas/PublicPath"}}}},"PublicJobChangesResponse":{"type":"object","properties":{"job_changes":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobChange"}}},"example":{"job_changes":[{"type":"switched_company","job_change_date":"2025-12-15T00:00:00Z","job_change_type":"switched_company","job_change_details":{"who":{"name":"Sarah Johnson","linkedin_id":"sarah-johnson-42","title":"VP of Sales","company_name":"Acme Corp","company_ctd_url":"https://app.ctd.ai/companies/acme-corp","person_ctd_url":"https://app.ctd.ai/people/sarah-johnson","is_champion":false,"is_target_person":true},"new_roles":[{"title":"VP of Sales","date_from":"2025-12-01T00:00:00Z","company_ctd_url":"https://app.ctd.ai/companies/acme-corp","company_name":"Acme Corp"}],"old_roles":[{"title":"Director of Sales","date_from":"2022-03-01T00:00:00Z","date_to":"2025-11-30T00:00:00Z","company_ctd_url":"https://app.ctd.ai/companies/globex-industries","company_name":"Globex Industries"}]}},{"type":"promoted","job_change_date":"2025-11-01T00:00:00Z","job_change_type":"promoted","job_change_details":{"who":{"name":"Michael Chen","linkedin_id":"michael-chen-88","title":"Engineering Manager","company_name":"Initech Solutions","company_ctd_url":"https://app.ctd.ai/companies/initech-solutions","person_ctd_url":"https://app.ctd.ai/people/michael-chen","is_champion":true,"is_target_person":false},"new_roles":[{"title":"Engineering Manager","date_from":"2025-11-01T00:00:00Z","company_ctd_url":"https://app.ctd.ai/companies/initech-solutions","company_name":"Initech Solutions"}],"old_roles":[{"title":"Senior Engineer","date_from":"2023-01-15T00:00:00Z","date_to":"2025-10-31T00:00:00Z","company_ctd_url":"https://app.ctd.ai/companies/initech-solutions","company_name":"Initech Solutions"}]}}]}},"PublicJobChange":{"type":"object","properties":{"type":{"type":"string"},"job_change_date":{"type":"string","format":"date-time","nullable":true,"description":"Date when the job change was detected."},"job_change_type":{"$ref":"#/components/schemas/PublicJobChangeType"},"job_change_details":{"$ref":"#/components/schemas/PublicJobChangeDetails"}}},"PublicJobChangeType":{"type":"string","enum":["joined_company","left_company","switched_company","promoted"]},"PublicJobChangeDetails":{"type":"object","required":["who"],"properties":{"who":{"$ref":"#/components/schemas/PublicJobChangeWho"},"new_roles":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobChangeRole"}},"old_roles":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobChangeRole"}}}},"PublicJobChangeWho":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"Name of the person."},"linkedin_id":{"type":"string","nullable":true,"description":"LinkedIn profile identifier."},"title":{"type":"string","nullable":true,"description":"Current job title."},"company_name":{"type":"string","nullable":true,"description":"Current company name."},"company_ctd_url":{"type":"string","description":"CTD URL for the company."},"person_ctd_url":{"type":"string","description":"CTD URL for the person."},"is_champion":{"type":"boolean","description":"Whether this person is a champion (key connector) in your network."},"is_target_person":{"type":"boolean","description":"Whether this person is marked as a target persona."}}},"PublicJobChangeRole":{"type":"object","properties":{"title":{"type":"string","nullable":true,"description":"Job title for this role."},"date_from":{"type":"string","format":"date-time","nullable":true,"description":"Start date of the role."},"date_to":{"type":"string","format":"date-time","nullable":true,"description":"End date of the role."},"company_ctd_url":{"type":"string","description":"CTD URL for the company."},"company_name":{"type":"string","nullable":true,"description":"Company name for this role."}}},"ReachableCompaniesResponse":{"type":"object","properties":{"companies":{"type":"array","items":{"$ref":"#/components/schemas/ReachableCompany"}}},"example":{"companies":[{"name":"Acme Corp","ctd_url":"https://app.ctd.ai/companies/acme-corp","domains":["acme.com"],"linkedin_url":"https://www.linkedin.com/company/acme-corp","num_employees":150,"num_employees_range":"101-200","industry":"Technology, Information & Internet","ctd_company_score":8500.25,"ctd_company_score_scaled":3,"ctd_company_score_label":"strong","stage":"Approaching","is_target_account":true,"account_owner_name":"Sarah Johnson"},{"name":"Globex Industries","ctd_url":"https://app.ctd.ai/companies/globex-industries","domains":["globex.com"],"linkedin_url":"https://www.linkedin.com/company/globex-industries","num_employees":500,"num_employees_range":"201-500","industry":"Manufacturing","ctd_company_score":4200.1,"ctd_company_score_scaled":2,"ctd_company_score_label":"medium","stage":"Not started","is_target_account":false,"account_owner_name":null}]}},"ReachableCompany":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"Company name."},"ctd_url":{"type":"string","description":"CTD URL for the company."},"domains":{"type":"array","items":{"type":"string"},"description":"List of company domains."},"linkedin_url":{"type":"string","nullable":true,"description":"LinkedIn company page URL."},"num_employees":{"type":"integer","nullable":true,"description":"Number of employees at the company."},"num_employees_range":{"type":"string","nullable":true,"description":"Employee count range (e.g., \"101-200\")."},"industry":{"type":"string","nullable":true,"description":"Company industry classification."},"ctd_company_score":{"type":"number","nullable":true,"description":"Raw CTD company score. Higher values indicate stronger relationships between your organization and the company."},"ctd_company_score_scaled":{"type":"integer","nullable":true,"minimum":0,"maximum":3,"description":"Scaled CTD company score from 0 to 3."},"ctd_company_score_label":{"type":"string","nullable":true,"enum":["very weak","weak","medium","strong"],"description":"Human-readable label for ctd_company_score_scaled."},"stage":{"type":"string","nullable":true,"description":"The company stage information."},"is_target_account":{"type":"boolean","nullable":true,"description":"Whether the company is marked as a target account."},"account_owner_name":{"type":"string","nullable":true,"description":"Name of the account owner assigned to this company."}}},"ReachablePeopleResponse":{"type":"object","properties":{"people":{"type":"array","items":{"$ref":"#/components/schemas/ReachablePerson"}}},"example":{"people":[{"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},{"name":"Michael Chen","linkedin_id":"michael-chen-88","title":"Engineering Manager","company_name":"Globex Industries","company_linkedin_url":"https://www.linkedin.com/company/globex-industries","location":"San Francisco, CA","is_target_person":false,"ctd_score":4200.1,"ctd_score_scaled":2,"ctd_score_label":"medium","person_ctd_url":"https://app.ctd.ai/people/michael-chen","company_ctd_url":"https://app.ctd.ai/companies/globex-industries","total_paths":2,"total_2nd_degree_paths":1,"total_strong_paths":1}]}},"ReachablePersonResponse":{"type":"object","properties":{"person":{"$ref":"#/components/schemas/ReachablePerson"}},"example":{"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":[{"title":"VP of Sales","company_name":"Acme Corp","domain_names":["acme-corp.com"],"ctd_url":"https://app.ctd.ai/companies/acme-corp","is_current":true,"is_primary":true,"when_started":"2024-09-30T22:00:00.000Z","when_ended":null,"company_industry":"Technology, Information & Internet"}],"former_roles":[{"title":"Sales Director","company_name":"Initech Solutions","domain_names":["initech.com"],"ctd_url":"https://app.ctd.ai/companies/initech","is_current":false,"is_primary":false,"when_started":"2021-04-30T22:00:00.000Z","when_ended":"2024-08-30T22:00:00.000Z","company_industry":"Software Development"}]}}},"ReachablePerson":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"Full name of the person."},"linkedin_id":{"type":"string","nullable":true,"description":"LinkedIn profile identifier."},"title":{"type":"string","nullable":true,"description":"Current job title."},"company_name":{"type":"string","nullable":true,"description":"Current company name."},"company_linkedin_url":{"type":"string","nullable":true,"description":"LinkedIn company page URL."},"location":{"type":"string","nullable":true,"description":"Geographic location of the person."},"is_target_person":{"type":"boolean","nullable":true,"description":"Whether the person is marked as a target persona."},"ctd_score":{"type":"number","nullable":true,"description":"Relationship strength score. Higher values indicate stronger relationships."},"ctd_score_scaled":{"type":"integer","nullable":true,"minimum":0,"maximum":3,"description":"Scaled CTD score from 0 to 3."},"ctd_score_label":{"type":"string","nullable":true,"enum":["weak","medium","strong"],"description":"Human-readable label for ctd_score_scaled."},"person_ctd_url":{"type":"string","description":"CTD URL for the person's profile."},"company_ctd_url":{"type":"string","description":"CTD URL for the person's company."},"total_paths":{"type":"integer","description":"Total number of paths to this person."},"total_2nd_degree_paths":{"type":"integer","description":"Number of 2nd-degree paths to this person."},"total_strong_paths":{"type":"integer","description":"Number of strong paths to this person."},"current_roles":{"type":"array","description":"Roles this person currently holds.","items":{"$ref":"#/components/schemas/ReachablePersonRole"}},"former_roles":{"type":"array","description":"Roles this person previously held.","items":{"$ref":"#/components/schemas/ReachablePersonRole"}}}},"ReachablePersonRole":{"type":"object","properties":{"title":{"type":"string","nullable":true,"description":"Role title."},"company_name":{"type":"string","nullable":true,"description":"Company name for the role."},"domain_names":{"type":"array","items":{"type":"string"},"description":"Known domain names for the company."},"ctd_url":{"type":"string","nullable":true,"description":"CTD URL for the company."},"is_current":{"type":"boolean","nullable":true,"description":"Whether this role is currently held."},"is_primary":{"type":"boolean","description":"Whether this role is the person's primary role at the company."},"when_started":{"type":"string","format":"date-time","nullable":true,"description":"When the role started."},"when_ended":{"type":"string","format":"date-time","nullable":true,"description":"When the role ended, if applicable."},"company_industry":{"type":"string","nullable":true,"description":"Industry of the company."}}}},"responses":{"InternalServerError":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Internal server error"},"code":{"type":"string","example":"10.5","description":"Code used for Frontend"}}}}}},"BadRequest":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Bad request","description":"More descriptive message about error, intended to be used by developers"},"code":{"type":"string","example":"10.4"},"details":{"type":"object","description":"Mostly used for joi errors, what went wrong"}}}}}},"NotFound":{"description":"Item Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Item not found","description":"More descriptive message about error, intended to be used by developers"},"code":{"type":"string","example":"23.06"}}}}}},"Forbidden":{"description":"User is forbidden to do this action","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Forbidden","description":"More descriptive message about error, intended to be used by developers"},"code":{"type":"string","example":"10.4.3"}}}}}}}}}