{"openapi":"3.1.0","info":{"title":"AggKnowledge API","version":"2.0.0"},"servers":[{"url":"https://api.aggknowledgeai.com"}],"security":[{"api-key":[]}],"tags":[{"description":"V2 APIs to fetch company information","name":"Company"},{"description":"V2 synchronous APIs to fetch person information","name":"Person Synchronous"},{"description":"V2 asynchronous APIs to fetch person information","name":"Person Asynchronous"},{"description":"V2 APIs to normalize data","name":"Normalization"},{"description":"V2 APIs for account introspection","name":"Me"},{"description":"V2 APIs for contact information","name":"Contact Info"},{"description":"V2 APIs for company relationships","name":"Company Relationships"},{"description":"V2 APIs for basic discover search","name":"Discover Basic"},{"description":"V2 APIs for advanced discover search","name":"Discover Advanced"}],"paths":{"/v2/{environment}/company/descriptions":{"post":{"description":"Accepts an array of AggK Company IDs and returns descriptions. If a description is not found and the company is ineligible for descriptions, an error flag is set. Accepts up to 500 company IDs per request. (Tier 4)","operationId":"companyDescriptions","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyDescriptionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyDescriptionResponse"}}},"description":"Company descriptions"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Fetch company descriptions","tags":["Company"]}},"/v2/{environment}/company/enrich":{"post":{"description":"Accepts a company enrichment request and returns enriched company data (Tier 3)","operationId":"companyEnrich","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyEnrichmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyEnrichmentResponse"}}},"description":"Enriched company data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Company not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Enrich","tags":["Company"]}},"/v2/{environment}/company/enrich/bulk":{"post":{"description":"Accepts a list of company enrichment requests and returns a list of enriched company data. Accepts up to 25 requests per call. (Tier 3)","operationId":"companyBulkEnrich","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyEnrichmentRequestBulk"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CompanyEnrichmentResponse"}}}},"description":"Enriched company data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payload too large"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Bulk enrich","tags":["Company"]}},"/v2/{environment}/company/match":{"post":{"description":"Accepts company attributes as and/or/not filters and returns matching companies ranked by relevance. name, website, socialProfile, socialProfileId, and listing take only 'or' and 'not'; their 'or' values are required matches. On keyword fields (industry, country, etc.) 'or' is a soft ranking preference while 'and' is a hard filter accepting a single value; 'not' values are hard exclusions. (Tier 3)","operationId":"companyMatch","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyMatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyMatchResponse"}}},"description":"Company match results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Match","tags":["Company"]}},"/v2/{environment}/company/search":{"post":{"description":"Accepts a company search request and returns possible matches (Tier 3)","operationId":"companySearch","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchResponse"}}},"description":"Company search results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Search","tags":["Company"]}},"/v2/{environment}/discover/people":{"post":{"deprecated":true,"description":"Returns persons matching criteria (Tier 2)","operationId":"discoverPeople","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverPersonSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverPersonSearchResponse"}}},"description":"Person search results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Discover people","tags":["Discover Basic"]}},"/v2/{environment}/discover/people/advanced":{"post":{"description":"Returns persons matching complex criteria with and/or/not semantics organized by index (vendorgraphics, company, workExperience) (Tier 2)","operationId":"advancedDiscoverSearch","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedDiscoverSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedDiscoverSearchResponse"}}},"description":"Advanced discover search results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Advanced Discover Search","tags":["Discover Advanced"]}},"/v2/{environment}/discover/people/advanced/count":{"post":{"description":"Returns the count of persons matching complex criteria with and/or/not semantics organized by index (vendorgraphics, company, workExperience) (Tier 2)","operationId":"advancedDiscoverSearchCount","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedDiscoverSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverCountResponse"}}},"description":"Count of matching persons"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Count advanced discover search results","tags":["Discover Advanced"]}},"/v2/{environment}/discover/people/advanced/translate":{"post":{"description":"Rewrites an advanced discover request as the equivalent v3 discover request, the same rewrite the advanced search runs internally, and reports anything the v3 endpoint would reject. Does not perform a search or consume credits. (Tier 2)","operationId":"translateAdvancedDiscoverRequest","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedDiscoverSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverTranslationResponse"}}},"description":"The equivalent v3 request, with warnings for anything v3 would reject"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Translate an advanced discover request to v3","tags":["Discover Advanced"]}},"/v2/{environment}/discover/people/advanced/validate":{"post":{"description":"Validates all field values in an advanced discover request and returns detailed warnings for any invalid values (especially enums such as role, industry, seniority). It also flags a request too large to evaluate (QUERY_TOO_LARGE), which a search would refuse with a 400. Does not perform a search or consume credits. (Tier 2)","operationId":"validateAdvancedDiscoverRequest","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedDiscoverSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverValidationResponse"}}},"description":"Validation result with warnings for any invalid values"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Validate an advanced discover request","tags":["Discover Advanced"]}},"/v2/{environment}/discover/people/count":{"post":{"deprecated":true,"description":"Returns the count of persons matching criteria (Tier 2)","operationId":"discoverPeopleCount","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverPersonSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverCountResponse"}}},"description":"Count of matching persons"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Count discover people","tags":["Discover Basic"]}},"/v2/{environment}/discover/people/sidekick":{"post":{"description":"Accepts a natural language query, translates it into an Advanced Discover search using AI, and returns matching persons. (Tier 2)","operationId":"discoverSidekick","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverSidekickRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedDiscoverSearchResponse"}}},"description":"Sidekick search results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Discover Sidekick (natural language search)","tags":["Discover Sidekick"]}},"/v2/{environment}/discover/people/validate":{"post":{"deprecated":true,"description":"Validates all field values in a discover people request and returns detailed warnings for any invalid values (especially enums such as role, industry, seniority). It also flags a request too large to evaluate (QUERY_TOO_LARGE), which a search would refuse with a 400. Does not perform a search or consume credits. (Tier 2)","operationId":"validateDiscoverRequest","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverPersonSearchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverValidationResponse"}}},"description":"Validation result with warnings for any invalid values"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Validate a discover people request","tags":["Discover Basic"]}},"/v2/{environment}/me/rate-limits":{"get":{"description":"Returns the rate limits for all supported endpoint types for the authenticated customer (Tier 4)","operationId":"rateLimitIntrospect","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitIntrospectionResponse"}}},"description":"Rate limit information retrieved successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Introspect Rate Limits","tags":["Rate Limits"]}},"/v2/{environment}/normalization/job-title":{"post":{"description":"Normalizes a job title to standard format (Tier 4)","operationId":"normalizeJobTitle","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobTitleNormalizationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobTitleNormalizationResponse"}}},"description":"Job title normalization result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Normalize Job Title","tags":["Normalization"]}},"/v2/{environment}/normalization/linkedin-url":{"post":{"description":"Normalizes a LinkedIn URL to standard format (Tier 4)","operationId":"normalizeLinkedinUrl","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedinUrlNormalizationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedinUrlNormalizationResponse"}}},"description":"LinkedIn URL normalization result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Normalize LinkedIn URL","tags":["Normalization"]}},"/v2/{environment}/normalization/linkedin-username":{"post":{"description":"Extracts a username from a LinkedIn URL (Tier 4)","operationId":"extractLinkedinUsername","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedinUsernameExtractionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedinUsernameExtractionResponse"}}},"description":"LinkedIn username extraction result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Extract LinkedIn Username","tags":["Normalization"]}},"/v2/{environment}/normalization/website":{"post":{"description":"Normalizes a website URL to top-level domain format (Tier 4)","operationId":"normalizeWebsite","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteNormalizationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteNormalizationResponse"}}},"description":"Website normalization result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Normalize Website URL","tags":["Normalization"]}},"/v2/{environment}/person/contact-info":{"post":{"description":"Submit a batch of person contact info enrichment requests. Processing is asynchronous: returns a batch ID and item count; poll GET /person/contact-info/{id} for status and results. Phone numbers are withheld for people resident in Colorado: enrichPhone is ignored for those items, which complete with no phone and no error, and no phone enrichment is billed. (Tier 3)","operationId":"personContactInfo","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonContactDataBatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonContactDataResponse"}}},"description":"Contact info request accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Request contact information","tags":["Contact Info"]}},"/v2/{environment}/person/contact-info/{id}":{"get":{"description":"Returns the status of a contact data batch (Tier 4)","operationId":"getContactDataBatchStatus","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Batch UUID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonContactDataBatchResponse"}}},"description":"Batch status"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Batch not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Get contact data batch status","tags":["Contact Info"]}},"/v2/{environment}/person/enrich":{"post":{"description":"Accepts a person enrichment request and returns enriched person data (Tier 1)","operationId":"personEnrich","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentResponse"}}},"description":"Enriched person data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentProblems"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Person not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Enrich","tags":["Person Synchronous"]}},"/v2/{environment}/person/enrich/bulk":{"post":{"description":"Accepts a list of person enrichment requests and returns a batch ID. Accepts up to 250 requests; processing is asynchronous, so poll GET /person/enrich/bulk/{id} for status. (Tier 3)","operationId":"personBulkEnrich","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","description":"Person enrichment request","items":{"$ref":"#/components/schemas/PersonEnrichmentRequest"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBulkEnrichmentCreateResponse"}}},"description":"Enriched person data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payload too large"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Bulk enrich","tags":["Person Asynchronous"]}},"/v2/{environment}/person/enrich/bulk/list":{"get":{"description":"Returns all person bulk enrichment batches for the current customer (Tier 4)","operationId":"personBulkEnrichmentList","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Filter batches created after this date (YYYY-MM-DD format)","in":"query","name":"createdAfter","required":false,"schema":{"type":"string"}},{"description":"Maximum number of results to return (default: 100, max: 1000)","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"description":"Number of results to skip for pagination (default: 0)","in":"query","name":"offset","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBulkEnrichmentListResponse"}}},"description":"List of person bulk enrichment batches"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"List all person bulk enrichment batches","tags":["Person Asynchronous"]}},"/v2/{environment}/person/enrich/bulk/{id}":{"get":{"description":"Returns the status of a bulk enrichment (Tier 4)","operationId":"personBulkEnrichStatus","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Bulk enrichment ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBulkEnrichmentStatusResponse"}}},"description":"Bulk enrichment status"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Bulk enrichment status","tags":["Person Asynchronous"]}},"/v2/{environment}/person/enrich/bulk/{id}/item/{itemId}":{"get":{"description":"Returns a complete bulk enriched person (Tier 4)","operationId":"personBulkEnrichItem","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Bulk enrichment ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Bulk enrichment item ID","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentResponse"}}},"description":"Bulk enriched person"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Not found"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Item not ready"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Fetch bulk enriched person","tags":["Person Asynchronous"]}},"/v2/{environment}/person/enrich/bulk/{id}/items":{"get":{"description":"Returns all enriched person items for a batch with cursor-based pagination (Tier 4)","operationId":"personBulkEnrichmentItems","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Bulk enrichment batch ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Cursor for pagination. Use the cursor value from the previous response to get more results.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Maximum number of results to return (default: 20, max: 50)","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonBulkEnrichmentItemsResponse"}}},"description":"List of enriched person items with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Batch not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Get all person bulk enrichment items","tags":["Person Asynchronous"]}},"/v2/{environment}/person/match":{"post":{"description":"Accepts a person match request with required full name and optional multiple companies, domains, and emails. Returns possible matches limited to 250 results. (Tier 3)","operationId":"personMatch","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonMatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonMatchResponse"}}},"description":"Match results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Match","tags":["Person Synchronous"]}},"/v2/{environment}/person/search":{"post":{"description":"Accepts a person search request and returns possible matches (Tier 3)","operationId":"personSearch","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonSearchRequest"}}},"required":true},"responses":{"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Search","tags":["Person Synchronous"]}},"/v2/{environment}/person/validate":{"post":{"description":"Validates whether a person enrichment request has sufficient information and valid URLs (Tier 4)","operationId":"validateEnrichmentRequest","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentValidationResponse"}}},"description":"Validation result"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Validate enrichment request","tags":["Person Synchronous"]}},"/v2/{environment}/person/validate/bulk":{"post":{"description":"Validates whether multiple person enrichment requests have sufficient information and valid URLs. Accepts up to 250 requests. (Tier 4)","operationId":"validateEnrichmentRequestsBulk","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","description":"Person enrichment requests to validate","items":{"$ref":"#/components/schemas/PersonEnrichmentRequest"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonEnrichmentValidationResponse"}}}},"description":"Validation results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Bulk validate enrichment requests","tags":["Person Synchronous"]}},"/v2/{environment}/usage":{"get":{"description":"Returns usage information for the current customer (Tier 4)","operationId":"checkUsage","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}},"description":"Usage information retrieved successfully"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Check usage","tags":["Usage"]}},"/v2/{environment}/vendorgraphics/categories":{"get":{"description":"Returns product categories with cursor-based pagination, sorted deterministically by category ID. Maximum of 250 categories per page. (Tier 3)","operationId":"fetchCategories","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Cursor for pagination. Use the cursor value from the previous response to get more results.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Maximum number of results to return (default: 100, max: 250)","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryListResponse"}}},"description":"List of product categories with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Fetch product categories","tags":["Product Catalog"]}},"/v2/{environment}/vendorgraphics/company":{"post":{"description":"Returns vendorgraphic enrichment for a company: the products used, products offered, and services offered for a given AggK Company ID (Tier 3)","operationId":"companyVendorgraphics","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyVendorgraphicsEnrichmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyVendorgraphicsEnrichmentResponse"}}},"description":"Enriched company data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Company not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Company vendorgraphics","tags":["Company Vendorgraphics"]}},"/v2/{environment}/vendorgraphics/company/relationships":{"post":{"description":"Returns a company's vendorgraphic relationships using cursor-based pagination (up to 500 per page). Supports an optional lastSeenAfter filter to return only relationships observed after a given time. (Tier 3)","operationId":"companyRelationships","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyRelationshipsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyRelationshipsResponse"}}},"description":"Company relationships data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Company not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Company relationships","tags":["Company Vendorgraphics"]}},"/v2/{environment}/vendorgraphics/person":{"post":{"description":"Returns the products associated with a person's role (role-based vendorgraphics) for a given AggK Person ID (Tier 3)","operationId":"personRoleVendorgraphics","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonVendorgraphicsEnrichmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonVendorgraphicsEnrichmentResponse"}}},"description":"Enriched person data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Person not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Person role vendorgraphics","tags":["Person Vendorgraphics"]}},"/v2/{environment}/vendorgraphics/products":{"get":{"description":"Returns products with cursor-based pagination, sorted deterministically by product ID. Maximum of 250 products per page. (Tier 3)","operationId":"fetchProducts","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"description":"Cursor for pagination. Use the cursor value from the previous response to get more results.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Maximum number of results to return (default: 100, max: 250)","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductListResponse"}}},"description":"List of products with pagination"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Fetch products","tags":["Product Catalog"]}},"/v2/{environment}/vendorgraphics/search/customers/by-category":{"post":{"description":"Returns customers of products in a specified category, with usage signal details, using cursor-based pagination (up to 500 results per page) (Tier 3)","operationId":"searchCustomersOfCategory","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorgraphicsSearchCategoryCustomersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorgraphicsSearchProductCustomersResponse"}}},"description":"Enriched category customer data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Category not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Category customer search","tags":["Company Vendorgraphics"]}},"/v2/{environment}/vendorgraphics/search/customers/by-product":{"post":{"description":"Returns customers of a specified product, with usage signal details, using cursor-based pagination (up to 500 results per page) (Tier 3)","operationId":"searchCustomersOfProduct","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorgraphicsSearchProductCustomersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorgraphicsSearchProductCustomersResponse"}}},"description":"Enriched product customer data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Product not found"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Product customer search","tags":["Company Vendorgraphics"]}},"/v2/{environment}/vendorgraphics/search/products":{"post":{"description":"Searches the vendorgraphics product catalog by name and returns matching products (Tier 3)","operationId":"searchVendorgraphicProducts","parameters":[{"description":"Environment (live or test)","in":"path","name":"environment","required":true,"schema":{"type":"string","enum":["live","test"]}},{"$ref":"#/components/parameters/ApiKeyHeader"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorgraphicsSearchProductRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorgraphicsSearchProductResponse"}}},"description":"Product search results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Invalid input"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Payment required"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericProblem"}}},"description":"Too many requests"}},"security":[{"api-key":[]}],"summary":"Vendorgraphic products","tags":["Product Catalog"]}}},"components":{"parameters":{"ApiKeyHeader":{"description":"API key for authentication","in":"header","name":"x-api-key","required":true,"schema":{"type":"string"}}},"schemas":{"AdvancedDiscoverPerson":{"type":"object","description":"Person result from Advanced Discover Search","properties":{"currentPositions":{"type":"array","description":"List of current positions where the person works","items":{"$ref":"#/components/schemas/CurrentPosition"}},"firstName":{"type":"string","description":"Person first name","example":"daniel"},"id":{"type":"integer","format":"int64","description":"AggKnowledge Person ID","example":590654273},"lastName":{"type":"string","description":"Person last name","example":"entrup"},"linkedinUrl":{"type":"string","description":"Normalized Linkedin URL","example":"linkedin.com/in/danielentrup"},"matchingCompany":{"$ref":"#/components/schemas/MatchingCompany","description":"Company attributes for the matched work experience"},"matchingProduct":{"$ref":"#/components/schemas/MatchingProduct","description":"Product attributes for the matched work experience"},"personCountry":{"type":"string","description":"Person's country","example":"United States"},"personCountryCode":{"type":"string","description":"The person's country, as an ISO 3166-1 alpha-2 code","example":"US"},"personLocality":{"type":"string","description":"Person's locality (city)","example":"San Francisco"},"personRegion":{"type":"string","description":"Person's region (state)","example":"California"},"personRegionCode":{"type":"string","description":"The person's region (state) code","example":"CA"}}},"AdvancedDiscoverSearchRequest":{"type":"object","description":"Advanced discover search request","properties":{"company":{"$ref":"#/components/schemas/CompanyFilter","description":"Filters for company index (firmographic data)"},"cursor":{"type":"string","description":"Pagination cursor from previous response for fetching next page of results"},"grouping":{"$ref":"#/components/schemas/Grouping","description":"Result diversity controls"},"limit":{"type":"integer","format":"int32","description":"Maximum number of results to return per page (default: 1000, max: 1000)","example":100},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."},"person":{"$ref":"#/components/schemas/PersonFilter","description":"Filters for person attributes (location)"},"vendorgraphics":{"$ref":"#/components/schemas/VendorgraphicsFilter","description":"Filters for vendorgraphics index (products and categories)"},"workExperience":{"$ref":"#/components/schemas/WorkExperienceFilter","description":"Filters for work experience index (job titles, roles, etc.)"}}},"AdvancedDiscoverSearchResponse":{"type":"object","description":"Response containing search results","properties":{"data":{"type":"array","description":"List of persons matching the search criteria","items":{"$ref":"#/components/schemas/AdvancedDiscoverPerson"}},"estimatedCount":{"type":"integer","format":"int64","description":"Estimated total number of matching results, counted accurately up to a cap of 5000 (larger result sets report 5000)"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"nextCursor":{"type":"string","description":"Pagination cursor for fetching the next page of results"}}},"AsyncCompanyOperationsDto":{"type":"object","properties":{"isUpdatingCompetitors":{"type":"boolean","description":"Whether the company's competitors are being updated asynchronously."},"isUpdatingDescription":{"type":"boolean","description":"Whether the company description is being updated asynchronously."},"isUpdatingProducts":{"type":"boolean","description":"Whether the company's products are being updated asynchronously."}}},"BulkEnrichmentBatchStatus":{"type":"string","enum":["ready","pending","purged"]},"BulkEnrichmentItemStatus":{"type":"string","enum":["pending","completed","failed"]},"Category":{"type":"object","description":"List of categories this product belongs to, in no particular order","properties":{"categoryHierarchy":{"type":"array","description":"The tree structure of the category, from the top-level category down to the specific category. Will always include the current category at the end of the list.","items":{"$ref":"#/components/schemas/CategoryHierarchyItem"}},"id":{"type":"integer","format":"int64","description":"Unique identifier for the category","example":1785},"name":{"type":"string","description":"Name of the category","example":"Accounts Payable (AP) and Spend Analysis"}}},"CategoryHierarchyItem":{"type":"object","description":"The tree structure of the category, from the top-level category down to the specific category. Will always include the current category at the end of the list.","properties":{"categoryId":{"type":"integer","format":"int64","description":"Unique identifier for the category","example":137},"level":{"type":"integer","format":"int64","description":"Level of the category in the hierarchy, where 1 is the highest level and broadest category","example":4},"name":{"type":"string","description":"Name of the category at this level in the hierarchy","example":"Procurement"}}},"CategoryListResponse":{"type":"object","description":"Response containing product categories with cursor-based pagination","properties":{"categories":{"type":"array","description":"List of product categories","items":{"$ref":"#/components/schemas/Category"}},"cursor":{"type":"string","description":"Cursor for pagination. Use this value as the cursor parameter in the next request to get more results."}}},"CompanyAttributeFilter":{"type":"object","description":"Filter on a company attribute with and/or/not semantics","properties":{"and":{"type":"array","description":"The single value the company must hold (hard filter). A company holds exactly one value, so more than one distinct value (compared after trimming and, except for the range codes, ignoring case) is rejected with a 400, as is a value that is also in not","items":{"type":"string"}},"not":{"type":"array","description":"Values the company must not hold (hard exclusion)","items":{"type":"string"}},"or":{"type":"array","description":"Values that raise the ranking of companies holding any of them, without excluding the rest","items":{"type":"string"}}}},"CompanyDescriptionItem":{"type":"object","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggK Company ID"},"description":{"type":"string","description":"Company description if available"},"isCompanyNotFound":{"type":"boolean","description":"Set to true if the company was not found in the database"},"wasDescriptionRejected":{"type":"boolean","description":"Whether the description for this company was rejected/blocked"},"willDescriptionBeGenerated":{"type":"boolean","description":"Whether a description will be generated for this company in the future"}},"required":["aggkCompanyId"]},"CompanyDescriptionRequest":{"type":"object","description":"Company description request","properties":{"companyIds":{"type":"array","description":"List of AggK Company IDs to fetch descriptions for (max 500)","example":[65731533,55294387],"items":{"type":"integer","format":"int64"},"maxItems":500,"minItems":1}},"required":["companyIds"]},"CompanyDescriptionResponse":{"type":"object","properties":{"descriptions":{"type":"array","description":"List of company descriptions","items":{"$ref":"#/components/schemas/CompanyDescriptionItem"}},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"CompanyEnrichmentRequest":{"type":"object","description":"Company enrichment request","properties":{"companyId":{"type":"integer","format":"int64","description":"Company ID","example":15017574},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10},"socialProfile":{"type":"string","description":"Social profile URL (the company LinkedIn URL, using either the vanity name or the numeric LinkedIn company ID). This value will be normalized server-side.","example":"https://www.linkedin.com/company/aggknowledge"},"socialProfileId":{"type":"string","description":"Social profile ID (the numeric LinkedIn company ID)","example":"1815"},"website":{"type":"string","description":"Company website","example":"aggknowledge.ai"}}},"CompanyEnrichmentRequestBulk":{"type":"object","description":"Company enrichment request","properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/CompanyEnrichmentRequest"}}}},"CompanyEnrichmentRequestParameters":{"type":"object","properties":{"companyId":{"type":"integer","format":"int64","description":"Company ID","example":15017574},"socialProfile":{"type":"string","description":"Social profile URL (the company LinkedIn URL, using either the vanity name or the numeric LinkedIn company ID). This value will be normalized server-side.","example":"https://www.linkedin.com/company/aggknowledge"},"socialProfileId":{"type":"string","description":"Social profile ID (the numeric LinkedIn company ID)","example":"1815"},"website":{"type":"string","description":"Company website","example":"aggknowledge.ai"}}},"CompanyEnrichmentResponse":{"type":"object","properties":{"asyncOperations":{"$ref":"#/components/schemas/AsyncCompanyOperationsDto","description":"If `hasAsyncOperations` is true, this field will describe which async operations are in progress."},"data":{"$ref":"#/components/schemas/CompleteCompany"},"hasAsyncOperations":{"type":"boolean","description":"Whether the request triggered asynchronous data updates. If `true`, check `asyncOperations` for which async operations are in progress."},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"inputParameters":{"$ref":"#/components/schemas/CompanyEnrichmentRequestParameters","description":"Caller-supplied inputs echoed back in the response"},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"CompanyFilter":{"type":"object","description":"Filters for company index","properties":{"aggkCompanyId":{"$ref":"#/components/schemas/FieldFilterString","description":"AggKnowledge Company ID filter"},"companyFilter":{"type":"string","description":"Company filter mode: WORK_EXPERIENCE (default) or RELATIONSHIP","enum":["WORK_EXPERIENCE","RELATIONSHIP"]},"companyName":{"$ref":"#/components/schemas/FieldFilterString","description":"Company name filter (supports partial/phrase matching). Bounded by the total number of words rather than by the number of values, so one long name costs as much as several short ones; a filter too large to evaluate is rejected with a 400"},"companyType":{"$ref":"#/components/schemas/FieldFilterString","description":"Company type filter"},"companyWebsite":{"$ref":"#/components/schemas/FieldFilterString","description":"Company website filter"},"country":{"$ref":"#/components/schemas/FieldFilterString","description":"Company country"},"employeeCountRange":{"$ref":"#/components/schemas/FieldFilterString","description":"Employee count range filter"},"fundingRoundCount":{"$ref":"#/components/schemas/IntegerRangeFilter","description":"Range on the number of funding rounds the company has participated in"},"fundingTotal":{"$ref":"#/components/schemas/LongRangeFilter","description":"Range on the total funding raised and publicly disclosed, in USD"},"industry":{"$ref":"#/components/schemas/FieldFilterString","description":"Industry filter"},"latestFundingAmount":{"$ref":"#/components/schemas/LongRangeFilter","description":"Range on the amount of the latest funding round. Companies with no known amount never match"},"latestFundingDate":{"$ref":"#/components/schemas/DateRangeFilter","description":"Latest funding date range"},"latestFundingStage":{"$ref":"#/components/schemas/FieldFilterString","description":"Stage of the company's latest funding round"},"locality":{"$ref":"#/components/schemas/FieldFilterString","description":"Company locality"},"primaryExchange":{"$ref":"#/components/schemas/FieldFilterString","description":"Company's primary stock exchange"},"primaryTicker":{"$ref":"#/components/schemas/FieldFilterString","description":"Company's primary stock ticker"},"region":{"$ref":"#/components/schemas/FieldFilterString","description":"Company region"},"relationshipType":{"type":"string","description":"Relationship type filter (only used when companyFilter=RELATIONSHIP)","enum":["CUSTOMER","VENDOR","PARTNER"]},"revenueRangeInferred":{"$ref":"#/components/schemas/FieldFilterString","description":"Revenue range inferred filter"}}},"CompanyListing":{"type":"object","description":"A stock listing, identified by its ticker and exchange together","properties":{"exchange":{"type":"string","description":"Exchange as a MIC code (xnys, xnas, xetr), matched case-insensitively — not an exchange name such as NYSE or NASDAQ. Required alongside ticker","example":"xnys"},"ticker":{"type":"string","description":"Ticker symbol, matched case-insensitively. Required alongside exchange","example":"CRM"}}},"CompanyMatchRequest":{"type":"object","description":"Company match request","properties":{"companyType":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by company type. 'or' boosts matches without excluding other types; use 'and' with a single value to filter"},"country":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by country. 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"countryCode":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by ISO 3166-1 alpha-2 country code, such as 'DE'. Matched case-insensitively; an unrecognized code is rejected with a 400. 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"employeeCountRange":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by employee count range. 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"fundingRoundCount":{"$ref":"#/components/schemas/IntegerRangeFilter","description":"Filter by funding round count (min/max)"},"fundingTotal":{"$ref":"#/components/schemas/LongRangeFilter","description":"Filter by total funding amount (min/max)"},"industry":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by industry. 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"keywords":{"$ref":"#/components/schemas/FieldFilterString","description":"Keyword filter matched against company description and tags. Bounded by the total number of words across 'and', 'or' and 'not' rather than by the number of keywords, so one long phrase costs as much as several single words; a filter too large to evaluate is rejected with a 400"},"latestFundingAmount":{"$ref":"#/components/schemas/LongRangeFilter","description":"Filter by latest funding amount (min/max)"},"latestFundingDate":{"$ref":"#/components/schemas/DateRangeFilter","description":"Filter by latest funding date (gte/lte, supports YYYY, YYYY-MM, or YYYY-MM-DD)"},"latestFundingStage":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by latest funding stage. 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"listing":{"$ref":"#/components/schemas/ExactMatchFilterCompanyListing","description":"Filter by stock listing as a (ticker, exchange) pair — a ticker is unique only within an exchange, so the pair is what identifies a listing. Each pair must carry both halves, and 'or' values are a hard requirement: the company must hold one of the pairs. Only a company's primary listing is indexed, so a secondary cross-listing will not match"},"locality":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by locality (city). 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"name":{"$ref":"#/components/schemas/ExactMatchFilterString","description":"Filter by company name (searches name, display name, and alternative names). Use 'or' for several candidate names"},"primaryExchange":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by primary stock exchange, on its own. 'or' boosts matches without excluding others; use 'and' with a single value to filter. Reach for this to screen by exchange alone; when you know the ticker too, send them together as 'listing'"},"primaryTicker":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by primary ticker symbol, on its own. 'or' boosts matches without excluding others; use 'and' with a single value to filter. Reach for this when the exchange is unknown; when you know it, send the two together as 'listing'"},"region":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by region (state/province). 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"revenueRangeInferred":{"$ref":"#/components/schemas/CompanyAttributeFilter","description":"Filter by inferred revenue range. 'or' boosts matches without excluding others; use 'and' with a single value to filter"},"socialProfile":{"$ref":"#/components/schemas/ExactMatchFilterString","description":"Filter by social profile URL (searches LinkedIn URL and social profile fields; input is normalized to strip protocol, subdomain, and query string while preserving path). Use 'or' for several candidate profiles"},"socialProfileId":{"$ref":"#/components/schemas/ExactMatchFilterString","description":"Filter by social profile ID (the numeric LinkedIn company ID). Matched exactly, so 'or' values are a hard requirement"},"website":{"$ref":"#/components/schemas/ExactMatchFilterString","description":"Filter by website (searches website and domain fields; input is normalized to strip protocol and query string). Use 'or' for several candidate websites"}}},"CompanyMatchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/CompanySearchResult"}}}},"CompanyMetadata":{"type":"object","description":"Minimal company metadata","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID"},"linkedinUrl":{"type":"string","description":"LinkedIn URL"},"name":{"type":"string","description":"Company name"},"website":{"type":"string","description":"Company website"}}},"CompanyRelationship":{"type":"object","properties":{"aggkCompanyId":{"type":"integer","format":"int64"},"firstSeenAt":{"type":"string","description":"Date when relationship was first seen"},"lastSeenAt":{"type":"string","description":"Date when relationship was last seen"},"linkedinUrl":{"type":"string"},"name":{"type":"string"},"relationshipType":{"type":"string","description":"Relationship type","enum":["customer_vendor","partnership"]}}},"CompanyRelationshipsRequest":{"type":"object","description":"Company relationships request","properties":{"companyId":{"type":"integer","format":"int64","description":"Company ID to fetch relationships for","example":12345},"cursor":{"type":"string","description":"Cursor for pagination. Use the cursor value from the previous response to get more results. Important: When using pagination with filters (like lastSeenAfter), you must include the same filter parameters in subsequent requests along with the cursor."},"lastSeenAfter":{"type":"string","description":"Filter relationships by last_seen_at date. Returns only relationships where last_seen_at is on or after this date. Accepts YYYY, YYYY-MM, or YYYY-MM-DD format. Note: This filter must be included in all paginated requests (along with the cursor) to maintain consistent results.","example":"2024-01-01"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."}},"required":["companyId"]},"CompanyRelationshipsResponse":{"type":"object","description":"Response containing company relationships","properties":{"company":{"$ref":"#/components/schemas/CompanyMetadata","description":"The company whose relationships are returned"},"cursor":{"type":"string","description":"Cursor for pagination. Use this value as the cursor parameter in the next request to get more results."},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which.","example":false},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`.","example":true},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing.","example":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"relationships":{"type":"array","description":"List of company relationships","items":{"$ref":"#/components/schemas/CompanyRelationship"}}},"required":["relationships"]},"CompanySearchRequest":{"type":"object","description":"Company search request","properties":{"companyName":{"type":"string","description":"Company name","example":"AggKnowledge"}}},"CompanySearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/CompanySearchResult"}}}},"CompanySearchResult":{"type":"object","properties":{"companyType":{"$ref":"#/components/schemas/CompanyType","description":"Type of company","example":"public"},"country":{"type":"string","description":"Country of the company's primary address","example":"united states"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 code of the company's country","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"],"example":"US"},"description":{"type":"string","description":"Brief description of the company"},"displayName":{"type":"string"},"id":{"type":"integer","format":"int64"},"linkedinId":{"type":"integer","format":"int64","description":"Company LinkedIn ID","example":93061732},"linkedinUrl":{"type":"string"},"name":{"type":"string"},"primaryExchange":{"type":"string","description":"Primary stock exchange the company trades on. Null when the company is not publicly traded.","example":"xnas"},"primaryTicker":{"type":"string","description":"Primary stock ticker symbol, for public companies. Null when the company is not publicly traded.","example":"HSIC"},"tags":{"type":"array","description":"Tags associated with the company","items":{"type":"string"}},"website":{"type":"string"}}},"CompanySize":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]},"CompanyType":{"type":"string","enum":["private","public","nonprofit","government","educational","public_subsidiary"]},"CompanyVendorgraphics":{"type":"object","properties":{"aggkCompanyId":{"type":"integer","format":"int64"},"productsOffered":{"type":"array","items":{"$ref":"#/components/schemas/ProductOffered"}},"productsUsed":{"type":"array","items":{"$ref":"#/components/schemas/ProductUsed"}},"servicesOffered":{"type":"array","items":{"$ref":"#/components/schemas/ServiceOffered"}}}},"CompanyVendorgraphicsEnrichmentRequest":{"type":"object","description":"Company vendorgraphics request","properties":{"companyId":{"type":"integer","format":"int64","description":"The AggKnowledge company ID.","example":590654273},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."}}},"CompanyVendorgraphicsEnrichmentResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CompanyVendorgraphics"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"Competitor":{"type":"object","properties":{"companyId":{"type":"integer","format":"int64","description":"Company ID","example":44510632},"competitiveDescription":{"type":"string","description":"Brief description of the competitor","example":"Patterson Companies is a medical supplies company that operates in the business of veterinary and dental products, competing with Henry Schein in the dental and veterinary supply markets."},"competitorName":{"type":"string","description":"Competitor Name","example":"patterson dental"}}},"CompleteCompany":{"type":"object","description":"Complete company details including competitors and ultimate parent.","properties":{"addressLine1":{"type":"string","description":"Company address line 1","example":"100 wall st"},"addressLine2":{"type":"string","description":"Company address line 2","example":"suite 100"},"city":{"type":"string","description":"City or metro area","example":"melville"},"companyType":{"$ref":"#/components/schemas/CompanyType","description":"Type of company","example":"public"},"competitors":{"type":"array","items":{"$ref":"#/components/schemas/Competitor"}},"country":{"type":"string","description":"Country","example":"united states"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"],"example":"US"},"description":{"type":"string","description":"Brief description of the company","example":"Henry Schein is a leading distributor of dental and medical supplies, founded in 1839. They offer a wide range of products including dental equipment, orthodontic devices, medical instruments, and pharmaceuticals. Their services include practice management solutions, equipment financing, and repair services to support healthcare professionals in managing their practices efficiently."},"displayName":{"type":"string","description":"Company display name","example":"Henry Schein"},"employeeCountActual":{"type":"integer","format":"int32","description":"Actual number of employees","example":12474},"employeeCountRange":{"$ref":"#/components/schemas/CompanySize","description":"Bucketed number of employees","example":"10001+"},"fundingRoundCount":{"type":"integer","format":"int32","description":"Number of funding rounds the company has participated in","example":3},"fundingTotal":{"type":"string","description":"Total amount of funding raised and publicly disclosed, in USD","example":"1000000000.00"},"id":{"type":"integer","format":"int64","description":"Company ID","example":65731533},"industry":{"$ref":"#/components/schemas/Industry","description":"Primary industry","example":"medical devices"},"isDescriptionReviewedByHuman":{"type":"boolean","description":"Whether the description has been reviewed by a human","example":true},"isStructuredEntity":{"type":"boolean","description":"Whether this entity could be matched to a known company","example":true},"latestFundingAmount":{"type":"string","description":"Amount of latest funding round, if known","example":"250000000.00"},"latestFundingDate":{"type":"string","description":"Latest funding date","example":"2025-01-29"},"latestFundingStage":{"$ref":"#/components/schemas/FundingStage","description":"Stage of the latest funding round","example":"post_ipo_equity"},"linkedinId":{"type":"integer","format":"int64","description":"Company LinkedIn ID","example":93061732},"linkedinUrl":{"type":"string","description":"Normalized company LinkedIn URL","example":"linkedin.com/company/henry-schein"},"name":{"type":"string","description":"Normalized company name","example":"henry schein"},"pdlCompanyId":{"type":"string","description":"PDL company ID","example":"CBczqSDnKU3LGFyDe3JeoA9IhxYi"},"postalCode":{"type":"string","description":"Postal code","example":"11747"},"primaryExchange":{"type":"string","description":"Primary stock exchange","example":"xnas"},"primaryTicker":{"type":"string","description":"Primary stock ticker","example":"HSIC"},"productsAndServices":{"type":"array","deprecated":true,"items":{"$ref":"#/components/schemas/Product"}},"revenueRangeInferred":{"$ref":"#/components/schemas/RevenueRange","description":"Inferred revenue range","example":"$10B+"},"stateOrProvince":{"type":"string","description":"State or province","example":"new york"},"technographics":{"type":"array","deprecated":true,"items":{"$ref":"#/components/schemas/Technographic"}},"ultimateParent":{"$ref":"#/components/schemas/UltimateParentCompany"},"wasDescriptionRejected":{"type":"boolean","description":"Whether a description was previously generated for this company but did not pass quality screening.","example":false},"website":{"type":"string","description":"Normalized company website","example":"henryschein.com"},"willDescriptionBeGenerated":{"type":"boolean","description":"If description is null, whether a description will be generated. If description is not null, this will be false.","example":true}}},"ContactDataUsage":{"type":"object","properties":{"consumed":{"type":"number"},"purchased":{"type":"number"},"usage":{"$ref":"#/components/schemas/ContactDataUsageBreakdown"}}},"ContactDataUsageBreakdown":{"type":"object","properties":{"averageDailyUsageLast30Days":{"type":"number"},"last1Day":{"type":"number"},"last30Days":{"type":"number"},"last7Days":{"type":"number"}}},"CurrentCompany":{"type":"object","description":"A current company where a person works","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge Company ID","example":123456789},"companyType":{"type":"string","description":"Company type","enum":["private","public","nonprofit","government","educational","public_subsidiary"],"example":"current"},"currentStartDateAtCompany":{"type":"string","description":"Start date of the person's current stint at the company","example":"2022-01"},"name":{"type":"string","description":"Company name","example":"AggKnowledge"},"originalStartDateAtCompany":{"type":"string","description":"Start date of the person's earliest stint at the company","example":"2020-06"},"totalStintsAtCompany":{"type":"integer","format":"int32","description":"Total number of stints the person has had at the company","example":2}}},"CurrentPosition":{"type":"object","description":"A current position where a person works","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge Company ID","example":123456789},"companyType":{"type":"string","description":"Company type","enum":["private","public","nonprofit","government","educational","public_subsidiary"],"example":"current"},"currentStartDateAtCompany":{"type":"string","description":"Start date of the person's current stint at the company","example":"2022-01"},"jobTitle":{"type":"string","description":"Job title","example":"Software Engineer"},"name":{"type":"string","description":"Company name","example":"AggKnowledge"},"originalStartDateAtCompany":{"type":"string","description":"Start date of the person's earliest stint at the company","example":"2020-06"},"totalStintsAtCompany":{"type":"integer","format":"int32","description":"Total number of stints the person has had at the company","example":2}}},"CustomerAndUsage":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/LiteCompany"},"usage":{"type":"array","description":"List of usage objects, one per product the company uses","items":{"$ref":"#/components/schemas/CustomerUsage"}}}},"CustomerOfProduct":{"type":"object","properties":{"customers":{"type":"array","items":{"$ref":"#/components/schemas/CustomerAndUsage"}},"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"}}}},"CustomerUsage":{"type":"object","properties":{"firstObservation":{"type":"string","format":"date"},"lastObservation":{"type":"string","format":"date"},"usageSignalsAllTime":{"$ref":"#/components/schemas/ProductUsageSignal"},"usageSignalsByTimePeriod":{"type":"array","items":{"$ref":"#/components/schemas/ProductUsageSignal"}}}},"DateRangeFilter":{"type":"object","description":"Range filter with gte/lte date values","properties":{"gte":{"type":"string","description":"Greater than or equal to date (YYYY, YYYY-MM, or YYYY-MM-DD)"},"lte":{"type":"string","description":"Less than or equal to date (YYYY, YYYY-MM, or YYYY-MM-DD)"}}},"DiscoverCountResponse":{"type":"object","description":"Response containing the count of matching results","properties":{"count":{"type":"integer","format":"int64","description":"Number of matching persons for the given search criteria"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"DiscoverPersonSearchRequest":{"type":"object","description":"Person discover request","properties":{"aggkCompanyId":{"type":"array","description":"AggKnowledge Company IDs to restrict search to specific companies","items":{"type":"string"}},"aggkProductId":{"type":"array","description":"AggKnowledge Product IDs","example":[123456,789012],"items":{"type":"integer","format":"int64"}},"categoryId":{"type":"array","description":"Category IDs","items":{"type":"integer","format":"int64"}},"companyType":{"type":"array","description":"Company type","items":{"type":"string"}},"country":{"type":"string","description":"Company country"},"cursor":{"type":"string","description":"Pagination cursor from previous response for fetching next page of results"},"earliestCurrentStartDateAtCompany":{"type":"string","description":"Earliest current stint start date at the company (YYYY, YYYY-MM, or YYYY-MM-DD)"},"earliestEndDate":{"type":"string","description":"Earliest end date for work experiences (YYYY, YYYY-MM, or YYYY-MM-DD)"},"earliestOriginalStartDateAtCompany":{"type":"string","description":"Earliest original start date at the company (YYYY, YYYY-MM, or YYYY-MM-DD)"},"earliestStartDate":{"type":"string","description":"Earliest start date for work experiences (YYYY, YYYY-MM, or YYYY-MM-DD)"},"employeeCountRange":{"type":"array","description":"Employee count ranges","items":{"type":"string"}},"fundingRoundCount":{"type":"object","additionalProperties":{"type":"integer","format":"int32"},"description":"Funding round count range"},"fundingTotal":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"Total funding range"},"grouping":{"$ref":"#/components/schemas/Grouping","description":"Result diversity controls"},"industry":{"type":"array","description":"Industry categories","items":{"type":"string"}},"jobTitle":{"type":"array","description":"Job titles. Bounded by the total number of words rather than by the number of values, so one long title costs as much as several short ones; a filter too large to evaluate is rejected with a 400","items":{"type":"string"}},"latestCurrentStartDateAtCompany":{"type":"string","description":"Latest current stint start date at the company (YYYY, YYYY-MM, or YYYY-MM-DD)"},"latestEndDate":{"type":"string","description":"Latest end date for work experiences (YYYY, YYYY-MM, or YYYY-MM-DD)"},"latestFundingAmount":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"Latest funding amount range"},"latestFundingDate":{"type":"object","additionalProperties":{"type":"string","format":"date"},"description":"Latest funding date range"},"latestFundingStage":{"type":"array","description":"Latest funding stage","items":{"type":"string"}},"latestOriginalStartDateAtCompany":{"type":"string","description":"Latest original start date at the company (YYYY, YYYY-MM, or YYYY-MM-DD)"},"latestStartDate":{"type":"string","description":"Latest start date for work experiences (YYYY, YYYY-MM, or YYYY-MM-DD)"},"limit":{"type":"integer","format":"int32","description":"Maximum number of results to return per page (default: 1000, max: 1000)","example":100},"locality":{"type":"string","description":"Company locality"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."},"personCountry":{"type":"string","description":"Person country"},"personFilter":{"type":"string","description":"Person employment filter","enum":["CURRENT","PAST_NOT_CURRENT"]},"personLocality":{"type":"string","description":"Person locality (city)"},"personRegion":{"type":"string","description":"Person region (state)"},"primaryExchange":{"type":"array","description":"Primary exchanges","items":{"type":"string"}},"primaryTicker":{"type":"array","description":"Primary ticker symbols","items":{"type":"string"}},"region":{"type":"string","description":"Company region"},"revenueRangeInferred":{"type":"array","description":"Revenue range inferred","items":{"type":"string"}},"role":{"type":"array","description":"Roles","items":{"type":"string"}},"seniority":{"type":"array","description":"Seniority levels","items":{"type":"string"}},"subrole":{"type":"array","description":"Sub-roles","items":{"type":"string"}}}},"DiscoverPersonSearchResponse":{"type":"object","properties":{"data":{"type":"array","description":"List of persons matching the search criteria","items":{"$ref":"#/components/schemas/PersonLite"}},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"nextCursor":{"type":"string","description":"Pagination cursor for fetching the next page of results"},"warnings":{"type":"array","description":"Non-fatal warnings about the search, such as filter degradation due to scale","items":{"type":"string"}}}},"DiscoverSidekickRequest":{"type":"object","description":"Sidekick request with natural language query","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."},"query":{"type":"string","description":"Natural language description of the people you are looking for","example":"Senior engineers at fintech companies in New York"}}},"DiscoverTranslationResponse":{"type":"object","description":"An advanced discover request rewritten as its v3 equivalent","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"request":{"description":"The v3 discover request equivalent to the submitted request, ready to POST to /v3/{environment}/discover/people. The cursor becomes pagination.page and the limit pagination.size"},"warnings":{"type":"array","description":"Reasons /v3/{environment}/discover/people would reject the translated request, one per offending value. Empty when it can be sent as-is","items":{"$ref":"#/components/schemas/DiscoverValidationWarning"}}}},"DiscoverValidationResponse":{"type":"object","description":"Response containing the results of request validation","properties":{"isValid":{"type":"boolean","description":"Whether all provided values are valid (true when warnings is empty)"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"warnings":{"type":"array","description":"List of validation warnings, one per invalid field value","items":{"$ref":"#/components/schemas/DiscoverValidationWarning"}}}},"DiscoverValidationWarning":{"type":"object","description":"A validation warning for an invalid field value","properties":{"code":{"type":"string","description":"Machine-readable warning code (e.g. 'INVALID_ENUM_VALUE', 'INVALID_DATE_FORMAT', 'MUTUALLY_EXCLUSIVE_FIELDS')"},"field":{"type":"string","description":"The field name that contains the invalid value (e.g. 'role', 'industry')"},"message":{"type":"string","description":"Human-readable description of the validation problem"},"validValues":{"type":"array","description":"Valid values accepted for this field, when applicable","items":{"type":"string"}},"value":{"type":"string","description":"The invalid value that was provided. Absent for warnings that are not tied to a specific value (e.g. MUTUALLY_EXCLUSIVE_FIELDS)."}}},"ExactMatchFilterCompanyListing":{"type":"object","description":"Filter with or/not semantics","properties":{"not":{"type":"array","description":"Values that must NOT match (hard exclusion)","items":{"$ref":"#/components/schemas/CompanyListing"}},"or":{"type":"array","description":"Values where at least ONE must match (hard requirement)","items":{"$ref":"#/components/schemas/CompanyListing"}}}},"ExactMatchFilterString":{"type":"object","description":"Filter with or/not semantics","properties":{"not":{"type":"array","description":"Values that must NOT match (hard exclusion)","items":{"type":"string"}},"or":{"type":"array","description":"Values where at least ONE must match (hard requirement)","items":{"type":"string"}}}},"FieldFilterLong":{"type":"object","description":"Filter with and/or/not semantics","properties":{"and":{"type":"array","description":"Values that must ALL be present (AND logic)","items":{"type":"integer","format":"int64"}},"not":{"type":"array","description":"Values that must NOT be present (NOT logic)","items":{"type":"integer","format":"int64"}},"or":{"type":"array","description":"Values where at least ONE must be present (OR logic)","items":{"type":"integer","format":"int64"}}}},"FieldFilterString":{"type":"object","description":"Filter with and/or/not semantics","properties":{"and":{"type":"array","description":"Values that must ALL be present (AND logic)","items":{"type":"string"}},"not":{"type":"array","description":"Values that must NOT be present (NOT logic)","items":{"type":"string"}},"or":{"type":"array","description":"Values where at least ONE must be present (OR logic)","items":{"type":"string"}}}},"FundingStage":{"type":"string","description":"Stage of funding for a company","enum":["angel","convertible_note","corporate_round","debt_financing","equity_crowdfunding","funding_round","grant","initial_coin_offering","non_equity_assistance","post_ipo_debt","post_ipo_equity","post_ipo_secondary","pre_seed","private_equity","product_crowdfunding","secondary_market","seed","series_a","series_b","series_c","series_d","series_e","series_f","series_g","series_h","series_i","series_j","series_unknown","undisclosed"]},"GenericProblem":{"type":"object","properties":{"correlationId":{"type":"string","description":"The correlation ID for this request. Provide this ID when contacting support."},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem."},"status":{"type":"integer","format":"int32","description":"The HTTP status code generated by the origin server for this occurrence of the problem."},"title":{"type":"string","description":"A brief title for the problem."}}},"Grouping":{"type":"object","description":"Controls result diversity by grouping dimension","properties":{"maxResultsPerCompany":{"type":"integer","format":"int32","description":"Maximum number of results to return per distinct company, at most 100. Above 1, one page may span at most 125 companies, so limit can be at most 125 times this value; leaving limit out picks one that fits","example":5}}},"Industry":{"type":"string","enum":["accounting","airlines/aviation","alternative dispute resolution","alternative medicine","animation","apparel & fashion","architecture & planning","arts and crafts","automotive","aviation & aerospace","banking","biotechnology","broadcast media","building materials","business supplies and equipment","capital markets","chemicals","civic & social organization","civil engineering","commercial real estate","computer & network security","computer games","computer hardware","computer networking","computer software","construction","consumer electronics","consumer goods","consumer services","cosmetics","dairy","defense & space","design","e-learning","education management","electrical/electronic manufacturing","entertainment","environmental services","events services","executive office","facilities services","farming","financial services","fine art","fishery","food & beverages","food production","fund-raising","furniture","gambling & casinos","glass, ceramics & concrete","government administration","government relations","graphic design","health, wellness and fitness","higher education","hospital & health care","hospitality","human resources","import and export","individual & family services","industrial automation","information services","information technology and services","insurance","international affairs","international trade and development","internet","investment banking","investment management","judiciary","law enforcement","law practice","legal services","legislative office","leisure, travel & tourism","libraries","logistics and supply chain","luxury goods & jewelry","machinery","management consulting","maritime","market research","marketing and advertising","mechanical or industrial engineering","media production","medical devices","medical practice","mental health care","military","mining & metals","motion pictures and film","museums and institutions","music","nanotechnology","newspapers","non-profit organization management","oil & energy","online media","outsourcing/offshoring","package/freight delivery","packaging and containers","paper & forest products","performing arts","pharmaceuticals","philanthropy","photography","plastics","political organization","primary/secondary education","printing","professional training & coaching","program development","public policy","public relations and communications","public safety","publishing","railroad manufacture","ranching","real estate","recreational facilities and services","religious institutions","renewables & environment","research","restaurants","retail","security and investigations","semiconductors","shipbuilding","sporting goods","sports","staffing and recruiting","supermarkets","telecommunications","textiles","think tanks","tobacco","translation and localization","transportation/trucking/railroad","utilities","venture capital & private equity","veterinary","warehousing","wholesale","wine and spirits","wireless","writing and editing"]},"IntegerRangeFilter":{"type":"object","description":"Range filter with min/max integer values","properties":{"max":{"type":"integer","format":"int32","description":"Maximum value (inclusive)"},"min":{"type":"integer","format":"int32","description":"Minimum value (inclusive)"}}},"JobClass":{"type":"string","enum":["general_and_administrative","research_and_development","sales_and_marketing","services","unemployed"]},"JobRoleV1":{"type":"integer","format":"int32","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"example":"operations"},"JobRoleV2":{"type":"string","enum":["advisory","analyst","creative","education","engineering","finance","fulfillment","health","hospitality","human_resources","legal","manufacturing","marketing","operations","partnerships","product","professional_service","public_service","research","sales","sales_engineering","support","trade","unemployed"],"example":"operations"},"JobSeniority":{"type":"string","enum":["cxo","director","entry","manager","owner","partner","senior","training","unpaid","vp"]},"JobSubRoleV1":{"type":"integer","format":"int32","enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57],"example":"data"},"JobSubRoleV2":{"type":"string","enum":["academic","account_executive","account_management","accounting","accounting_services","administrative","advisor","agriculture","aides","architecture","artist","board_member","bookkeeping","brand","building_and_grounds","business_analyst","business_development","chemical","compliance","construction","consulting","content","corporate_development","curation","customer_success","customer_support","data_analyst","data_engineering","data_science","dental","devops","doctor","electric","electrical","emergency_services","entertainment","executive","fashion","financial","fitness","fraud","graphic_design","growth","hair_stylist","hardware","health_and_safety","human_resources","implementation","industrial","information_technology","insurance","investment_banking","investor","investor_relations","journalism","judicial","legal","legal_services","logistics","machinist","marketing_design","marketing_services","mechanic","mechanical","military","network","nursing","partnerships","pharmacy","planning_and_analysis","plumbing","political","primary_and_secondary","procurement","product_design","product_management","professor","project_management","protective_service","qa_engineering","quality_assurance","realtor","recruiting","restaurants","retail","revenue_operations","risk","sales_development","scientific","security","social_service","software","solutions_engineer","strategy","student","talent_analytics","therapy","tour_and_travel","training","translation","transport","unemployed","veterinarian","warehouse","web","wellness"],"example":"executive"},"JobTitleNormalizationRequest":{"type":"object","description":"Job title normalization request","properties":{"jobTitle":{"type":"string","description":"Job title to normalize","example":"Sr. Software Engineer"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10}},"required":["jobTitle"]},"JobTitleNormalizationResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/JobTitleNormalizationResult","description":"Job title normalization result"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"inputParameters":{"$ref":"#/components/schemas/JobTitleNormalizationRequest","description":"Caller-supplied inputs echoed back in the response"},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"JobTitleNormalizationResult":{"type":"object","properties":{"normalizedJobTitle":{"type":"string","description":"Normalized job title","example":"senior software engineer"}}},"JsonNode":{"type":"object","properties":{"array":{"type":"boolean"},"bigDecimal":{"type":"boolean"},"bigInteger":{"type":"boolean"},"binary":{"type":"boolean"},"boolean":{"type":"boolean"},"container":{"type":"boolean"},"double":{"type":"boolean"},"embeddedValue":{"type":"boolean"},"empty":{"type":"boolean"},"float":{"type":"boolean"},"floatingPointNumber":{"type":"boolean"},"int":{"type":"boolean"},"integralNumber":{"type":"boolean"},"long":{"type":"boolean"},"missingNode":{"type":"boolean"},"nodeType":{"type":"string","enum":["ARRAY","BINARY","BOOLEAN","MISSING","NULL","NUMBER","OBJECT","POJO","STRING"]},"null":{"type":"boolean"},"number":{"type":"boolean"},"object":{"type":"boolean"},"pojo":{"type":"boolean"},"short":{"type":"boolean"},"string":{"type":"boolean"},"textual":{"type":"boolean","deprecated":true},"valueNode":{"type":"boolean"}}},"LinkedinUrlNormalizationRequest":{"type":"object","description":"LinkedIn URL normalization request","properties":{"linkedinUrl":{"type":"string","description":"LinkedIn URL to normalize","example":"https://www.linkedin.com/in/john-doe"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10}},"required":["linkedinUrl"]},"LinkedinUrlNormalizationResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LinkedinUrlNormalizationResult","description":"Normalized LinkedIn URL result"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"inputParameters":{"$ref":"#/components/schemas/LinkedinUrlNormalizationRequest","description":"Caller-supplied inputs echoed back in the response"},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"LinkedinUrlNormalizationResult":{"type":"object","properties":{"normalizedLinkedinUrl":{"type":"string","description":"Normalized LinkedIn URL","example":"linkedin.com/in/john-doe"}}},"LinkedinUsernameExtractionRequest":{"type":"object","description":"LinkedIn username extraction request","properties":{"linkedinUrl":{"type":"string","description":"LinkedIn URL to extract username from","example":"https://www.linkedin.com/in/john-doe"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10}},"required":["linkedinUrl"]},"LinkedinUsernameExtractionResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LinkedinUsernameExtractionResult","description":"LinkedIn username extraction result"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"inputParameters":{"$ref":"#/components/schemas/LinkedinUsernameExtractionRequest","description":"Caller-supplied inputs echoed back in the response"},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"LinkedinUsernameExtractionResult":{"type":"object","properties":{"linkedinUsername":{"type":"string","description":"Extracted LinkedIn username","example":"john-doe"}}},"LiteCompany":{"type":"object","description":"A lightweight representation of a company primarily used for search results.","properties":{"aggkCompanyId":{"type":"integer","format":"int64"},"displayName":{"type":"string"},"name":{"type":"string"},"pdlCompanyId":{"type":"string"}}},"LongRangeFilter":{"type":"object","description":"Range filter with min/max long values","properties":{"max":{"type":"integer","format":"int64","description":"Maximum value (inclusive)"},"min":{"type":"integer","format":"int64","description":"Minimum value (inclusive)"}}},"MatchingCompany":{"type":"object","description":"Company attributes for the matched work experience","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge Company ID","example":47934076},"currentStartDateAtCompany":{"type":"string","description":"Start date of the person's current stint at the company","example":"2022-01"},"endDate":{"type":"string","description":"End date of the work experience","example":"2023-11"},"jobTitle":{"type":"string","description":"Job title at the company","example":"business analyst & pmo - emea chief operations officer office"},"name":{"type":"string","description":"Company name","example":"Salesforce"},"originalStartDateAtCompany":{"type":"string","description":"Start date of the person's earliest stint at the company","example":"2020-06"},"role":{"type":"string","description":"Person role at the company","example":"analyst"},"seniority":{"type":"string","description":"Person seniority at the company","example":"cxo"},"startDate":{"type":"string","description":"Start date of the work experience","example":"2023-02"},"subrole":{"type":"string","description":"Person subrole at the company","example":"data_analyst"},"totalStintsAtCompany":{"type":"integer","format":"int32","description":"Total number of stints the person has had at the company","example":2}}},"MatchingProduct":{"type":"object","description":"Product attributes for the matched work experience","properties":{"aggkProductId":{"type":"integer","format":"int64","description":"AggKnowledge Product ID","example":987654321},"detectionFirstSeenAt":{"type":"string","format":"date","description":"Earliest date the product was detected at the company"},"detectionLastSeenAt":{"type":"string","format":"date","description":"Most recent date the product was detected at the company"},"productName":{"type":"string","description":"Product name","example":"Ordergroove"}}},"Person":{"type":"object","properties":{"bio":{"type":"string","description":"Person biography"},"dateLastUpdated":{"type":"string","format":"date","description":"Date the person's data was last refreshed","example":"2026-07-05"},"firstName":{"type":"string","description":"Person first name","example":"daniel"},"id":{"type":"integer","format":"int64","description":"AggKnowledge Person ID","example":590654273},"lastName":{"type":"string","description":"Person last name","example":"entrup"},"linkedinUrl":{"type":"string","description":"Normalized Linkedin URL","example":"linkedin.com/in/danielentrup"},"linkedinUsername":{"type":"string","description":"Normalized Linkedin username","example":"danielentrup"},"locationCity":{"type":"string","description":"Location city","example":"new york"},"locationCountry":{"type":"string","description":"Location country","example":"united states"},"locationMetro":{"type":"string","description":"Location metro area","example":"new york, new york"},"locationPostalCode":{"type":"string","description":"Location postal code","example":"10001"},"locationStateOrProvince":{"type":"string","description":"Location state or province","example":"new york"},"middleName":{"type":"string","description":"Person middle name"},"primaryWorkExperienceId":{"type":"integer","format":"int64","description":"The person's primary work experience ID. If present, this ID will be in the work experience list. If not present, we were unable to determine which work experience should be considered primary.","example":935242012},"tags":{"type":"array","deprecated":true,"description":"List of tags associated with the person","items":{"type":"object","additionalProperties":{}}},"workExperience":{"type":"array","items":{"$ref":"#/components/schemas/WorkExperience"}}}},"PersonBulkEnrichmentBatchDto":{"type":"object","properties":{"correlationId":{"type":"string","description":"Correlation ID"},"createdAt":{"type":"string","format":"date-time","description":"Created at timestamp"},"id":{"type":"string","description":"Batch ID"},"isPurged":{"type":"boolean","description":"Whether the batch has been purged"},"updatedAt":{"type":"string","format":"date-time","description":"Updated at timestamp"}}},"PersonBulkEnrichmentCreateResponse":{"type":"object","properties":{"batchId":{"type":"string","description":"The batch ID of the bulk enrichment request. Use this to check the status of the request and fetch the data."}}},"PersonBulkEnrichmentItem":{"type":"object","properties":{"itemId":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"status":{"$ref":"#/components/schemas/BulkEnrichmentItemStatus","description":"Enrichment item status","example":"pending"}}},"PersonBulkEnrichmentItemsResponse":{"type":"object","description":"Response containing bulk enrichment items with pagination","properties":{"cursor":{"type":"string","description":"Cursor for pagination. Use this value as the cursor parameter in the next request to get more results."},"items":{"type":"array","description":"List of enriched person data","items":{"$ref":"#/components/schemas/PersonEnrichmentResponse"}}}},"PersonBulkEnrichmentListResponse":{"type":"object","properties":{"batches":{"type":"array","description":"List of person bulk enrichment batches","items":{"$ref":"#/components/schemas/PersonBulkEnrichmentBatchDto"}}}},"PersonBulkEnrichmentStatusResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PersonBulkEnrichmentItem"}},"status":{"$ref":"#/components/schemas/BulkEnrichmentBatchStatus","description":"Enrichment item status","example":"pending"}}},"PersonContactDataBatchRequest":{"type":"object","description":"Contact info request","properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/PersonContactDataRequest"}}}},"PersonContactDataBatchResponse":{"type":"object","properties":{"completedItems":{"type":"integer","format":"int32","description":"Number of completed items","example":45},"failedItems":{"type":"integer","format":"int32","description":"Number of failed items","example":5},"id":{"type":"string","description":"Batch UUID","example":"2db5ea61-1752-42cf-8ea1-ab1da060cd0a"},"items":{"type":"array","description":"List of contact data items","items":{"$ref":"#/components/schemas/PersonContactDataItemSummary"}},"status":{"type":"string","description":"Batch status, from how many items have finished","enum":["pending","processing","completed"],"example":"completed"},"totalItems":{"type":"integer","format":"int32","description":"Total number of items in the batch","example":50}}},"PersonContactDataItemSummary":{"type":"object","properties":{"aggkPersonId":{"type":"integer","format":"int64","description":"Aggk person ID","example":123},"emails":{"$ref":"#/components/schemas/JsonNode","description":"List of email addresses found"},"enrichPersonalEmail":{"type":"boolean","description":"Whether personal email was requested","example":false},"enrichPhone":{"type":"boolean","description":"Whether phone was requested","example":true},"enrichWorkEmail":{"type":"boolean","description":"Whether work email was requested","example":true},"metadata":{"$ref":"#/components/schemas/JsonNode","description":"Caller-supplied metadata echoed back from the request."},"mostProbablePersonalEmail":{"type":"string","description":"Most probable personal email","example":"john.doe@gmail.com"},"mostProbablePersonalEmailStatus":{"type":"string","description":"Most probable personal email status","enum":["DELIVERABLE","HIGH_PROBABILITY","CATCH_ALL","INVALID"],"example":"HIGH_PROBABILITY"},"mostProbablePhone":{"type":"string","description":"Most probable phone","example":"+1 555-1234"},"mostProbableWorkEmail":{"type":"string","description":"Most probable work email","example":"john.doe@example.com"},"mostProbableWorkEmailStatus":{"type":"string","description":"Most probable work email status","enum":["DELIVERABLE","HIGH_PROBABILITY","CATCH_ALL","INVALID"],"example":"HIGH_PROBABILITY"},"personalEmails":{"$ref":"#/components/schemas/JsonNode","description":"List of personal email addresses found"},"phones":{"$ref":"#/components/schemas/JsonNode","description":"List of phone numbers found"},"status":{"type":"string","description":"Item status. When the batch is submitted: \"completed\" when every requested field was already cached, otherwise \"processing\". When the batch is read back: \"completed\" when enrichment succeeded, \"failed\" when it finished without a result, and \"pending\" until then","enum":["processing","pending","completed","failed"],"example":"completed"}}},"PersonContactDataRequest":{"type":"object","properties":{"aggkPersonId":{"type":"integer","format":"int64"},"enrichPersonalEmail":{"type":"boolean"},"enrichPhone":{"type":"boolean"},"enrichWorkEmail":{"type":"boolean"},"healthcareSubject":{"type":"boolean"},"metadata":{"type":"object","additionalProperties":{"type":"string"}}}},"PersonContactDataResponse":{"type":"object","properties":{"batchId":{"type":"string","description":"Batch UUID for tracking the request","example":"2db5ea61-1752-42cf-8ea1-ab1da060cd0a"},"itemCount":{"type":"integer","format":"int32","description":"Number of items in the request","example":50},"message":{"type":"string","description":"Status message","example":"Contact info request accepted and processing"}}},"PersonEnrichmentProblem":{"type":"object","properties":{"correlationId":{"type":"string","description":"The correlation ID for this request. Provide this ID when contacting support."},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem."},"problems":{"type":"array","items":{"$ref":"#/components/schemas/PersonEnrichmentProblemDetail"}},"status":{"type":"integer","format":"int32","description":"The HTTP status code generated by the origin server for this occurrence of the problem."},"title":{"type":"string","description":"A brief title for the problem."}}},"PersonEnrichmentProblemDetail":{"type":"object","properties":{"problems":{"type":"object","additionalProperties":{"type":"string"},"description":"Type of problem encountered during enrichment"},"request":{"$ref":"#/components/schemas/PersonEnrichmentRequest"}}},"PersonEnrichmentProblems":{"type":"object","properties":{"linkedinProfileNotFound":{"type":"boolean","description":"Whether the profile was not found when scraping."},"transientScrapingVendorFailure":{"type":"boolean","description":"Whether a call to an upstream vendor failed during the request."}}},"PersonEnrichmentRequest":{"type":"object","properties":{"freshness":{"type":"string","description":"Controls whether to use cached data regardless of age. FRESH (default) re-scrapes stale profiles; CACHED returns stored data without a freshness check.","enum":["CACHED","FRESH"],"example":"FRESH"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10},"pdlId":{"type":"string","description":"The person's PDL ID."},"personId":{"type":"integer","format":"int64","description":"The AggKnowledge person ID.","example":590654273},"professionalSocialMediaUrl":{"type":"string","description":"LinkedIn URL of the person. Protocol and subdomain are optional, this value will be normalized server-side. Sales Nav and Recruiter URLs are allowed.","example":"https://www.linkedin.com/in/danielentrup/"}}},"PersonEnrichmentRequestParameters":{"type":"object","properties":{"freshness":{"type":"string","description":"Controls whether to use cached data regardless of age. FRESH (default) re-scrapes stale profiles; CACHED returns stored data without a freshness check.","enum":["CACHED","FRESH"],"example":"FRESH"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"pdlId":{"type":"string","description":"The person's PDL ID."},"personId":{"type":"integer","format":"int64","description":"The AggKnowledge person ID.","example":590654273},"professionalSocialMediaUrl":{"type":"string","description":"LinkedIn URL of the person. Protocol and subdomain are optional, this value will be normalized server-side. Sales Nav and Recruiter URLs are allowed.","example":"https://www.linkedin.com/in/danielentrup/"}}},"PersonEnrichmentResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Person","description":"The enriched person data, if the request was successful."},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"inputParameters":{"$ref":"#/components/schemas/PersonEnrichmentRequestParameters","description":"Caller-supplied inputs echoed back in the response"},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"problems":{"$ref":"#/components/schemas/PersonEnrichmentProblems","description":"If `hasProblems` is `true`, this field will describe which problems were encountered."}}},"PersonEnrichmentValidationResponse":{"type":"object","properties":{"hasSufficientIdentifiers":{"type":"boolean","description":"Whether the request has sufficient identifiers to proceed with enrichment"},"isLinkedinUrlValid":{"type":"boolean","description":"Whether any provided LinkedIn URL is valid"},"isValid":{"type":"boolean","description":"Whether the request is valid for enrichment"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."},"validationMessage":{"type":"string","description":"Description of any validation issues found"}}},"PersonFilter":{"type":"object","description":"Filters for person attributes","properties":{"aggkPersonId":{"$ref":"#/components/schemas/FieldFilterString","description":"AggKnowledge Person ID filter. Only 'not' is supported (to exclude specific persons from results); supplying 'or' or 'and' will result in an error. Maximum 1,000 values in 'not'."},"personCountry":{"$ref":"#/components/schemas/FieldFilterString","description":"Person's country"},"personLocality":{"$ref":"#/components/schemas/FieldFilterString","description":"Person's locality (city)"},"personRegion":{"$ref":"#/components/schemas/FieldFilterString","description":"Person's region (state)"}}},"PersonLite":{"type":"object","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge Company ID","example":123456789},"aggkProductId":{"type":"integer","format":"int64","description":"AggKnowledge Product ID","example":987654321},"company":{"type":"string","description":"Company name","example":"AggKnowledge"},"currentCompanies":{"type":"array","description":"List of current companies where the person works","items":{"$ref":"#/components/schemas/CurrentCompany"}},"currentStartDateAtCompany":{"type":"string","description":"Start date of the person's current stint at the matched company","example":"2022-01"},"endDate":{"type":"string","description":"End date of the matched work experience","example":"2023-11"},"firstName":{"type":"string","description":"Person first name","example":"daniel"},"id":{"type":"integer","format":"int64","description":"AggKnowledge Person ID","example":590654273},"jobTitle":{"type":"string","description":"Job title","example":"Software Engineer"},"lastName":{"type":"string","description":"Person last name","example":"entrup"},"linkedinUrl":{"type":"string","description":"Normalized Linkedin URL","example":"linkedin.com/in/danielentrup"},"matchingCompany":{"$ref":"#/components/schemas/MatchingCompany","description":"Company attributes for the matched work experience"},"matchingProduct":{"$ref":"#/components/schemas/MatchingProduct","description":"Product attributes for the matched work experience"},"originalStartDateAtCompany":{"type":"string","description":"Start date of the person's earliest stint at the matched company","example":"2020-06"},"personCountry":{"type":"string","description":"Person's country","example":"United States"},"personLocality":{"type":"string","description":"Person's locality (city)","example":"San Francisco"},"personRegion":{"type":"string","description":"Person's region (state)","example":"California"},"productName":{"type":"string","description":"Product name relevant to the search","example":"Ordergroove"},"role":{"type":"string","description":"Person role","example":"Engineering"},"seniority":{"type":"string","description":"Person seniority","example":"Senior"},"startDate":{"type":"string","description":"Start date of the matched work experience","example":"2023-02"},"subrole":{"type":"string","description":"Person subrole","example":"Backend"},"totalStintsAtCompany":{"type":"integer","format":"int32","description":"Total number of stints the person has had at the matched company","example":2}}},"PersonMatchExperience":{"type":"object","description":"A work experience that satisfied the match criteria","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID of the employer. Absent when the work experience could not be resolved to an AggKnowledge company.","example":44002816},"companyName":{"type":"string","description":"Employer name","example":"salesforce"},"jobTitle":{"type":"string","description":"Job title held at the company","example":"vice president, engineering"}}},"PersonMatchRequest":{"type":"object","description":"Person match request","properties":{"aggkCompanyIds":{"type":"array","description":"AggKnowledge company IDs of current or former employers of the person.","example":[12345,67890],"items":{"type":"integer","format":"int64"}},"companyDomains":{"type":"array","description":"Current or former employer domains of the person.","example":["henryschein.com","aggknowledge.ai"],"items":{"type":"string"}},"companyNames":{"type":"array","description":"Current or former employer names of the person; a person matches on any one of them. Each name is resolved to an AggKnowledge company, so typos, aliases and legal suffixes all match. Each name is also matched against the employer recorded on the work experience itself, which reaches employers we hold no company record for. At most 10 values.","example":["henry schein","aggknowledge"],"items":{"type":"string"}},"emailAddresses":{"type":"array","description":"Current or former email addresses of the person.","example":["dan@aggknowledge.ai","dentrup@henryschein.com"],"items":{"type":"string"}},"fullName":{"type":"string","description":"The person's full name. Either fullName or linkedinUrl must be provided. A name too long to evaluate is rejected with a 400.","example":"daniel entrup"},"jobTitles":{"type":"array","description":"Job titles held by the person; a person matches on any one of them. When combined with a company criterion, a single work experience must satisfy both. Bounded by the total number of words rather than by the number of titles, so one long title costs as much as several short ones; a list too large to evaluate is rejected with a 400.","example":["co-founder","chief technology officer"],"items":{"type":"string"}},"linkedinUrl":{"type":"string","description":"LinkedIn URL of the person. Either fullName or linkedinUrl must be provided.","example":"https://www.linkedin.com/in/danielentrup"},"locationCity":{"type":"string","description":"City where the person is located.","example":"san francisco"},"locationCountry":{"type":"string","description":"Country where the person is located.","example":"united states"},"locationStateOrProvince":{"type":"string","description":"State or province where the person is located.","example":"california"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10}}},"PersonMatchResponse":{"type":"object","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request.","maxProperties":10},"results":{"type":"array","description":"People matched to the request","items":{"$ref":"#/components/schemas/PersonMatchResult"}}}},"PersonMatchResult":{"type":"object","properties":{"aggkCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"fullName":{"type":"string","description":"The person's full name"},"hasEmail":{"type":"boolean"},"isEmailMatch":{"type":"boolean"},"linkedinUsername":{"type":"string","description":"The person's profile username"},"locationCity":{"type":"string"},"locationCountry":{"type":"string"},"locationCountryCode":{"type":"string","description":"ISO 3166-1 alpha-2 code of locationCountry","example":"US"},"locationStateOrProvince":{"type":"string"},"matchedCriteria":{"type":"array","description":"Which criteria this person matched on, strongest first — the evidence the score is computed from. A name criterion is always present. Employer and location criteria appear only when the request supplied them.","items":{"type":"string","enum":["email_on_file","social_url","phone_on_file","name_exact","name_normalized","name_partial","name_phonetic","name_fuzzy","location_region","location_country","employer_name","employer_name_current","employer_domain","employer_id","job_title_full","job_title_partial","name_college","reverse_email","npi","gmc","rpps","orcid"]}},"matchingExperiences":{"type":"array","description":"The work experiences that satisfied the match criteria. A person can match on more than one — a promotion, a second stint, or two of the supplied companies each produce an entry. Unlike previousEmployerNames, which covers every experience on file, this covers only the matching ones. Empty unless the request supplied a company or job title criterion: name, email, profile URL and location criteria hold on every experience the person has, so there is no subset to report.","items":{"$ref":"#/components/schemas/PersonMatchExperience"}},"personId":{"type":"integer","format":"int64"},"previousEmployerDomains":{"type":"array","items":{"type":"string"}},"previousEmployerNames":{"type":"array","items":{"type":"string"}},"score":{"type":"integer","format":"int32","description":"How strong this match is, from 0 to 100. Results are ordered by score descending, so callers can auto-accept the top hit or review the top N. The score is computed from the criteria in matchedCriteria rather than from text relevance, so it means the same thing across requests and is not affected by how common the supplied name is. It is an ordinal measure of corroborating evidence, not a probability, and the weights behind it will be re-tuned; a rule that must be stable should be written against matchedCriteria."}}},"PersonSearchRequest":{"type":"object","description":"Person search request","properties":{"currentOrPastEmailAddress":{"type":"string","description":"A current or former email address of the person.","example":"dan@aggknowledge.ai"},"currentOrPastEmployerDomain":{"type":"string","description":"A current or former employer domain of the person.","example":"henryschein.com"},"currentOrPastEmployerName":{"type":"string","description":"A current or former employer name of the person.","example":"henry schein"},"fullName":{"type":"string","description":"The person's full name. A name too long to evaluate is rejected with a 400.","example":"daniel entrup"}}},"PersonVendorgraphics":{"type":"object","properties":{"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductFamiliarToPerson"}}}},"PersonVendorgraphicsEnrichmentRequest":{"type":"object","description":"Person vendorgraphics request","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."},"personId":{"type":"integer","format":"int64","description":"The AggKnowledge person ID.","example":590654273}}},"PersonVendorgraphicsEnrichmentResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PersonVendorgraphics"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"Product":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"description":{"type":"string","description":"Product description, if available","example":"Spend smarter with the leading spend management platform built for companies like you. Get the financial agility you need by transforming how your business spends."},"id":{"type":"integer","format":"int64","description":"AggKnowledge product ID","example":60436221725246778},"name":{"type":"string","description":"Product name","example":"Coupa"},"vendorAggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID of the vendor offering this product, if applicable","example":42971468}}},"ProductCompanyDetection":{"type":"object","description":"Companies in the person's work experience that are known to use this product","properties":{"aggkCompanyId":{"type":"integer","format":"int64"},"firstSeenAt":{"type":"string","format":"date-time","description":"The first date when the product was observed being used at this company","example":"2023-01-01"},"lastSeenAt":{"type":"string","format":"date-time","description":"The most recent date when the product was observed being used at this company","example":"2023-12-31"}}},"ProductFamiliarToPerson":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"companyDetections":{"type":"array","items":{"$ref":"#/components/schemas/ProductCompanyDetection"}},"description":{"type":"string","description":"Product description, if available","example":"Spend smarter with the leading spend management platform built for companies like you. Get the financial agility you need by transforming how your business spends."},"id":{"type":"integer","format":"int64","description":"AggKnowledge product ID","example":60436221725246778},"name":{"type":"string","description":"Product name","example":"Coupa"},"vendorAggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID of the vendor offering this product, if applicable","example":42971468},"workExperienceAssociations":{"type":"array","items":{"$ref":"#/components/schemas/ProductWorkExperienceAssociation"}}}},"ProductListResponse":{"type":"object","description":"Response containing products with cursor-based pagination","properties":{"cursor":{"type":"string","description":"Cursor for pagination. Use this value as the cursor parameter in the next request to get more results."},"products":{"type":"array","description":"List of products","items":{"$ref":"#/components/schemas/Product"}}}},"ProductOffered":{"type":"object","description":"Products offered by this company","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"description":{"type":"string","description":"Product description, if available","example":"Spend smarter with the leading spend management platform built for companies like you. Get the financial agility you need by transforming how your business spends."},"id":{"type":"integer","format":"int64","description":"AggKnowledge product ID","example":60436221725246778},"name":{"type":"string","description":"Product name","example":"Coupa"},"vendorAggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID of the vendor offering this product, if applicable","example":42971468}}},"ProductUsageSignal":{"type":"object","properties":{"dnsDetectionCount":{"type":"integer","format":"int64","description":"The count of usage signals derived from DNS detections in the specified time period.","example":20},"jobOpeningCount":{"type":"integer","format":"int64","description":"The count of usage signals derived from job openings in the specified time period.","example":10},"reviewCount":{"type":"integer","format":"int64","description":"The count of usage signals derived from product reviews in the specified time period.","example":30},"timePeriod":{"type":"string","description":"The time bucket for the usage signal data.","enum":["all_time","last_6_months","last_12_months","last_18_months","last_24_months"],"example":"last_6_months"},"totalCount":{"type":"integer","format":"int64","description":"The total count of product usage signals in the specified time period.","example":100},"webDetectionCount":{"type":"integer","format":"int64","description":"The count of usage signals derived from web detections in the specified time period.","example":40}}},"ProductUsed":{"type":"object","description":"Products used by this company","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"description":{"type":"string","description":"Product description, if available","example":"Spend smarter with the leading spend management platform built for companies like you. Get the financial agility you need by transforming how your business spends."},"firstObservation":{"type":"string","format":"date","description":"The first date when the product was observed being used","example":"2023-01-01"},"id":{"type":"integer","format":"int64","description":"AggKnowledge product ID","example":60436221725246778},"lastObservation":{"type":"string","format":"date","description":"The most recent date when the product was observed being used","example":"2023-12-31"},"name":{"type":"string","description":"Product name","example":"Coupa"},"usageSignalsAllTime":{"$ref":"#/components/schemas/ProductUsageSignal","description":"Usage signals for the product across all time periods, starting in 2012"},"usageSignalsByTimePeriod":{"type":"array","description":"Usage signals bucketed by time period","items":{"$ref":"#/components/schemas/ProductUsageSignal"}},"vendorAggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID of the vendor offering this product, if applicable","example":42971468}}},"ProductWithVendorDto":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"description":{"type":"string","description":"Product description, if available","example":"Spend smarter with the leading spend management platform built for companies like you. Get the financial agility you need by transforming how your business spends."},"id":{"type":"integer","format":"int64","description":"AggKnowledge product ID","example":60436221725246778},"name":{"type":"string","description":"Product name","example":"Coupa"},"vendorAggkCompanyId":{"type":"integer","format":"int64","description":"AggKnowledge company ID of the vendor offering this product, if applicable","example":42971468},"vendorName":{"type":"string"}}},"ProductWorkExperienceAssociation":{"type":"object","description":"Work experiences for this person that are likely relevant to this product","properties":{"aggkCompanyId":{"type":"integer","format":"int64","description":"ID of the company where the person worked","example":19154485},"aggkExperienceId":{"type":"integer","format":"int64","description":"ID of the work experience","example":-3563065019757962555,"externalDocs":{"description":"docs desc","url":"https://docs.aggknowledge.com/"}},"companyName":{"type":"string","description":"Name of company where the person worked","example":"HubSpot"},"endDate":{"type":"string","description":"End date of the work experience, null if role is current","example":"2023-12"},"role":{"$ref":"#/components/schemas/JobRoleV2","description":"Job role using V2 methodology"},"startDate":{"type":"string","description":"Start date of the work experience","example":"2023-01"},"subRole":{"$ref":"#/components/schemas/JobSubRoleV2","description":"Job subrole using V2 methodology"},"title":{"type":"string","description":"Normalized job title","example":"software engineer"}}},"RateLimitInfo":{"type":"object","properties":{"maxRequestsPerHour":{"type":"integer","format":"int64"},"maxRequestsPerSecond":{"type":"integer","format":"int64"},"tier":{"type":"integer","format":"int32"}}},"RateLimitIntrospectionResponse":{"type":"object","properties":{"rateLimits":{"type":"array","items":{"$ref":"#/components/schemas/RateLimitInfo"}}}},"RevenueRange":{"type":"string","enum":["$0-$1M","$1M-$10M","$10M-$25M","$25M-$50M","$50M-$100M","$100M-$250M","$250M-$500M","$500M-$1B","$1B-$10B","$10B+"]},"Role":{"type":"object","properties":{"v1":{"$ref":"#/components/schemas/JobRoleV1","deprecated":true,"description":"Job role using V1 methodology (deprecated)"},"v2":{"$ref":"#/components/schemas/JobRoleV2","description":"Job role using V2 methodology"}}},"ServiceOffered":{"type":"object","description":"Services offered by this company","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"SubRole":{"type":"object","properties":{"v1":{"$ref":"#/components/schemas/JobSubRoleV1","deprecated":true,"description":"Job subrole using V1 methodology (deprecated)"},"v2":{"$ref":"#/components/schemas/JobSubRoleV2","description":"Job subrole using V2 methodology"}}},"Technographic":{"type":"object","deprecated":true,"properties":{"description":{"type":"string","description":"Brief description of the product"},"indications":{"$ref":"#/components/schemas/TechnographicIndication","description":"Indications of product usage"},"lastObservation":{"type":"string","format":"date","description":"Date of most recent observation"},"productId":{"type":"integer","format":"int64","description":"AggKnowledge Product ID"},"productName":{"type":"string","description":"Product Name"},"vendorId":{"type":"integer","format":"int64","description":"AggKnowledge Vendor ID"}}},"TechnographicIndication":{"type":"object","deprecated":true,"properties":{"jobOpeningsCount":{"type":"integer","format":"int32","description":"Count of job openings indicating usage of the product"},"reviewsCount":{"type":"integer","format":"int32","description":"Count of product reviews indicating usage of the product"},"webDetectionCount":{"type":"integer","format":"int32","description":"Count of web detections indicating usage of the product"}}},"UltimateParentCompany":{"type":"object","properties":{"addressLine1":{"type":"string","description":"Company address line 1","example":"100 wall st"},"addressLine2":{"type":"string","description":"Company address line 2","example":"suite 100"},"city":{"type":"string","description":"City or metro area","example":"melville"},"companyType":{"$ref":"#/components/schemas/CompanyType","description":"Type of company","example":"public"},"country":{"type":"string","description":"Country","example":"united states"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW"],"example":"US"},"description":{"type":"string","description":"Brief description of the company","example":"Henry Schein is a leading distributor of dental and medical supplies, founded in 1839. They offer a wide range of products including dental equipment, orthodontic devices, medical instruments, and pharmaceuticals. Their services include practice management solutions, equipment financing, and repair services to support healthcare professionals in managing their practices efficiently."},"displayName":{"type":"string","description":"Company display name","example":"Henry Schein"},"employeeCountActual":{"type":"integer","format":"int32","description":"Actual number of employees","example":12474},"employeeCountRange":{"$ref":"#/components/schemas/CompanySize","description":"Bucketed number of employees","example":"10001+"},"fundingRoundCount":{"type":"integer","format":"int32","description":"Number of funding rounds the company has participated in","example":3},"fundingTotal":{"type":"string","description":"Total amount of funding raised and publicly disclosed, in USD","example":"1000000000.00"},"id":{"type":"integer","format":"int64","description":"Company ID","example":65731533},"industry":{"$ref":"#/components/schemas/Industry","description":"Primary industry","example":"medical devices"},"isDescriptionReviewedByHuman":{"type":"boolean","description":"Whether the description has been reviewed by a human","example":true},"isStructuredEntity":{"type":"boolean","description":"Whether this entity could be matched to a known company","example":true},"latestFundingAmount":{"type":"string","description":"Amount of latest funding round, if known","example":"250000000.00"},"latestFundingDate":{"type":"string","description":"Latest funding date","example":"2025-01-29"},"latestFundingStage":{"$ref":"#/components/schemas/FundingStage","description":"Stage of the latest funding round","example":"post_ipo_equity"},"linkedinId":{"type":"integer","format":"int64","description":"Company LinkedIn ID","example":93061732},"linkedinUrl":{"type":"string","description":"Normalized company LinkedIn URL","example":"linkedin.com/company/henry-schein"},"name":{"type":"string","description":"Normalized company name","example":"henry schein"},"pdlCompanyId":{"type":"string","description":"PDL company ID","example":"CBczqSDnKU3LGFyDe3JeoA9IhxYi"},"postalCode":{"type":"string","description":"Postal code","example":"11747"},"primaryExchange":{"type":"string","description":"Primary stock exchange","example":"xnas"},"primaryTicker":{"type":"string","description":"Primary stock ticker","example":"HSIC"},"revenueRangeInferred":{"$ref":"#/components/schemas/RevenueRange","description":"Inferred revenue range","example":"$10B+"},"stateOrProvince":{"type":"string","description":"State or province","example":"new york"},"wasDescriptionRejected":{"type":"boolean","description":"Whether a description was previously generated for this company but did not pass quality screening.","example":false},"website":{"type":"string","description":"Normalized company website","example":"henryschein.com"},"willDescriptionBeGenerated":{"type":"boolean","description":"If description is null, whether a description will be generated. If description is not null, this will be false.","example":true}}},"UsageResponse":{"type":"object","properties":{"contactData":{"$ref":"#/components/schemas/ContactDataUsage"}}},"VendorgraphicsFilter":{"type":"object","description":"Filters for vendorgraphics index","properties":{"aggkProductId":{"$ref":"#/components/schemas/FieldFilterLong","description":"AggKnowledge Product ID filter"},"categoryId":{"$ref":"#/components/schemas/FieldFilterLong","description":"Category ID filter"},"detectionPeriodBuffer":{"type":"string","description":"Expands the detection window symmetrically in both directions when filterByDetectionPeriod is active. For example, SIX_MONTHS subtracts 180 days from first_seen_at and adds 180 days to last_seen_at.","enum":["SIX_MONTHS"]},"filterByDetectionPeriod":{"type":"boolean","description":"When true, restricts results to people whose tenure at a product-using company overlaps with the product's detection window (first_seen_at to last_seen_at). Only applies when a product filter is present. If the matched company count exceeds 1000, detection-period overlap is not enforced and results fall back to a plain company ID filter."}}},"VendorgraphicsSearchCategoryCustomersRequest":{"type":"object","description":"Customers of category search request","properties":{"categoryId":{"type":"integer","format":"int64","description":"The AggKnowledge category ID to search for customers.","example":123456},"cursor":{"type":"string","description":"Cursor for pagination. Use the cursor value from the previous response to get more results."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."}},"required":["categoryId"]},"VendorgraphicsSearchProductCustomersRequest":{"type":"object","description":"Customers of product search request","properties":{"cursor":{"type":"string","description":"Cursor for pagination. Use the cursor value from the previous response to get more results."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response."},"productId":{"type":"integer","format":"int64","description":"The AggKnowledge product ID to search for customers.","example":590654273}},"required":["productId"]},"VendorgraphicsSearchProductCustomersResponse":{"type":"object","properties":{"cursor":{"type":"string","description":"Cursor for the next page of results. Null if there are no more results."},"data":{"$ref":"#/components/schemas/CustomerOfProduct"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"VendorgraphicsSearchProductRequest":{"type":"object","description":"Product search request","properties":{"productName":{"type":"string"}}},"VendorgraphicsSearchProductResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductWithVendorDto"}}}},"WebsiteNormalizationRequest":{"type":"object","description":"Website normalization request","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional metadata to associate with the request. Will be returned in the response.","maxProperties":10},"website":{"type":"string","description":"Website URL to normalize","example":"https://www.company.com"}},"required":["website"]},"WebsiteNormalizationResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebsiteNormalizationResult","description":"Website normalization result"},"hasProblems":{"type":"boolean","description":"Whether we hit a problem answering the request: the profile or company wasn't found, or a data source failed or timed out. Data may be missing or incomplete; `problems`, where the response has it, says which."},"inputParameters":{"$ref":"#/components/schemas/WebsiteNormalizationRequest","description":"Caller-supplied inputs echoed back in the response"},"isRetryable":{"type":"boolean","description":"When `isSuccess` is `false`, whether sending the same input again could succeed. Always `true` when `isSuccess` is `true`."},"isSuccess":{"type":"boolean","description":"`true` when the request was answered with a result. `false` means no result was returned: check `isRetryable`, which is `true` when a data source failed or timed out and `false` when the input matched nothing."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Caller-supplied metadata echoed back from the request."}}},"WebsiteNormalizationResult":{"type":"object","properties":{"normalizedWebsite":{"type":"string","description":"Normalized website URL","example":"company.com"}}},"WorkExperience":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/CompleteCompany"},"description":{"type":"string","description":"Job description"},"endDate":{"type":"string","description":"End date","example":"2023-11","pattern":"^[0-9]{4}(-[0-9]{2})?$"},"id":{"type":"integer","format":"int64","description":"AggKnowledge Work Experience ID","example":862384084},"jobClass":{"$ref":"#/components/schemas/JobClass","description":"Class of the job","example":"general_and_administrative"},"locationName":{"type":"string","description":"Location of the work experience","example":"San Francisco, California"},"role":{"$ref":"#/components/schemas/Role"},"seniority":{"$ref":"#/components/schemas/JobSeniority","description":"Seniority level of the job","example":"director"},"startDate":{"type":"string","description":"Start date","example":"2023-02","pattern":"^[0-9]{4}(-[0-9]{2})?$"},"subrole":{"$ref":"#/components/schemas/SubRole"},"title":{"type":"string","description":"Normalized job title","example":"chief executive officer"},"titleRaw":{"type":"string","description":"Raw job title as originally provided","example":"ceo"}}},"WorkExperienceFilter":{"type":"object","description":"Filters for work experience index","properties":{"currentStartDateAtCompany":{"$ref":"#/components/schemas/DateRangeFilter","description":"Date range filter for when a person started their current stint at the company"},"endDate":{"$ref":"#/components/schemas/DateRangeFilter","description":"End date range filter for work experiences"},"jobTitle":{"$ref":"#/components/schemas/FieldFilterString","description":"Job title filter. Bounded by the total number of words across 'and', 'or' and 'not' rather than by the number of values, so one long title costs as much as several short ones; a filter too large to evaluate is rejected with a 400"},"originalStartDateAtCompany":{"$ref":"#/components/schemas/DateRangeFilter","description":"Date range filter for when a person originally started at the company"},"personFilter":{"type":"string","description":"Person employment filter (CURRENT or PAST_NOT_CURRENT)","enum":["CURRENT","PAST_NOT_CURRENT"]},"role":{"$ref":"#/components/schemas/FieldFilterString","description":"Person's role at the company"},"seniority":{"$ref":"#/components/schemas/FieldFilterString","description":"Person's seniority at the company"},"startDate":{"$ref":"#/components/schemas/DateRangeFilter","description":"Start date range filter for work experiences"},"subrole":{"$ref":"#/components/schemas/FieldFilterString","description":"Person's subrole at the company"}}}},"securitySchemes":{"api-key":{"in":"header","name":"x-api-key","type":"apiKey"}}},"x-tagGroups":[{"name":"Person","tags":["Person Synchronous","Person Asynchronous","Contact Info"]},{"name":"Discover","tags":["Discover Basic","Discover Advanced"]},{"name":"Vendorgraphics","tags":["Person Vendorgraphics","Company Vendorgraphics","Product Catalog"]}]}