@fiberai/sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +969 -0
- package/dist/index.cjs +1606 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +50778 -0
- package/dist/index.d.ts +50778 -0
- package/dist/index.js +1496 -0
- package/dist/index.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generated/core/bodySerializer.gen.ts","../src/generated/core/params.gen.ts","../src/generated/core/serverSentEvents.gen.ts","../src/generated/core/pathSerializer.gen.ts","../src/generated/core/utils.gen.ts","../src/generated/core/auth.gen.ts","../src/generated/client/utils.gen.ts","../src/generated/client/client.gen.ts","../src/generated/client.gen.ts","../src/generated/sdk.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type {\n ArrayStyle,\n ObjectStyle,\n SerializerOptions,\n} from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: any) => any;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (\n data: FormData,\n key: string,\n value: unknown,\n): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (\n data: URLSearchParams,\n key: string,\n value: unknown,\n): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ): FormData => {\n const data = new FormData();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: <T>(body: T): string =>\n JSON.stringify(body, (_key, value) =>\n typeof value === 'bigint' ? value.toString() : value,\n ),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ): string => {\n const data = new URLSearchParams();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (\n args: ReadonlyArray<unknown>,\n fields: FieldsConfig,\n) => {\n const params: Params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) =>\n key.startsWith(prefix),\n );\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[\n key.slice(prefix.length)\n ] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<\n RequestInit,\n 'method'\n> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<\n TData = unknown,\n TReturn = void,\n TNext = unknown,\n> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport const createSseClient = <TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> => {\n let lastEventId: string | undefined;\n\n const sleep =\n sseSleepFn ??\n ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok)\n throw new Error(\n `SSE failed: ${response.status} ${response.statusText}`,\n );\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n // Normalize line endings: CRLF -> LF, then CR -> LF\n buffer = buffer.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(\n line.replace(/^retry:\\s*/, ''),\n 10,\n );\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (\n sseMaxRetryAttempts !== undefined &&\n attempt >= sseMaxRetryAttempts\n ) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(\n retryDelay * 2 ** (attempt - 1),\n sseMaxRetryDelay ?? 30000,\n );\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T>\n extends SerializePrimitiveOptions,\n SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects arenβt supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [\n ...values,\n key,\n allowReserved ? (v as string) : encodeURIComponent(v as string),\n ];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix'\n ? separator + joinedValues\n : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(\n match,\n serializeArrayParam({ explode, name, style, value }),\n );\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}) {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e. client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token =\n typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (\n contentType: string | null,\n): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (\n cleanContent.startsWith('application/json') ||\n cleanContent.endsWith('+json')\n ) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n cleanContent.startsWith(type),\n )\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator =\n header instanceof Headers\n ? headersEntries(header)\n : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (\n request: Req,\n options: Options,\n) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(\n id: number | Interceptor,\n fn: Interceptor,\n ): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type {\n Client,\n Config,\n RequestOptions,\n ResolvedRequestOptions,\n} from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<\n Request,\n Response,\n unknown,\n ResolvedRequestOptions\n >();\n\n const beforeRequest = async (options: RequestOptions) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined,\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body);\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const url = buildUrl(opts);\n\n return { opts, url };\n };\n\n const request: Client['request'] = async (options) => {\n // @ts-expect-error\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n let request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n let response: Response;\n\n try {\n response = await _fetch(request);\n } catch (error) {\n // Handle fetch exceptions (AbortError, network errors, etc.)\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(\n error,\n undefined as any,\n request,\n opts,\n )) as unknown;\n }\n }\n\n finalError = finalError || ({} as unknown);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // Return error response\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response: undefined as any,\n };\n }\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (\n response.status === 204 ||\n response.headers.get('Content-Length') === '0'\n ) {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n const error = jsonError ?? textError;\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(error, response, request, opts)) as string;\n }\n }\n\n finalError = finalError || ({} as string);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n ...result,\n };\n };\n\n const makeMethodFn =\n (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn =\n (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n headers: opts.headers as unknown as Record<string, string>,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as\n | BodyInit\n | null\n | undefined,\n url,\n });\n };\n\n return {\n buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://alpha.api.fiber.ai' }));\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { AddCompaniesToExclusionListData, AddCompaniesToExclusionListErrors, AddCompaniesToExclusionListResponses, AddProspectsToExclusionListData, AddProspectsToExclusionListErrors, AddProspectsToExclusionListResponses, BulkCompanyLogosData, BulkCompanyLogosErrors, BulkCompanyLogosResponses, CheckGoogleMapsResultsData, CheckGoogleMapsResultsErrors, CheckGoogleMapsResultsResponses, CombinedSearchData, CombinedSearchErrors, CombinedSearchResponses, CompanyCountData, CompanyCountErrors, CompanyCountResponses, CompanyLiveEnrichData, CompanyLiveEnrichErrors, CompanyLiveEnrichResponses, CompanyPostsLiveFetchData, CompanyPostsLiveFetchErrors, CompanyPostsLiveFetchResponses, CompanySearchData, CompanySearchErrors, CompanySearchResponses, CompanyTypeaheadData, CompanyTypeaheadErrors, CompanyTypeaheadResponses, CreateCompanyExclusionListData, CreateCompanyExclusionListErrors, CreateCompanyExclusionListFromAudienceData, CreateCompanyExclusionListFromAudienceErrors, CreateCompanyExclusionListFromAudienceResponses, CreateCompanyExclusionListResponses, CreateProspectExclusionListData, CreateProspectExclusionListErrors, CreateProspectExclusionListFromAudienceData, CreateProspectExclusionListFromAudienceErrors, CreateProspectExclusionListFromAudienceResponses, CreateProspectExclusionListResponses, CreateSavedSearchData, CreateSavedSearchErrors, CreateSavedSearchResponses, DeleteCompanyExclusionListData, DeleteCompanyExclusionListErrors, DeleteCompanyExclusionListResponses, DeleteProspectExclusionListData, DeleteProspectExclusionListErrors, DeleteProspectExclusionListResponses, DomainLookupPollingData, DomainLookupPollingErrors, DomainLookupPollingResponses, DomainLookupTriggerData, DomainLookupTriggerErrors, DomainLookupTriggerResponses, EmailBounceDetectionData, EmailBounceDetectionErrors, EmailBounceDetectionResponses, GetAcceleratorsData, GetAcceleratorsErrors, GetAcceleratorsResponses, GetCompanyExclusionListsData, GetCompanyExclusionListsErrors, GetCompanyExclusionListsResponses, GetCurrentCompaniesInSavedSearchData, GetCurrentCompaniesInSavedSearchErrors, GetCurrentCompaniesInSavedSearchResponses, GetCurrentProfilesInSavedSearchData, GetCurrentProfilesInSavedSearchErrors, GetCurrentProfilesInSavedSearchResponses, GetExcludedCompaniesForExclusionListData, GetExcludedCompaniesForExclusionListErrors, GetExcludedCompaniesForExclusionListResponses, GetExcludedProspectsForExclusionListData, GetExcludedProspectsForExclusionListErrors, GetExcludedProspectsForExclusionListResponses, GetIndustriesData, GetIndustriesErrors, GetIndustriesResponses, GetLanguagesData, GetLanguagesErrors, GetLanguagesResponses, GetLatestSavedSearchRunData, GetLatestSavedSearchRunErrors, GetLatestSavedSearchRunResponses, GetNaicsCodesData, GetNaicsCodesErrors, GetNaicsCodesResponses, GetOpenApiData, GetOpenApiResponses, GetOrgCreditsData, GetOrgCreditsErrors, GetOrgCreditsResponses, GetProspectExclusionListsData, GetProspectExclusionListsErrors, GetProspectExclusionListsResponses, GetRegionsData, GetRegionsErrors, GetRegionsResponses, GetSavedSearchRunCompaniesData, GetSavedSearchRunCompaniesErrors, GetSavedSearchRunCompaniesResponses, GetSavedSearchRunData, GetSavedSearchRunErrors, GetSavedSearchRunProfilesData, GetSavedSearchRunProfilesErrors, GetSavedSearchRunProfilesResponses, GetSavedSearchRunResponses, GetSavedSearchRunStatusData, GetSavedSearchRunStatusErrors, GetSavedSearchRunStatusResponses, GetTagsData, GetTagsErrors, GetTagsResponses, GetTimeZonesData, GetTimeZonesErrors, GetTimeZonesResponses, GoogleMapsSearchData, GoogleMapsSearchErrors, GoogleMapsSearchResponses, HealthCheckData, HealthCheckResponses, InvestmentSearchData, InvestmentSearchErrors, InvestmentSearchResponses, InvestorSearchData, InvestorSearchErrors, InvestorSearchResponses, JobPostingSearchCountData, JobPostingSearchCountErrors, JobPostingSearchCountResponses, JobPostingSearchData, JobPostingSearchErrors, JobPostingSearchResponses, KitchenSinkBulkCompanyData, KitchenSinkBulkCompanyErrors, KitchenSinkBulkCompanyResponses, KitchenSinkBulkProfileData, KitchenSinkBulkProfileErrors, KitchenSinkBulkProfileResponses, KitchenSinkCompanyData, KitchenSinkCompanyErrors, KitchenSinkCompanyResponses, KitchenSinkProfileData, KitchenSinkProfileErrors, KitchenSinkProfileResponses, ListSavedSearchData, ListSavedSearchErrors, ListSavedSearchResponses, ListSavedSearchRunsData, ListSavedSearchRunsErrors, ListSavedSearchRunsResponses, LocationTypeaheadData, LocationTypeaheadErrors, LocationTypeaheadResponses, ManuallySpawnSavedSearchRunData, ManuallySpawnSavedSearchRunErrors, ManuallySpawnSavedSearchRunResponses, PeopleSearchCountData, PeopleSearchCountErrors, PeopleSearchCountResponses, PeopleSearchData, PeopleSearchErrors, PeopleSearchResponses, PollBatchContactEnrichmentData, PollBatchContactEnrichmentErrors, PollBatchContactEnrichmentResponses, PollCombinedSearchData, PollCombinedSearchErrors, PollCombinedSearchResponses, PollContactEnrichmentResultData, PollContactEnrichmentResultErrors, PollContactEnrichmentResultResponses, PollGoogleMapsResultsData, PollGoogleMapsResultsErrors, PollGoogleMapsResultsResponses, PollLocalBusinessSearchData, PollLocalBusinessSearchErrors, PollLocalBusinessSearchResponses, PostCommentsLiveFetchData, PostCommentsLiveFetchErrors, PostCommentsLiveFetchResponses, PostReactionsLiveFetchData, PostReactionsLiveFetchErrors, PostReactionsLiveFetchResponses, ProfileCommentsLiveFetchData, ProfileCommentsLiveFetchErrors, ProfileCommentsLiveFetchResponses, ProfileLiveEnrichData, ProfileLiveEnrichErrors, ProfileLiveEnrichResponses, ProfilePostsLiveFetchData, ProfilePostsLiveFetchErrors, ProfilePostsLiveFetchResponses, ProfileReactionsLiveFetchData, ProfileReactionsLiveFetchErrors, ProfileReactionsLiveFetchResponses, RemoveCompanyFromExclusionListData, RemoveCompanyFromExclusionListErrors, RemoveCompanyFromExclusionListResponses, RemoveProspectFromExclusionListData, RemoveProspectFromExclusionListErrors, RemoveProspectFromExclusionListResponses, ReverseEmailLookupData, ReverseEmailLookupErrors, ReverseEmailLookupResponses, StartBatchContactEnrichmentData, StartBatchContactEnrichmentErrors, StartBatchContactEnrichmentResponses, StartLocalBusinessSearchData, StartLocalBusinessSearchErrors, StartLocalBusinessSearchResponses, SyncCombinedSearchData, SyncCombinedSearchErrors, SyncCombinedSearchResponses, SyncContactEnrichmentData, SyncContactEnrichmentErrors, SyncContactEnrichmentResponses, TextToCombinedSearchData, TextToCombinedSearchErrors, TextToCombinedSearchResponses, TextToCompanySearchData, TextToCompanySearchErrors, TextToCompanySearchParamsData, TextToCompanySearchParamsErrors, TextToCompanySearchParamsResponses, TextToCompanySearchResponses, TextToProfileSearchData, TextToProfileSearchErrors, TextToProfileSearchParamsData, TextToProfileSearchParamsErrors, TextToProfileSearchParamsResponses, TextToProfileSearchResponses, TriggerContactEnrichmentData, TriggerContactEnrichmentErrors, TriggerContactEnrichmentResponses, UpdateSavedSearchData, UpdateSavedSearchErrors, UpdateSavedSearchResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Get OpenAPI schema\n *\n * Get the OpenAPI schema\n */\nexport const getOpenApi = <ThrowOnError extends boolean = false>(options?: Options<GetOpenApiData, ThrowOnError>) => (options?.client ?? client).get<GetOpenApiResponses, unknown, ThrowOnError>({ url: '/openapi.json', ...options });\n\n/**\n * Health check\n *\n * Health check endpoint to check if the server is running\n */\nexport const healthCheck = <ThrowOnError extends boolean = false>(options?: Options<HealthCheckData, ThrowOnError>) => (options?.client ?? client).get<HealthCheckResponses, unknown, ThrowOnError>({ url: '/health', ...options });\n\n/**\n * Get organization credits\n *\n * Get credits for an organization\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getOrgCredits = <ThrowOnError extends boolean = false>(options: Options<GetOrgCreditsData, ThrowOnError>) => (options.client ?? client).get<GetOrgCreditsResponses, GetOrgCreditsErrors, ThrowOnError>({ url: '/v1/get-org-credits', ...options });\n\n/**\n * Poll combined search\n *\n * Poll for the companies and profiles from the combined search\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n */\nexport const pollCombinedSearch = <ThrowOnError extends boolean = false>(options: Options<PollCombinedSearchData, ThrowOnError>) => (options.client ?? client).post<PollCombinedSearchResponses, PollCombinedSearchErrors, ThrowOnError>({\n url: '/v1/combined-search/poll',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Poll contact details fetching task\n *\n * Polls an asynchronous contact detail enrichment task. Call this with the task ID returned from the 'Start fetching person's contact details' endpoint.\n *\n * <span>β‘ <strong>Rate limit:</strong> 240 requests per 1 minute</span>\n */\nexport const pollContactEnrichmentResult = <ThrowOnError extends boolean = false>(options: Options<PollContactEnrichmentResultData, ThrowOnError>) => (options.client ?? client).post<PollContactEnrichmentResultResponses, PollContactEnrichmentResultErrors, ThrowOnError>({\n url: '/v1/contact-details/poll',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Poll batch contact enrichment\n *\n * Polls a batch contact enrichment task. Returns partial results as they complete. Call this endpoint repeatedly until the 'done' field is true. Use the task ID returned from the 'Start batch contact enrichment' endpoint.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n */\nexport const pollBatchContactEnrichment = <ThrowOnError extends boolean = false>(options: Options<PollBatchContactEnrichmentData, ThrowOnError>) => (options.client ?? client).post<PollBatchContactEnrichmentResponses, PollBatchContactEnrichmentErrors, ThrowOnError>({\n url: '/v1/contact-enrich/batch/poll',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Poll for Google Maps results\n *\n * Poll for Google Maps results\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n */\nexport const pollGoogleMapsResults = <ThrowOnError extends boolean = false>(options: Options<PollGoogleMapsResultsData, ThrowOnError>) => (options.client ?? client).post<PollGoogleMapsResultsResponses, PollGoogleMapsResultsErrors, ThrowOnError>({\n url: '/v1/google-maps-search/poll',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Poll local business search\n *\n * Coming Soon! Poll a local business search task\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n */\nexport const pollLocalBusinessSearch = <ThrowOnError extends boolean = false>(options: Options<PollLocalBusinessSearchData, ThrowOnError>) => (options.client ?? client).post<PollLocalBusinessSearchResponses, PollLocalBusinessSearchErrors, ThrowOnError>({\n url: '/v1/local-business-search/poll',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Check progress for Google Maps results\n *\n * Check progress for Google Maps results\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n */\nexport const checkGoogleMapsResults = <ThrowOnError extends boolean = false>(options: Options<CheckGoogleMapsResultsData, ThrowOnError>) => (options.client ?? client).post<CheckGoogleMapsResultsResponses, CheckGoogleMapsResultsErrors, ThrowOnError>({\n url: '/v1/google-maps-search/check',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Poll Domain lookup\n *\n * Poll for the results of a domain lookup task.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n */\nexport const domainLookupPolling = <ThrowOnError extends boolean = false>(options: Options<DomainLookupPollingData, ThrowOnError>) => (options.client ?? client).post<DomainLookupPollingResponses, DomainLookupPollingErrors, ThrowOnError>({\n url: '/v1/domain-lookup/polling',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get company exclusion list\n *\n * Get company exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getCompanyExclusionLists = <ThrowOnError extends boolean = false>(options: Options<GetCompanyExclusionListsData, ThrowOnError>) => (options.client ?? client).post<GetCompanyExclusionListsResponses, GetCompanyExclusionListsErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/get-lists',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create company exclusion list\n *\n * Create a company exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const createCompanyExclusionList = <ThrowOnError extends boolean = false>(options: Options<CreateCompanyExclusionListData, ThrowOnError>) => (options.client ?? client).post<CreateCompanyExclusionListResponses, CreateCompanyExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/create-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete company exclusion list\n *\n * Delete a company exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const deleteCompanyExclusionList = <ThrowOnError extends boolean = false>(options: Options<DeleteCompanyExclusionListData, ThrowOnError>) => (options.client ?? client).post<DeleteCompanyExclusionListResponses, DeleteCompanyExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/delete-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add companies to a company exclusion list\n *\n * Add companies to a company exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const addCompaniesToExclusionList = <ThrowOnError extends boolean = false>(options: Options<AddCompaniesToExclusionListData, ThrowOnError>) => (options.client ?? client).post<AddCompaniesToExclusionListResponses, AddCompaniesToExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/add-to-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove company from company exclusion list\n *\n * Remove a company from a company exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const removeCompanyFromExclusionList = <ThrowOnError extends boolean = false>(options: Options<RemoveCompanyFromExclusionListData, ThrowOnError>) => (options.client ?? client).post<RemoveCompanyFromExclusionListResponses, RemoveCompanyFromExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/remove-from-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get excluded companies for exclusion list\n *\n * Get excluded companies for a specific exclusion list with pagination\n *\n * <span>β‘ <strong>Rate limit:</strong> 100 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getExcludedCompaniesForExclusionList = <ThrowOnError extends boolean = false>(options: Options<GetExcludedCompaniesForExclusionListData, ThrowOnError>) => (options.client ?? client).post<GetExcludedCompaniesForExclusionListResponses, GetExcludedCompaniesForExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/read-from-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create company exclusion list from audience\n *\n * This endpoint creates a new company exclusion list by extracting all companies from a specified audience.\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const createCompanyExclusionListFromAudience = <ThrowOnError extends boolean = false>(options: Options<CreateCompanyExclusionListFromAudienceData, ThrowOnError>) => (options.client ?? client).post<CreateCompanyExclusionListFromAudienceResponses, CreateCompanyExclusionListFromAudienceErrors, ThrowOnError>({\n url: '/v1/exclusions/companies/audience/create-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get prospect exclusion lists\n *\n * Get prospect exclusion lists\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getProspectExclusionLists = <ThrowOnError extends boolean = false>(options: Options<GetProspectExclusionListsData, ThrowOnError>) => (options.client ?? client).post<GetProspectExclusionListsResponses, GetProspectExclusionListsErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/get-lists',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create prospect exclusion list\n *\n * Create a prospect exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const createProspectExclusionList = <ThrowOnError extends boolean = false>(options: Options<CreateProspectExclusionListData, ThrowOnError>) => (options.client ?? client).post<CreateProspectExclusionListResponses, CreateProspectExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/create-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete prospect exclusion list\n *\n * Delete a prospect exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const deleteProspectExclusionList = <ThrowOnError extends boolean = false>(options: Options<DeleteProspectExclusionListData, ThrowOnError>) => (options.client ?? client).post<DeleteProspectExclusionListResponses, DeleteProspectExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/delete-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add prospects to a prospect exclusion list\n *\n * Add prospects to a prospect exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const addProspectsToExclusionList = <ThrowOnError extends boolean = false>(options: Options<AddProspectsToExclusionListData, ThrowOnError>) => (options.client ?? client).post<AddProspectsToExclusionListResponses, AddProspectsToExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/add-to-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove prospect from prospect exclusion list\n *\n * Remove a prospect from a prospect exclusion list\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const removeProspectFromExclusionList = <ThrowOnError extends boolean = false>(options: Options<RemoveProspectFromExclusionListData, ThrowOnError>) => (options.client ?? client).post<RemoveProspectFromExclusionListResponses, RemoveProspectFromExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/remove-from-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get excluded prospects for exclusion list\n *\n * Get excluded prospects for a specific exclusion list with pagination\n *\n * <span>β‘ <strong>Rate limit:</strong> 100 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getExcludedProspectsForExclusionList = <ThrowOnError extends boolean = false>(options: Options<GetExcludedProspectsForExclusionListData, ThrowOnError>) => (options.client ?? client).post<GetExcludedProspectsForExclusionListResponses, GetExcludedProspectsForExclusionListErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/read-from-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create prospect exclusion list from audience\n *\n * Create a prospect exclusion list from an audience's prospects\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const createProspectExclusionListFromAudience = <ThrowOnError extends boolean = false>(options: Options<CreateProspectExclusionListFromAudienceData, ThrowOnError>) => (options.client ?? client).post<CreateProspectExclusionListFromAudienceResponses, CreateProspectExclusionListFromAudienceErrors, ThrowOnError>({\n url: '/v1/exclusions/prospects/audience/create-list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List countries and regions\n *\n * Get a list of all countries and regions that you can pass to our API, along with their names, codes, and additional metadata.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getRegions = <ThrowOnError extends boolean = false>(options: Options<GetRegionsData, ThrowOnError>) => (options.client ?? client).get<GetRegionsResponses, GetRegionsErrors, ThrowOnError>({ url: '/v1/enums/regions', ...options });\n\n/**\n * List languages\n *\n * Get a list of all languages that you can pass to our API\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getLanguages = <ThrowOnError extends boolean = false>(options: Options<GetLanguagesData, ThrowOnError>) => (options.client ?? client).get<GetLanguagesResponses, GetLanguagesErrors, ThrowOnError>({ url: '/v1/enums/languages', ...options });\n\n/**\n * List time zones\n *\n * Get a comprehensive list of all available timezones with geographic information, current time data, and UTC offset ranges. This is useful for passing time zones into our search filters.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getTimeZones = <ThrowOnError extends boolean = false>(options: Options<GetTimeZonesData, ThrowOnError>) => (options.client ?? client).get<GetTimeZonesResponses, GetTimeZonesErrors, ThrowOnError>({ url: '/v1/enums/time-zones', ...options });\n\n/**\n * List industries\n *\n * Get lists of various industry categorizations. Useful for our company search API.\n *\n * <span>β‘ <strong>Rate limit:</strong> 50 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getIndustries = <ThrowOnError extends boolean = false>(options: Options<GetIndustriesData, ThrowOnError>) => (options.client ?? client).get<GetIndustriesResponses, GetIndustriesErrors, ThrowOnError>({ url: '/v1/enums/industries', ...options });\n\n/**\n * List profile and company tags\n *\n * Get a list of all profile and company tags that you can use to filter searches in our API, along with their descriptions.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getTags = <ThrowOnError extends boolean = false>(options: Options<GetTagsData, ThrowOnError>) => (options.client ?? client).get<GetTagsResponses, GetTagsErrors, ThrowOnError>({ url: '/v1/enums/tags', ...options });\n\n/**\n * List NAICS codes\n *\n * Get all NAICS (North American Industry Classification System) codes from the 2017 version. Returns both the code and its corresponding title/description. You can use this in our company search APIs.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getNaicsCodes = <ThrowOnError extends boolean = false>(options: Options<GetNaicsCodesData, ThrowOnError>) => (options.client ?? client).get<GetNaicsCodesResponses, GetNaicsCodesErrors, ThrowOnError>({ url: '/v1/enums/naics-codes', ...options });\n\n/**\n * List accelerators\n *\n * Get a list of all accelerators with their metadata, total company counts, and statistics broken down by batch and year. Useful for filtering accelerator data in search APIs.\n *\n * <span>β‘ <strong>Rate limit:</strong> 30 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getAccelerators = <ThrowOnError extends boolean = false>(options: Options<GetAcceleratorsData, ThrowOnError>) => (options.client ?? client).get<GetAcceleratorsResponses, GetAcceleratorsErrors, ThrowOnError>({ url: '/v1/enums/accelerators', ...options });\n\n/**\n * Company search\n *\n * Search for companies using filters\n *\n * <span>β‘ <strong>Rate limit:</strong> 180 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per company found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const companySearch = <ThrowOnError extends boolean = false>(options: Options<CompanySearchData, ThrowOnError>) => (options.client ?? client).post<CompanySearchResponses, CompanySearchErrors, ThrowOnError>({\n url: '/v1/company-search',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Company count\n *\n * Get count of companies matching search filters\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const companyCount = <ThrowOnError extends boolean = false>(options: Options<CompanyCountData, ThrowOnError>) => (options.client ?? client).post<CompanyCountResponses, CompanyCountErrors, ThrowOnError>({\n url: '/v1/company-count',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Investor search\n *\n * Search for investors with flexible filtering capabilities\n *\n * <span>β‘ <strong>Rate limit:</strong> 30 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 3 credits per investor found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const investorSearch = <ThrowOnError extends boolean = false>(options: Options<InvestorSearchData, ThrowOnError>) => (options.client ?? client).post<InvestorSearchResponses, InvestorSearchErrors, ThrowOnError>({\n url: '/v1/investor-search',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Investment search\n *\n * Search for investments with flexible filtering capabilities. Supports filtering by investor, company, round type, location, and financial metrics.\n *\n * <span>β‘ <strong>Rate limit:</strong> 30 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per investment found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const investmentSearch = <ThrowOnError extends boolean = false>(options: Options<InvestmentSearchData, ThrowOnError>) => (options.client ?? client).post<InvestmentSearchResponses, InvestmentSearchErrors, ThrowOnError>({\n url: '/v1/investment-search',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Job postings search\n *\n * Search for job postings with flexible filtering capabilities\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per job posting found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const jobPostingSearch = <ThrowOnError extends boolean = false>(options: Options<JobPostingSearchData, ThrowOnError>) => (options.client ?? client).post<JobPostingSearchResponses, JobPostingSearchErrors, ThrowOnError>({\n url: '/v1/job-search',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Job postings count\n *\n * Get count of job postings matching search filters\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const jobPostingSearchCount = <ThrowOnError extends boolean = false>(options: Options<JobPostingSearchCountData, ThrowOnError>) => (options.client ?? client).post<JobPostingSearchCountResponses, JobPostingSearchCountErrors, ThrowOnError>({\n url: '/v1/job-search/count',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * People search\n *\n * Search for people using filters\n *\n * <span>β‘ <strong>Rate limit:</strong> 180 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per profile found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const peopleSearch = <ThrowOnError extends boolean = false>(options: Options<PeopleSearchData, ThrowOnError>) => (options.client ?? client).post<PeopleSearchResponses, PeopleSearchErrors, ThrowOnError>({\n url: '/v1/people-search',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * People search count\n *\n * Get count of profiles matching search filters\n *\n * <span>β‘ <strong>Rate limit:</strong> 120 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const peopleSearchCount = <ThrowOnError extends boolean = false>(options: Options<PeopleSearchCountData, ThrowOnError>) => (options.client ?? client).post<PeopleSearchCountResponses, PeopleSearchCountErrors, ThrowOnError>({\n url: '/v1/people-search/count',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Start combined search\n *\n * Start a search for companies and the people who work there\n *\n * <span>β‘ <strong>Rate limit:</strong> 30 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Credits are charged after the search completes based on results: 1 credits per company found and 1 credits per profile found. <span title=\"Pricing shown is default pricing. Actual pricing may vary. Your total charge will vary based on the number of companies and profiles returned in your results.\">β</span></span>\n */\nexport const combinedSearch = <ThrowOnError extends boolean = false>(options: Options<CombinedSearchData, ThrowOnError>) => (options.client ?? client).post<CombinedSearchResponses, CombinedSearchErrors, ThrowOnError>({\n url: '/v1/combined-search/start',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Sync combined search\n *\n * A synchronous endpoint that lets you search for companies and then prospects in these companies.\n *\n * <span>β‘ <strong>Rate limit:</strong> 30 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Credits are charged after the search completes based on results: 1 credits per company found and 1 credits per profile found. <span title=\"Pricing shown is default pricing. Actual pricing may vary. Your total charge will vary based on the number of companies and profiles returned in your results.\">β</span></span>\n */\nexport const syncCombinedSearch = <ThrowOnError extends boolean = false>(options: Options<SyncCombinedSearchData, ThrowOnError>) => (options.client ?? client).post<SyncCombinedSearchResponses, SyncCombinedSearchErrors, ThrowOnError>({\n url: '/v1/combined-search/sync',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Bulk company logos\n *\n * Get logo URLs for a list of companies. Max 10,000 companies can be looked up at a time.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 0.33 credits per company logo lookup <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const bulkCompanyLogos = <ThrowOnError extends boolean = false>(options: Options<BulkCompanyLogosData, ThrowOnError>) => (options.client ?? client).post<BulkCompanyLogosResponses, BulkCompanyLogosErrors, ThrowOnError>({\n url: '/v1/company-logos/bulk',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Start fetching person's contact details\n *\n * Starts fetching a single person's contact details: personal email, work email, and/or phone number. This is an asynchronous task; use the polling endpoint afterward.\n *\n * <span>β‘ <strong>Rate limit:</strong> 120 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Pay only for the data you request:<br />β’ 5 credits for all phone numbers AND all emails<br />β’ 2 credits for work email only<br />β’ 2 credits for personal email only<br />β’ 3 credits for phone only<br />β’ Plus 1 credits when the liveFetch flag is set <span title=\"Pricing shown is default pricing. Actual pricing may vary. Credits are charged after the reveal completes so partial reveals only bill for delivered data.\">β</span></span>\n */\nexport const triggerContactEnrichment = <ThrowOnError extends boolean = false>(options: Options<TriggerContactEnrichmentData, ThrowOnError>) => (options.client ?? client).post<TriggerContactEnrichmentResponses, TriggerContactEnrichmentErrors, ThrowOnError>({\n url: '/v1/contact-details/start',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Synchronously fetch contact details\n *\n * Fetches a single person's work email, personal email, and/or phone number synchronously, meaning that you don't need to poll separately. This endpoint is slow, though, since it waits for the task to finish before returning.\n *\n * <span>β‘ <strong>Rate limit:</strong> 30 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Pay only for the data you request:<br />β’ 5 credits for all phone numbers AND all emails<br />β’ 2 credits for work email only<br />β’ 2 credits for personal email only<br />β’ 3 credits for phone only<br />β’ Plus 1 credits when the liveFetch flag is set <span title=\"Pricing shown is default pricing. Actual pricing may vary. Partial reveals only bill for delivered data.\">β</span></span>\n */\nexport const syncContactEnrichment = <ThrowOnError extends boolean = false>(options: Options<SyncContactEnrichmentData, ThrowOnError>) => (options.client ?? client).post<SyncContactEnrichmentResponses, SyncContactEnrichmentErrors, ThrowOnError>({\n url: '/v1/contact-details/sync',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Start batch contact enrichment\n *\n * Starts fetching contact details for multiple people (up to 10000) in batch. This is an asynchronous task; use the polling endpoint to check progress and get results.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Pay only for the data you request:<br />β’ 5 credits for all phone numbers AND all emails<br />β’ 2 credits for work email only<br />β’ 2 credits for personal email only<br />β’ 3 credits for phone only <span title=\"Pricing shown is default pricing. Actual pricing may vary. Credits are charged upfront for all unique people queued (after deduping). Undelivered data is refunded per operation.\">β</span></span>\n */\nexport const startBatchContactEnrichment = <ThrowOnError extends boolean = false>(options: Options<StartBatchContactEnrichmentData, ThrowOnError>) => (options.client ?? client).post<StartBatchContactEnrichmentResponses, StartBatchContactEnrichmentErrors, ThrowOnError>({\n url: '/v1/contact-enrich/batch/start',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Live fetch LinkedIn profile\n *\n * Returns an enriched profile with details for a given LinkedIn profile identifier\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 second</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per profile live fetch <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const profileLiveEnrich = <ThrowOnError extends boolean = false>(options: Options<ProfileLiveEnrichData, ThrowOnError>) => (options.client ?? client).post<ProfileLiveEnrichResponses, ProfileLiveEnrichErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/profile/single',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Live fetch LinkedIn company\n *\n * Returns an enriched company with details for a given LinkedIn company identifier\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per company live fetch <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const companyLiveEnrich = <ThrowOnError extends boolean = false>(options: Options<CompanyLiveEnrichData, ThrowOnError>) => (options.client ?? client).post<CompanyLiveEnrichResponses, CompanyLiveEnrichErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/company/single',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch LinkedIn profile posts\n *\n * Fetches recent posts from a LinkedIn profile. Returns a paginated feed of posts with optional cursor for pagination. Each page returns up to 50 posts.\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per page of results <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const profilePostsLiveFetch = <ThrowOnError extends boolean = false>(options: Options<ProfilePostsLiveFetchData, ThrowOnError>) => (options.client ?? client).post<ProfilePostsLiveFetchResponses, ProfilePostsLiveFetchErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/profile-posts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch LinkedIn company posts\n *\n * Fetches recent posts from a LinkedIn company page. Returns a paginated feed of company posts. Each page contains up to 10 posts.\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per page of results <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const companyPostsLiveFetch = <ThrowOnError extends boolean = false>(options: Options<CompanyPostsLiveFetchData, ThrowOnError>) => (options.client ?? client).post<CompanyPostsLiveFetchResponses, CompanyPostsLiveFetchErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/company-posts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch LinkedIn post comments\n *\n * Fetches paginated comments for a LinkedIn post. Each page contains up to 10 comments.\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per page of results <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const postCommentsLiveFetch = <ThrowOnError extends boolean = false>(options: Options<PostCommentsLiveFetchData, ThrowOnError>) => (options.client ?? client).post<PostCommentsLiveFetchResponses, PostCommentsLiveFetchErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/post-comments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch LinkedIn post reactions\n *\n * Fetches paginated reactions of a specific type for a LinkedIn post. Each page contains up to 10 reactions.\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per page of results <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const postReactionsLiveFetch = <ThrowOnError extends boolean = false>(options: Options<PostReactionsLiveFetchData, ThrowOnError>) => (options.client ?? client).post<PostReactionsLiveFetchResponses, PostReactionsLiveFetchErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/post-reactions',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch LinkedIn profile comments\n *\n * Fetches comments made by a LinkedIn profile. Returns a paginated feed of comments with optional cursor for pagination. Each page returns up to 10 comments.\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per page of results <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const profileCommentsLiveFetch = <ThrowOnError extends boolean = false>(options: Options<ProfileCommentsLiveFetchData, ThrowOnError>) => (options.client ?? client).post<ProfileCommentsLiveFetchResponses, ProfileCommentsLiveFetchErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/profile-comments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch LinkedIn profile reactions\n *\n * Fetches reactions made by a LinkedIn profile. Returns a paginated feed of reactions with optional cursor for pagination. Each page returns up to 10 reactions.\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per page of results <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const profileReactionsLiveFetch = <ThrowOnError extends boolean = false>(options: Options<ProfileReactionsLiveFetchData, ThrowOnError>) => (options.client ?? client).post<ProfileReactionsLiveFetchResponses, ProfileReactionsLiveFetchErrors, ThrowOnError>({\n url: '/v1/linkedin-live-fetch/profile-reactions',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Find person by email\n *\n * Do a reverse lookup: given an email address, find someone's LinkedIn profile and personal details. Note: if you also have the person's name, company, etc., you'll get better results with the Kitchen Sink endpoint, where you can pass all the information you have.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per email lookup <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const reverseEmailLookup = <ThrowOnError extends boolean = false>(options: Options<ReverseEmailLookupData, ThrowOnError>) => (options.client ?? client).post<ReverseEmailLookupResponses, ReverseEmailLookupErrors, ThrowOnError>({\n url: '/v1/email-to-person/single',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kick off a search on Google Maps\n *\n * Kick off a search for local businesses or other places of interest on Google Maps\n *\n * <span>β‘ <strong>Rate limit:</strong> 5 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 3 credits per business found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const googleMapsSearch = <ThrowOnError extends boolean = false>(options: Options<GoogleMapsSearchData, ThrowOnError>) => (options.client ?? client).post<GoogleMapsSearchResponses, GoogleMapsSearchErrors, ThrowOnError>({\n url: '/v1/google-maps-search/start',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kitchen sink person lookup\n *\n * Search for a person using a variety of parameters such as LinkedIn slug, LinkedIn URL, or their current company information. Returns profile data for the person if found.\n *\n * <span>β‘ <strong>Rate limit:</strong> 120 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Pay per person: 2 credits per lookup, plus 2 additional credits when the liveFetch flag is set. <span title=\"Pricing shown is default pricing. Actual pricing may vary. LinkedIn live fetch credits only apply when the liveFetch flag is set.\">β</span></span>\n */\nexport const kitchenSinkProfile = <ThrowOnError extends boolean = false>(options: Options<KitchenSinkProfileData, ThrowOnError>) => (options.client ?? client).post<KitchenSinkProfileResponses, KitchenSinkProfileErrors, ThrowOnError>({\n url: '/v1/kitchen-sink/person',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kitchen sink company lookup\n *\n * Search for a company using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc. Returns complete company data if found.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per company lookup <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const kitchenSinkCompany = <ThrowOnError extends boolean = false>(options: Options<KitchenSinkCompanyData, ThrowOnError>) => (options.client ?? client).post<KitchenSinkCompanyResponses, KitchenSinkCompanyErrors, ThrowOnError>({\n url: '/v1/kitchen-sink/company',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kitchen sink bulk profile lookup\n *\n * Search for many people using a variety of parameters such as LinkedIn slug, LinkedIn URL, or their current company information. Returns profile data for the person if found.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Pay per person: 2 credits per lookup, plus 2 additional credits when the liveFetch flag is set. <span title=\"Pricing shown is default pricing. Actual pricing may vary. LinkedIn live fetch credits only apply when the liveFetch flag is set.\">β</span></span>\n */\nexport const kitchenSinkBulkProfile = <ThrowOnError extends boolean = false>(options: Options<KitchenSinkBulkProfileData, ThrowOnError>) => (options.client ?? client).post<KitchenSinkBulkProfileResponses, KitchenSinkBulkProfileErrors, ThrowOnError>({\n url: '/v1/kitchen-sink/bulk/profile',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kitchen sink bulk company lookup\n *\n * Search for many companies using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc. Returns complete company data if found.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per company lookup <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const kitchenSinkBulkCompany = <ThrowOnError extends boolean = false>(options: Options<KitchenSinkBulkCompanyData, ThrowOnError>) => (options.client ?? client).post<KitchenSinkBulkCompanyResponses, KitchenSinkBulkCompanyErrors, ThrowOnError>({\n url: '/v1/kitchen-sink/bulk/company',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Company/School/Investor Typeahead\n *\n * Search for companies, schools/universities, and investors by name. Supports partial inputs, which can enable typeaheads in your UI.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const companyTypeahead = <ThrowOnError extends boolean = false>(options: Options<CompanyTypeaheadData, ThrowOnError>) => (options.client ?? client).post<CompanyTypeaheadResponses, CompanyTypeaheadErrors, ThrowOnError>({\n url: '/v1/typeahead/company',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Location typeahead\n *\n * Get the latitude/longitude of a given city, including prefixes (e.g. 'san fr'). This makes it good for typeaheads in your UI.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const locationTypeahead = <ThrowOnError extends boolean = false>(options: Options<LocationTypeaheadData, ThrowOnError>) => (options.client ?? client).post<LocationTypeaheadResponses, LocationTypeaheadErrors, ThrowOnError>({\n url: '/v1/typeahead/location',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Validate a single email\n *\n * Checks if a given email is likely to bounce using a waterfall of strategies. Works for catch-all email addresses, which are increasingly common yet hard for other APIs to validate.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 1 credit per email validation <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const emailBounceDetection = <ThrowOnError extends boolean = false>(options: Options<EmailBounceDetectionData, ThrowOnError>) => (options.client ?? client).post<EmailBounceDetectionResponses, EmailBounceDetectionErrors, ThrowOnError>({\n url: '/v1/validate-email/single',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Convert text into company search filters\n *\n * Takes free-form text (e.g., 'Series A startups in USA with 50β200 employees') and converts it into a structured set of filters for company search. This endpoint helps transform natural language queries into standardized search parameters such as industries, funding stages, headcount ranges, locations, and more.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const textToCompanySearchParams = <ThrowOnError extends boolean = false>(options: Options<TextToCompanySearchParamsData, ThrowOnError>) => (options.client ?? client).post<TextToCompanySearchParamsResponses, TextToCompanySearchParamsErrors, ThrowOnError>({\n url: '/v1/text-to-search-params/companies',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Search companies from text\n *\n * Takes free-form text (e.g., 'Series A startups in USA with 50β200 employees') and returns a list of matching companies. The endpoint interprets natural language queries and applies structured filters such as industries, funding stages, headcount ranges, and locations to identify relevant companies.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per request + 1 credit per company found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const textToCompanySearch = <ThrowOnError extends boolean = false>(options: Options<TextToCompanySearchData, ThrowOnError>) => (options.client ?? client).post<TextToCompanySearchResponses, TextToCompanySearchErrors, ThrowOnError>({\n url: '/v1/natural-language-search/companies',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Convert text into profile search filters\n *\n * Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and converts it into a structured set of filters for profile search. This endpoint helps transform natural language queries into standardized search parameters such as job titles, skills, seniority, locations, past experiences, education, languages, and more.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per request <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const textToProfileSearchParams = <ThrowOnError extends boolean = false>(options: Options<TextToProfileSearchParamsData, ThrowOnError>) => (options.client ?? client).post<TextToProfileSearchParamsResponses, TextToProfileSearchParamsErrors, ThrowOnError>({\n url: '/v1/text-to-search-params/profiles',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Search profiles from text\n *\n * Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and returns a list of matching profiles. The endpoint interprets natural language queries and applies structured filters such as job titles, seniority, skills, locations, past jobs, education, and languages to identify relevant people.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per request + 1 credit per profile found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const textToProfileSearch = <ThrowOnError extends boolean = false>(options: Options<TextToProfileSearchData, ThrowOnError>) => (options.client ?? client).post<TextToProfileSearchResponses, TextToProfileSearchErrors, ThrowOnError>({\n url: '/v1/natural-language-search/profiles',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Search companies and prospects from text\n *\n * Takes free-form text (e.g., 'Senior Product Managers from Series A to C FinTech startups in New York') and produces standardized filters (industries, funding stages, headcount ranges, locations, titles, seniorities, etc.). When limits are provided, executes the search and returns matching companies and people in a single synchronous call.\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Fixed costs per request:<br />β’ 2 credits for company search params generation based on prompt, if required<br />β’ 2 credits for profile search params generation based on prompt, if required<br /><br />Additional credits are charged for each company and profile returned, based on the search results. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const textToCombinedSearch = <ThrowOnError extends boolean = false>(options: Options<TextToCombinedSearchData, ThrowOnError>) => (options.client ?? client).post<TextToCombinedSearchResponses, TextToCombinedSearchErrors, ThrowOnError>({\n url: '/v1/natural-language-search/combined/sync',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create saved search\n *\n * Create a new saved search. Given search params, it automatically re-runs it periodically and tells you which new people and/or companies fit your parameters over time (and also who drops out or returns). You are charged for each new prospect or company we find, depending on your desired type. You can also manually run the saved search if you don't want to wait for the next auto-run.\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per prospect/company found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const createSavedSearch = <ThrowOnError extends boolean = false>(options: Options<CreateSavedSearchData, ThrowOnError>) => (options.client ?? client).post<CreateSavedSearchResponses, CreateSavedSearchErrors, ThrowOnError>({\n url: '/v1/saved-search/create',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get saved search run\n *\n * Get all details for a specific saved search run\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getSavedSearchRun = <ThrowOnError extends boolean = false>(options: Options<GetSavedSearchRunData, ThrowOnError>) => (options.client ?? client).post<GetSavedSearchRunResponses, GetSavedSearchRunErrors, ThrowOnError>({\n url: '/v1/saved-search/run/get',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Manually spawn saved search run\n *\n * Manually spawn a new saved search run\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 2 credits per prospect/company found <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const manuallySpawnSavedSearchRun = <ThrowOnError extends boolean = false>(options: Options<ManuallySpawnSavedSearchRunData, ThrowOnError>) => (options.client ?? client).post<ManuallySpawnSavedSearchRunResponses, ManuallySpawnSavedSearchRunErrors, ThrowOnError>({\n url: '/v1/saved-search/spawn',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update saved search\n *\n * Update a saved search\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const updateSavedSearch = <ThrowOnError extends boolean = false>(options: Options<UpdateSavedSearchData, ThrowOnError>) => (options.client ?? client).post<UpdateSavedSearchResponses, UpdateSavedSearchErrors, ThrowOnError>({\n url: '/v1/saved-search/update',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List saved search runs\n *\n * List saved search runs\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const listSavedSearchRuns = <ThrowOnError extends boolean = false>(options: Options<ListSavedSearchRunsData, ThrowOnError>) => (options.client ?? client).post<ListSavedSearchRunsResponses, ListSavedSearchRunsErrors, ThrowOnError>({\n url: '/v1/saved-search/run/list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List saved searches\n *\n * List saved searches\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const listSavedSearch = <ThrowOnError extends boolean = false>(options: Options<ListSavedSearchData, ThrowOnError>) => (options.client ?? client).post<ListSavedSearchResponses, ListSavedSearchErrors, ThrowOnError>({\n url: '/v1/saved-search/list',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get saved search run status\n *\n * Returns the execution status and metadata for a saved search run, including start time, completion time (if finished), and current status (NOT_STARTED, PROCESSING, COMPLETED, or FAILED)\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getSavedSearchRunStatus = <ThrowOnError extends boolean = false>(options: Options<GetSavedSearchRunStatusData, ThrowOnError>) => (options.client ?? client).post<GetSavedSearchRunStatusResponses, GetSavedSearchRunStatusErrors, ThrowOnError>({\n url: '/v1/saved-search/run/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get current profiles in saved search\n *\n * Get current profiles found for a specific saved search\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getCurrentProfilesInSavedSearch = <ThrowOnError extends boolean = false>(options: Options<GetCurrentProfilesInSavedSearchData, ThrowOnError>) => (options.client ?? client).post<GetCurrentProfilesInSavedSearchResponses, GetCurrentProfilesInSavedSearchErrors, ThrowOnError>({\n url: '/v1/saved-search/current/profiles',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get current companies in saved search\n *\n * Get current companies found for a specific saved search\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getCurrentCompaniesInSavedSearch = <ThrowOnError extends boolean = false>(options: Options<GetCurrentCompaniesInSavedSearchData, ThrowOnError>) => (options.client ?? client).post<GetCurrentCompaniesInSavedSearchResponses, GetCurrentCompaniesInSavedSearchErrors, ThrowOnError>({\n url: '/v1/saved-search/current/companies',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get saved search run profiles\n *\n * Get the profiles found for a specific saved search run\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getSavedSearchRunProfiles = <ThrowOnError extends boolean = false>(options: Options<GetSavedSearchRunProfilesData, ThrowOnError>) => (options.client ?? client).post<GetSavedSearchRunProfilesResponses, GetSavedSearchRunProfilesErrors, ThrowOnError>({\n url: '/v1/saved-search/run/profiles',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get saved search run companies\n *\n * Get the companies found for a specific saved search run\n *\n * <span>β‘ <strong>Rate limit:</strong> 20 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getSavedSearchRunCompanies = <ThrowOnError extends boolean = false>(options: Options<GetSavedSearchRunCompaniesData, ThrowOnError>) => (options.client ?? client).post<GetSavedSearchRunCompaniesResponses, GetSavedSearchRunCompaniesErrors, ThrowOnError>({\n url: '/v1/saved-search/run/companies',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get latest saved search run\n *\n * Get the latest saved search run for a specific saved search\n *\n * <span>β‘ <strong>Rate limit:</strong> 60 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> FREE! No credits are charged for this API. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const getLatestSavedSearchRun = <ThrowOnError extends boolean = false>(options: Options<GetLatestSavedSearchRunData, ThrowOnError>) => (options.client ?? client).post<GetLatestSavedSearchRunResponses, GetLatestSavedSearchRunErrors, ThrowOnError>({\n url: '/v1/saved-search/run/get-latest',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Start local business search\n *\n * Coming Soon! Start a local business search task\n *\n * <span>β‘ <strong>Rate limit:</strong> 10 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> Pricing is coming soon. Credits will be charged once this feature is fully released. <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const startLocalBusinessSearch = <ThrowOnError extends boolean = false>(options: Options<StartLocalBusinessSearchData, ThrowOnError>) => (options.client ?? client).post<StartLocalBusinessSearchResponses, StartLocalBusinessSearchErrors, ThrowOnError>({\n url: '/v1/local-business-search/start',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Start Domain lookup\n *\n * Use our AI agent to find a company's domain and email domains using a variety of parameters such as company name, country, state, city, address, other context, and description. NOTE: Maximum 2000 companies can be provided at a time. Estimated time to complete 600 companies is an hour.\n *\n * <span>β‘ <strong>Rate limit:</strong> 5 requests per 1 minute</span>\n *\n * <span>π° <strong>Cost:</strong> 3 credits per company <span title=\"Pricing shown is default pricing. Actual pricing may vary.\">β</span></span>\n */\nexport const domainLookupTrigger = <ThrowOnError extends boolean = false>(options: Options<DomainLookupTriggerData, ThrowOnError>) => (options.client ?? client).post<DomainLookupTriggerResponses, DomainLookupTriggerErrors, ThrowOnError>({\n url: '/v1/domain-lookup/trigger',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n"],"mappings":"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","names":["joinedValues","config","request","error","finalError","url"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fiberai/sdk",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Official TypeScript SDK for Fiber AI API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/index.d.cts",
|
|
17
|
+
"default": "./dist/index.cjs"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"generate": "openapi-ts",
|
|
26
|
+
"build": "tsup",
|
|
27
|
+
"prepublishOnly": "npm run generate && npm run build",
|
|
28
|
+
"lint": "eslint src --ext .ts",
|
|
29
|
+
"typecheck": "tsc --noEmit"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"fiberai",
|
|
33
|
+
"fiber",
|
|
34
|
+
"sdk",
|
|
35
|
+
"api",
|
|
36
|
+
"typescript",
|
|
37
|
+
"sales",
|
|
38
|
+
"enrichment",
|
|
39
|
+
"prospecting"
|
|
40
|
+
],
|
|
41
|
+
"author": "Fiber AI",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "https://github.com/fiber-ai/typescript-sdk.git"
|
|
46
|
+
},
|
|
47
|
+
"homepage": "https://fiber.ai",
|
|
48
|
+
"bugs": {
|
|
49
|
+
"url": "https://github.com/fiber-ai/typescript-sdk/issues"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@hey-api/openapi-ts": "^0.90.4",
|
|
53
|
+
"@types/node": "^24.10.9",
|
|
54
|
+
"eslint": "^9.0.0",
|
|
55
|
+
"tsup": "^8.0.0",
|
|
56
|
+
"typescript": "^5.5.0"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"zod": "^4.3.5"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"typescript": ">=5.0.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"typescript": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": ">=18.0.0"
|
|
71
|
+
}
|
|
72
|
+
}
|