import {z} from 'zod' export type SegmentationCondition = {attribute: 'about.businessType' | 'about.industries' | 'about.industry' | 'about.name' | 'about.totalEmployees' | 'about.yearFounded' | 'ai.search' | 'analytics.monthlyVisitors' | 'apps' | 'codes.naics' | 'codes.sic' | 'contacts' | 'domain.domain' | 'domain.tld' | 'finances.revenue' | 'finances.stockExchange' | 'locations.headquarters.city.code' | 'locations.headquarters.continent.code' | 'locations.headquarters.country.code' | 'locations.headquarters.county.code' | 'locations.headquarters.state.code' | 'meta.listIds' | 'meta.score' | 'meta.syncedAt' | 'socials' | 'socials.linkedin.id' | 'technologies.active' | 'technologies.categories' | 'urls', blockedOperator?: boolean | undefined, operator: 'and' | 'or', sign: 'equals' | 'exactEquals' | 'greater' | 'lower' | 'notEquals', values: Array}; export type GetApiV2CompaniesArgs = {actionId?: number | undefined, domainsToExclude?: string | undefined, linkedinToExclude?: string | undefined, page?: number | undefined, query?: Array | undefined, search?: string | undefined, searchFields?: (Array<'about.name' | 'domain.domain'>) | undefined, simplified?: boolean | undefined, size?: number | undefined, sortFields?: (Array<{key: 'about.businessType' | 'about.industries' | 'about.industry' | 'about.name' | 'about.totalEmployees' | 'about.yearFounded' | 'analytics.monthlyVisitors' | 'apps' | 'codes.naics' | 'codes.sic' | 'contacts' | 'domain.domain' | 'domain.tld' | 'finances.revenue' | 'locations.headquarters.city.code' | 'locations.headquarters.country.code' | 'locations.headquarters.county.code' | 'locations.headquarters.state.code' | 'meta.score' | 'meta.syncedAt' | 'socials' | 'technologies.active' | 'urls', missing?: ('_first' | '_last') | undefined, order: 'asc' | 'desc'}>) | undefined, sortKey?: ('about.businessType' | 'about.industries' | 'about.industry' | 'about.name' | 'about.totalEmployees' | 'about.yearFounded' | 'analytics.monthlyVisitors' | 'apps' | 'codes.naics' | 'codes.sic' | 'contacts' | 'domain.domain' | 'domain.tld' | 'finances.revenue' | 'locations.headquarters.city.code' | 'locations.headquarters.country.code' | 'locations.headquarters.county.code' | 'locations.headquarters.state.code' | 'meta.score' | 'meta.syncedAt' | 'socials' | 'technologies.active' | 'urls') | undefined, sortOrder?: ('asc' | 'desc') | undefined}; export type GetApiV2CompaniesOptions = {baseUrl?: string | undefined, apiKey?: string | undefined, fetch?: typeof fetch | undefined}; export const companyV2 = z.object({id: z.string().optional(), about: z.object({businessType: z.enum(["educational-institution", "government-agency", "nonprofit", "partnership", "privately-held", "public-company", "self-employed", "sole-proprietorship"]).optional(), industries: z.array(z.string()).optional(), industry: z.string().optional(), languages: z.array(z.string()).optional(), name: z.string().optional(), nameAlts: z.array(z.string()).optional(), nameLegal: z.string().optional(), totalEmployees: z.enum(["1-10", "10-50", "50-200", "200-500", "500-1k", "1k-5k", "5k-10k", "over-10k"]).optional(), totalEmployeesExact: z.number().optional(), yearEnded: z.number().optional(), yearFounded: z.number().optional(), yearFoundedDate: z.string().optional(), yearFoundedPlace: z.string().optional()}).optional(), analytics: z.object({lighthouse: z.object({accessibility: z.number().optional(), bestPractices: z.number().optional(), performance: z.number().optional(), seo: z.number().optional(), maxServerLatency: z.number().optional(), numFonts: z.number().optional(), numRequests: z.number().optional(), numScripts: z.number().optional(), numStylesheets: z.number().optional(), numTasks: z.number().optional(), cumulativeLayoutShift: z.object({count: z.number().optional(), score: z.number().optional()}).optional(), largestContentfulPaint: z.object({ms: z.number().optional(), score: z.number().optional()}).optional(), timeToInteractive: z.object({ms: z.number().optional(), score: z.number().optional()}).optional(), totalBlockingTime: z.object({ms: z.number().optional(), score: z.number().optional()}).optional()}).optional(), monthlyVisitors: z.enum(["under-10k", "10k-50k", "50k-100k", "100k-500k", "500k-1m", "1m-10m", "10m-50m", "50m-100m", "100m-500m", "500m-1b", "over-1b"]).optional()}).optional(), apps: z.object({amazon: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), android: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), chrome: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), ios: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), mac: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), meta: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), microsoft: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), playstation: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional(), xbox: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), type: z.enum(["app", "developer", "extension"]).optional(), url: z.string().optional()})).optional()}).optional(), assets: z.object({colorPrimary: z.string().optional(), cover: z.object({height: z.number().optional(), src: z.string().optional(), width: z.number().optional()}).optional(), logoSquare: z.object({height: z.number().optional(), src: z.string().optional(), width: z.number().optional()}).optional()}).optional(), codes: z.object({naics: z.array(z.string()).optional(), sic: z.array(z.string()).optional()}).optional(), companies: z.object({acquisitions: z.array(z.object({description: z.string().optional(), domain: z.string().optional(), name: z.string().optional()})).optional(), parent: z.object({description: z.string().optional(), domain: z.string().optional(), name: z.string().optional()}).optional(), subsidiaries: z.array(z.object({description: z.string().optional(), domain: z.string().optional(), name: z.string().optional()})).optional()}).optional(), contacts: z.object({emails: z.array(z.object({category: z.enum(["accounts", "channels", "general", "marketing", "reservations", "sales", "technical"]).optional(), value: z.string().optional()})).optional(), lines: z.array(z.object({category: z.enum(["accounts", "channels", "general", "marketing", "reservations", "sales", "technical"]).optional(), value: z.string().optional()})).optional(), phones: z.array(z.object({category: z.enum(["accounts", "channels", "general", "marketing", "reservations", "sales", "technical"]).optional(), value: z.string().optional()})).optional(), whatsapps: z.array(z.object({category: z.enum(["accounts", "channels", "general", "marketing", "reservations", "sales", "technical"]).optional(), value: z.string().optional()})).optional()}).optional(), contents: z.object({podcasts: z.object({apple: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), url: z.string().optional()})).optional(), spotify: z.array(z.object({id: z.string().optional(), name: z.string().optional(), rating: z.number().optional(), reviews: z.number().optional(), url: z.string().optional()})).optional()}).optional()}).optional(), descriptions: z.object({knowledgeGraph: z.string().optional(), linkedin: z.string().optional(), primary: z.string().optional(), tagline: z.string().optional(), website: z.string().optional(), wikipedia: z.string().optional()}).optional(), domain: z.object({alias: z.string().optional(), createdAt: z.string().optional(), domain: z.string(), domainAlts: z.array(z.string()).optional(), domainName: z.string().optional(), expiredAt: z.string().optional(), nsfw: z.boolean().optional(), redirection: z.string().optional(), registrantCountry: z.string().optional(), registrantPhone: z.string().optional(), registrar: z.string().optional(), root: z.string().optional(), state: z.enum(["broken", "for-sale", "operating", "redirected"]).optional(), status: z.number().optional(), tld: z.unknown(), updatedAt: z.string().optional()}).optional(), finances: z.object({revenue: z.enum(["under-1m", "1m-10m", "10m-50m", "50m-100m", "100m-200m", "200m-1b", "over-1b"]).optional(), stockExchange: z.string().optional(), stockSymbol: z.string().optional()}).optional(), locations: z.object({headquarters: z.object({address: z.object({geopoint: z.object({lat: z.number(), lon: z.number()}).optional(), raw: z.string().optional()}).optional(), city: z.object({code: z.string().optional(), geopoint: z.object({lat: z.number(), lon: z.number()}).optional(), name: z.string().optional(), postcode: z.string().optional()}).optional(), continent: z.object({code: z.string().optional(), geopoint: z.object({lat: z.number(), lon: z.number()}).optional(), name: z.string().optional()}).optional(), country: z.object({code: z.string().optional(), geopoint: z.object({lat: z.number(), lon: z.number()}).optional(), name: z.string().optional()}).optional(), county: z.object({code: z.string().optional(), geopoint: z.object({lat: z.number(), lon: z.number()}).optional(), name: z.string().optional()}).optional(), state: z.object({code: z.string().optional(), geopoint: z.object({lat: z.number(), lon: z.number()}).optional(), name: z.string().optional()}).optional()}).optional()}).optional(), meta: z.object({ideated: z.boolean().optional(), listIds: z.array(z.number()).optional(), mysqlId: z.number().optional(), score: z.number().optional(), sources: z.number().optional(), syncedAt: z.string().optional(), cost: z.number().optional(), credits: z.number().optional(), freeRequest: z.boolean().optional(), new: z.boolean().optional(), similarAttributes: z.array(z.object({attribute: z.string(), value: z.string()})).optional(), similarity: z.number().optional()}).optional(), people: z.object({}).optional(), secondaries: z.object({emailPatterns: z.array(z.object({emailsCount: z.number().optional(), pattern: z.string().optional(), usagePercentage: z.number().optional()})).optional()}).optional(), socials: z.object({discord: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), dribbble: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), facebook: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), facebookGroup: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), github: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), instagram: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), linkedin: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), mastodon: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), medium: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), patreon: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), pinterest: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), reddit: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), slack: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), snapchat: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), stackoverflow: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), steam: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), substack: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), threads: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), tiktok: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), tumblr: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), twitch: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), twitter: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), vimeo: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), vkontakte: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), wellfound: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), xing: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), yelp: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional(), youtube: z.object({followers: z.number().optional(), following: z.number().optional(), id: z.string().optional(), idNumeric: z.string().optional(), likes: z.number().optional(), members: z.number().optional(), monthlyViews: z.number().optional(), posts: z.number().optional(), rating: z.number().optional(), reviews: z.number().optional(), talkingAbout: z.number().optional(), url: z.string(), videos: z.number().optional(), wereHere: z.number().optional()}).optional()}).optional(), technologies: z.object({active: z.array(z.string()), categories: z.array(z.string()), details: z.array(z.object({categories: z.array(z.string()).optional(), detectedAt: z.string(), detectionTypes: z.array(z.enum(["cookies", "dns", "evaluate", "evaluate-bundle", "evaluate-version", "headers", "metas", "scripts", "tags", "urls", "variables"])), slug: z.string(), version: z.string().optional()}))}).optional(), urls: z.object({about: z.string().optional(), blog: z.string().optional(), careers: z.string().optional(), contact: z.string().optional(), crunchbase: z.string().optional(), developers: z.string().optional(), docs: z.string().optional(), events: z.string().optional(), glassdoor: z.string().optional(), partnership: z.string().optional(), pricing: z.string().optional(), privacy: z.string().optional(), registrar: z.string().optional(), salesNavigator: z.string().optional(), sitemap: z.string().optional(), status: z.string().optional(), terms: z.string().optional(), updates: z.string().optional(), website: z.string().optional(), wellfound: z.string().optional(), wikidata: z.string().optional(), wikipedia: z.string().optional()}).optional(), vectors: z.object({global: z.array(z.number()).optional()}).optional(), action: z.object({answer: z.object({explanation: z.string().optional(), output: z.record(z.string(), z.unknown()).optional(), score: z.number().optional()}).optional()}).optional()}); export const paginationMeta = z.object({cost: z.number(), credits: z.number(), currentPage: z.number(), firstPage: z.number(), freeRequest: z.boolean(), lastPage: z.number(), maxScrollResultsReached: z.boolean().optional(), perPage: z.number(), total: z.number()}); export const segmentationCondition = z.object({attribute: z.enum(["about.businessType", "about.industries", "about.industry", "about.name", "about.totalEmployees", "about.yearFounded", "ai.search", "analytics.monthlyVisitors", "apps", "codes.naics", "codes.sic", "contacts", "domain.domain", "domain.tld", "finances.revenue", "finances.stockExchange", "locations.headquarters.city.code", "locations.headquarters.continent.code", "locations.headquarters.country.code", "locations.headquarters.county.code", "locations.headquarters.state.code", "meta.listIds", "meta.score", "meta.syncedAt", "socials", "socials.linkedin.id", "technologies.active", "technologies.categories", "urls"]), blockedOperator: z.boolean().optional(), operator: z.enum(["and", "or"]), sign: z.enum(["equals", "exactEquals", "greater", "lower", "notEquals"]), values: z.array(z.union([z.string(), z.number()]))}); export const getApiV2CompaniesResponse = z.object({companies: z.array(companyV2), meta: paginationMeta, query: z.array(segmentationCondition)}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Search companies using a segmentation query. * * GET /v2/companies */ export const getApiV2Companies = async (args: GetApiV2CompaniesArgs, options?: GetApiV2CompaniesOptions) => { const {baseUrl = "https://api.thecompaniesapi.com", fetch: fetchFn = fetch, apiKey} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.actionId != null) query.append("actionId", String(args.actionId)) if (args.domainsToExclude != null) query.append("domainsToExclude", String(args.domainsToExclude)) if (args.linkedinToExclude != null) query.append("linkedinToExclude", String(args.linkedinToExclude)) if (args.page != null) query.append("page", String(args.page)) for (const item of args.query ?? []) query.append("query", String(item)) if (args.search != null) query.append("search", String(args.search)) for (const item of args.searchFields ?? []) query.append("searchFields", String(item)) if (args.simplified != null) query.append("simplified", String(args.simplified)) if (args.size != null) query.append("size", String(args.size)) for (const item of args.sortFields ?? []) query.append("sortFields", String(item)) if (args.sortKey != null) query.append("sortKey", String(args.sortKey)) if (args.sortOrder != null) query.append("sortOrder", String(args.sortOrder)) if (apiKey !== undefined) headers.set("Authorization", apiKey) const url = `${baseUrl.replace(/\/+$/, '')}/v2/companies${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiV2CompaniesResponse, await res.json()) };