@land-catalyst/batch-data-sdk 1.1.12
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 +22 -0
- package/README.md +1032 -0
- package/dist/builders.d.ts +821 -0
- package/dist/builders.js +2622 -0
- package/dist/client.d.ts +435 -0
- package/dist/client.interface.d.ts +210 -0
- package/dist/client.interface.js +2 -0
- package/dist/client.js +757 -0
- package/dist/errors.d.ts +10 -0
- package/dist/errors.js +19 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +28 -0
- package/dist/logger.interface.d.ts +19 -0
- package/dist/logger.interface.js +47 -0
- package/dist/types.d.ts +1738 -0
- package/dist/types.js +9 -0
- package/package.json +62 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import { AxiosInstance, AxiosResponse, AxiosError, InternalAxiosRequestConfig } from "axios";
|
|
2
|
+
import { IBatchDataClient } from "./client.interface";
|
|
3
|
+
import { ILogger } from "./logger.interface";
|
|
4
|
+
import { PropertySubscriptionRequest, PropertySubscriptionResponse, PropertySearchRequest, PropertySearchResponse, AddressVerifyRequest, AddressVerifyResponse, AddressAutocompleteRequest, AddressAutocompleteResponse, AddressGeocodeRequest, AddressGeocodeResponse, AddressReverseGeocodeRequest, AddressReverseGeocodeResponse, PropertyLookupRequest, PropertyLookupResponse, PropertyLookupAsyncRequest, PropertyLookupAsyncResponse, PropertySearchAsyncRequest, PropertySearchAsyncResponse, PropertySkipTraceRequest, PropertySkipTraceResponse, PropertySkipTraceAsyncRequest, PropertySkipTraceAsyncResponse, PhoneVerificationRequest, PhoneVerificationResponse, PhoneVerificationAsyncRequest, PhoneVerificationAsyncResponse, PhoneDNCRequest, PhoneDNCResponse, PhoneDNCAsyncRequest, PhoneDNCAsyncResponse, PhoneTCPARequest, PhoneTCPAResponse, PhoneTCPAAsyncRequest, PhoneTCPAAsyncResponse, GetPropertySubscriptionsResponse, GetPropertySubscriptionDetailResponse, DeletePropertySubscriptionResponse, PropertyPermitRequest, PropertyPermitResponse, PropertySkipTraceV3Request, PropertySkipTraceV3Response, PropertySkipTraceV3AsyncRequest, PropertySkipTraceV3AsyncResponse } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Middleware function that executes before an HTTP request is sent.
|
|
7
|
+
* Can modify the request config or perform side effects (logging, metrics, etc.).
|
|
8
|
+
*
|
|
9
|
+
* @param config The axios request configuration
|
|
10
|
+
* @returns The (potentially modified) request configuration, or a Promise that resolves to it
|
|
11
|
+
*/
|
|
12
|
+
export type RequestMiddleware = (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;
|
|
13
|
+
/**
|
|
14
|
+
* Middleware function that executes after an HTTP response is received.
|
|
15
|
+
* Can modify the response or perform side effects (logging, metrics, etc.).
|
|
16
|
+
*
|
|
17
|
+
* @param response The axios response
|
|
18
|
+
* @returns The (potentially modified) response, or a Promise that resolves to it
|
|
19
|
+
*/
|
|
20
|
+
export type ResponseMiddleware = (response: AxiosResponse) => AxiosResponse | Promise<AxiosResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* Middleware function that executes when an HTTP request fails.
|
|
23
|
+
* Can handle errors, transform them, or perform side effects.
|
|
24
|
+
*
|
|
25
|
+
* @param error The axios error
|
|
26
|
+
* @returns A rejected Promise (to propagate the error) or a resolved Promise with a response (to recover from the error)
|
|
27
|
+
*/
|
|
28
|
+
export type ErrorMiddleware = (error: AxiosError) => Promise<AxiosResponse | AxiosError> | AxiosResponse | AxiosError;
|
|
29
|
+
/**
|
|
30
|
+
* HTTP Middleware configuration
|
|
31
|
+
*/
|
|
32
|
+
export interface HttpMiddleware {
|
|
33
|
+
/**
|
|
34
|
+
* Middleware functions to execute before requests are sent
|
|
35
|
+
*/
|
|
36
|
+
onRequest?: RequestMiddleware[];
|
|
37
|
+
/**
|
|
38
|
+
* Middleware functions to execute after successful responses
|
|
39
|
+
*/
|
|
40
|
+
onResponse?: ResponseMiddleware[];
|
|
41
|
+
/**
|
|
42
|
+
* Middleware functions to execute when requests fail
|
|
43
|
+
*/
|
|
44
|
+
onError?: ErrorMiddleware[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Webhook URLs for a single async endpoint
|
|
48
|
+
*/
|
|
49
|
+
export interface AsyncWebhookUrls {
|
|
50
|
+
/**
|
|
51
|
+
* Webhook URL for successful responses
|
|
52
|
+
*/
|
|
53
|
+
url: string;
|
|
54
|
+
/**
|
|
55
|
+
* Optional webhook URL for error responses
|
|
56
|
+
*/
|
|
57
|
+
errorUrl?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Webhook URL configuration for async API requests
|
|
61
|
+
* Allows specifying webhook URLs per endpoint type, with fallback to defaults
|
|
62
|
+
*/
|
|
63
|
+
export interface AsyncWebhookConfiguration {
|
|
64
|
+
/**
|
|
65
|
+
* Default webhook URLs used as fallback for all async endpoints
|
|
66
|
+
*/
|
|
67
|
+
default?: AsyncWebhookUrls;
|
|
68
|
+
/**
|
|
69
|
+
* Webhook URLs for property lookup async requests
|
|
70
|
+
*/
|
|
71
|
+
propertyLookup?: AsyncWebhookUrls;
|
|
72
|
+
/**
|
|
73
|
+
* Webhook URLs for property search async requests
|
|
74
|
+
*/
|
|
75
|
+
propertySearch?: AsyncWebhookUrls;
|
|
76
|
+
/**
|
|
77
|
+
* Webhook URLs for skip trace async requests (v1)
|
|
78
|
+
*/
|
|
79
|
+
skipTrace?: AsyncWebhookUrls;
|
|
80
|
+
/**
|
|
81
|
+
* Webhook URLs for skip trace async requests (v3)
|
|
82
|
+
*/
|
|
83
|
+
skipTraceV3?: AsyncWebhookUrls;
|
|
84
|
+
/**
|
|
85
|
+
* Webhook URLs for phone verification async requests
|
|
86
|
+
*/
|
|
87
|
+
phoneVerification?: AsyncWebhookUrls;
|
|
88
|
+
/**
|
|
89
|
+
* Webhook URLs for phone DNC async requests
|
|
90
|
+
*/
|
|
91
|
+
phoneDNC?: AsyncWebhookUrls;
|
|
92
|
+
/**
|
|
93
|
+
* Webhook URLs for phone TCPA async requests
|
|
94
|
+
*/
|
|
95
|
+
phoneTCPA?: AsyncWebhookUrls;
|
|
96
|
+
/**
|
|
97
|
+
* Webhook URLs for property subscription requests
|
|
98
|
+
*/
|
|
99
|
+
propertySubscription?: AsyncWebhookUrls;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* BatchData API Client Options
|
|
103
|
+
*/
|
|
104
|
+
export interface BatchDataClientOptions {
|
|
105
|
+
/**
|
|
106
|
+
* BatchData API key (required)
|
|
107
|
+
*/
|
|
108
|
+
apiKey: string;
|
|
109
|
+
/**
|
|
110
|
+
* Optional logger implementation (defaults to ConsoleLogger)
|
|
111
|
+
*/
|
|
112
|
+
logger?: ILogger;
|
|
113
|
+
/**
|
|
114
|
+
* Optional timeout in milliseconds (defaults to 30000)
|
|
115
|
+
*/
|
|
116
|
+
timeout?: number;
|
|
117
|
+
/**
|
|
118
|
+
* Optional base URLs (for testing or custom endpoints)
|
|
119
|
+
*/
|
|
120
|
+
v1BaseUrl?: string;
|
|
121
|
+
v2BaseUrl?: string;
|
|
122
|
+
v3BaseUrl?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Optional HTTP middleware for intercepting requests and responses
|
|
125
|
+
*/
|
|
126
|
+
middleware?: HttpMiddleware;
|
|
127
|
+
/**
|
|
128
|
+
* Optional webhook URL configuration for async requests
|
|
129
|
+
* Allows specifying webhook URLs per endpoint type, with fallback to defaults
|
|
130
|
+
*/
|
|
131
|
+
webhooks?: AsyncWebhookConfiguration;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* BatchData API Client
|
|
135
|
+
*
|
|
136
|
+
* Pure API client that makes HTTP calls to BatchData.io endpoints.
|
|
137
|
+
* No business logic - just handles HTTP communication with the API.
|
|
138
|
+
*/
|
|
139
|
+
export declare class BatchDataClient implements IBatchDataClient {
|
|
140
|
+
protected readonly v1BaseUrl: string;
|
|
141
|
+
protected readonly v2BaseUrl: string;
|
|
142
|
+
protected readonly v3BaseUrl: string;
|
|
143
|
+
protected readonly axiosInstance: AxiosInstance;
|
|
144
|
+
protected readonly logger: ILogger;
|
|
145
|
+
private readonly webhooks?;
|
|
146
|
+
constructor(options: BatchDataClientOptions);
|
|
147
|
+
/**
|
|
148
|
+
* Set up axios interceptors from middleware configuration
|
|
149
|
+
* @param middleware The middleware configuration
|
|
150
|
+
*/
|
|
151
|
+
protected setupMiddleware(middleware: HttpMiddleware): void;
|
|
152
|
+
/**
|
|
153
|
+
* Apply default webhook URLs to an async request if they're not already set.
|
|
154
|
+
* This helper ensures that if webhook URLs are configured in the client,
|
|
155
|
+
* they will be used for async requests that don't explicitly specify webhook URLs.
|
|
156
|
+
*
|
|
157
|
+
* @param request The async request to modify
|
|
158
|
+
* @param endpointType The type of async endpoint (e.g., 'propertyLookup', 'propertySearch')
|
|
159
|
+
* @returns The request with webhook URLs applied (if needed)
|
|
160
|
+
*/
|
|
161
|
+
private applyDefaultWebhookUrls;
|
|
162
|
+
/**
|
|
163
|
+
* Apply default webhook URLs to a property subscription request if they're not already set.
|
|
164
|
+
* This helper ensures that if webhook URLs are configured in the client,
|
|
165
|
+
* they will be used for property subscriptions that don't explicitly specify webhook URLs.
|
|
166
|
+
*
|
|
167
|
+
* @param request The property subscription request to modify
|
|
168
|
+
* @returns The request with webhook URLs applied (if needed)
|
|
169
|
+
*/
|
|
170
|
+
private applyPropertySubscriptionWebhooks;
|
|
171
|
+
/**
|
|
172
|
+
* Add a request middleware function that executes before requests are sent.
|
|
173
|
+
* Useful for adding headers, logging, metrics, etc.
|
|
174
|
+
*
|
|
175
|
+
* @param middleware The middleware function
|
|
176
|
+
* @returns The interceptor ID (can be used to remove the interceptor later)
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* const client = new BatchDataClient({ apiKey: "..." });
|
|
181
|
+
* client.addRequestMiddleware((config) => {
|
|
182
|
+
* console.log(`Making request to ${config.url}`);
|
|
183
|
+
* config.headers["X-Custom-Header"] = "value";
|
|
184
|
+
* return config;
|
|
185
|
+
* });
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
addRequestMiddleware(middleware: RequestMiddleware): number;
|
|
189
|
+
/**
|
|
190
|
+
* Add a response middleware function that executes after successful responses.
|
|
191
|
+
* Useful for logging, metrics, response transformation, etc.
|
|
192
|
+
*
|
|
193
|
+
* @param middleware The middleware function
|
|
194
|
+
* @returns The interceptor ID (can be used to remove the interceptor later)
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* const client = new BatchDataClient({ apiKey: "..." });
|
|
199
|
+
* client.addResponseMiddleware((response) => {
|
|
200
|
+
* console.log(`Received response: ${response.status}`);
|
|
201
|
+
* return response;
|
|
202
|
+
* });
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
addResponseMiddleware(middleware: ResponseMiddleware): number;
|
|
206
|
+
/**
|
|
207
|
+
* Add an error middleware function that executes when requests fail.
|
|
208
|
+
* Useful for error handling, retry logic, error transformation, etc.
|
|
209
|
+
*
|
|
210
|
+
* @param middleware The middleware function
|
|
211
|
+
* @returns The interceptor ID (can be used to remove the interceptor later)
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const client = new BatchDataClient({ apiKey: "..." });
|
|
216
|
+
* client.addErrorMiddleware(async (error) => {
|
|
217
|
+
* if (error.response?.status === 429) {
|
|
218
|
+
* // Retry logic here
|
|
219
|
+
* }
|
|
220
|
+
* throw error; // Re-throw to propagate
|
|
221
|
+
* });
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
addErrorMiddleware(middleware: ErrorMiddleware): number;
|
|
225
|
+
/**
|
|
226
|
+
* Remove a request interceptor by ID
|
|
227
|
+
* @param id The interceptor ID returned from addRequestMiddleware
|
|
228
|
+
*/
|
|
229
|
+
removeRequestMiddleware(id: number): void;
|
|
230
|
+
/**
|
|
231
|
+
* Remove a response interceptor by ID
|
|
232
|
+
* @param id The interceptor ID returned from addResponseMiddleware or addErrorMiddleware
|
|
233
|
+
*/
|
|
234
|
+
removeResponseMiddleware(id: number): void;
|
|
235
|
+
/**
|
|
236
|
+
* Wrapper for axios calls that handles error logging consistently
|
|
237
|
+
* @param axiosCall The axios call to execute
|
|
238
|
+
* @param errorMessagePrefix Prefix for the error message (e.g., "Failed to search properties")
|
|
239
|
+
* @param url The URL being called (for error details)
|
|
240
|
+
* @returns Object containing the response data and status
|
|
241
|
+
*/
|
|
242
|
+
private handleApiCall;
|
|
243
|
+
/**
|
|
244
|
+
* Create a property subscription (v2 API)
|
|
245
|
+
* POST /api/v2/property-subscription
|
|
246
|
+
*/
|
|
247
|
+
createPropertySubscription(request: PropertySubscriptionRequest): Promise<PropertySubscriptionResponse>;
|
|
248
|
+
/**
|
|
249
|
+
* Search for properties (v1 API)
|
|
250
|
+
* POST /api/v1/property/search
|
|
251
|
+
*
|
|
252
|
+
* @param searchCriteria Search criteria
|
|
253
|
+
* @param options Request options
|
|
254
|
+
* @param options.take Number of properties to return (0 for count-only)
|
|
255
|
+
* @param options.skip Number of properties to skip for pagination
|
|
256
|
+
* @returns Property search API response
|
|
257
|
+
*/
|
|
258
|
+
searchProperties(request: PropertySearchRequest): Promise<PropertySearchResponse>;
|
|
259
|
+
/**
|
|
260
|
+
* Get the count of properties matching the search criteria
|
|
261
|
+
* @param searchCriteria Search criteria to match properties
|
|
262
|
+
* @returns Number of matching properties, or null if the endpoint is unavailable
|
|
263
|
+
*/
|
|
264
|
+
getPropertyCount(searchRequest: PropertySearchRequest): Promise<number | null>;
|
|
265
|
+
/**
|
|
266
|
+
* Verify and normalize addresses (v1 API)
|
|
267
|
+
* POST /api/v1/address/verify
|
|
268
|
+
*
|
|
269
|
+
* @param request Address verification request
|
|
270
|
+
* @returns Address verification API response
|
|
271
|
+
*/
|
|
272
|
+
verifyAddress(request: AddressVerifyRequest): Promise<AddressVerifyResponse>;
|
|
273
|
+
/**
|
|
274
|
+
* Get address autocomplete suggestions (v1 API)
|
|
275
|
+
* POST /api/v1/address/autocomplete
|
|
276
|
+
*
|
|
277
|
+
* Note: This endpoint requires a Referer header per API documentation.
|
|
278
|
+
* For server-side usage, a default Referer is set.
|
|
279
|
+
*
|
|
280
|
+
* @param request Address autocomplete request
|
|
281
|
+
* @returns Address autocomplete API response
|
|
282
|
+
*/
|
|
283
|
+
autocompleteAddress(request: AddressAutocompleteRequest): Promise<AddressAutocompleteResponse>;
|
|
284
|
+
/**
|
|
285
|
+
* Geocode an address to coordinates (v1 API)
|
|
286
|
+
* POST /api/v1/address/geocode
|
|
287
|
+
*
|
|
288
|
+
* @param request Address geocode request
|
|
289
|
+
* @returns Address geocode API response
|
|
290
|
+
*/
|
|
291
|
+
geocodeAddress(request: AddressGeocodeRequest): Promise<AddressGeocodeResponse>;
|
|
292
|
+
/**
|
|
293
|
+
* Reverse geocode coordinates to an address (v1 API)
|
|
294
|
+
* POST /api/v1/address/reverse-geocode
|
|
295
|
+
*
|
|
296
|
+
* @param request Address reverse geocode request
|
|
297
|
+
* @returns Address reverse geocode API response
|
|
298
|
+
*/
|
|
299
|
+
reverseGeocodeAddress(request: AddressReverseGeocodeRequest): Promise<AddressReverseGeocodeResponse>;
|
|
300
|
+
/**
|
|
301
|
+
* Lookup property details by address, propertyId, hash, or APN (v1 API)
|
|
302
|
+
* POST /api/v1/property/lookup/all-attributes
|
|
303
|
+
*
|
|
304
|
+
* @param request Property lookup request
|
|
305
|
+
* @returns Property lookup API response
|
|
306
|
+
*/
|
|
307
|
+
lookupProperty(request: PropertyLookupRequest): Promise<PropertyLookupResponse>;
|
|
308
|
+
/**
|
|
309
|
+
* Lookup property details asynchronously (v1 API)
|
|
310
|
+
* POST /api/v1/property/lookup/async
|
|
311
|
+
*
|
|
312
|
+
* @param request Property lookup async request
|
|
313
|
+
* @returns Property lookup async API response
|
|
314
|
+
*/
|
|
315
|
+
lookupPropertyAsync(request: PropertyLookupAsyncRequest): Promise<PropertyLookupAsyncResponse>;
|
|
316
|
+
/**
|
|
317
|
+
* Search for properties asynchronously (v1 API)
|
|
318
|
+
* POST /api/v1/property/search/async
|
|
319
|
+
*
|
|
320
|
+
* @param request Property search async request
|
|
321
|
+
* @returns Property search async API response
|
|
322
|
+
*/
|
|
323
|
+
searchPropertiesAsync(request: PropertySearchAsyncRequest): Promise<PropertySearchAsyncResponse>;
|
|
324
|
+
/**
|
|
325
|
+
* Skip trace property owners (v1 API)
|
|
326
|
+
* POST /api/v1/property/skip-trace
|
|
327
|
+
*
|
|
328
|
+
* @param request Property skip trace request
|
|
329
|
+
* @returns Property skip trace API response
|
|
330
|
+
*/
|
|
331
|
+
skipTraceProperty(request: PropertySkipTraceRequest): Promise<PropertySkipTraceResponse>;
|
|
332
|
+
/**
|
|
333
|
+
* Skip trace property owners asynchronously (v1 API)
|
|
334
|
+
* POST /api/v1/property/skip-trace/async
|
|
335
|
+
*
|
|
336
|
+
* @param request Property skip trace async request
|
|
337
|
+
* @returns Property skip trace async API response
|
|
338
|
+
*/
|
|
339
|
+
skipTracePropertyAsync(request: PropertySkipTraceAsyncRequest): Promise<PropertySkipTraceAsyncResponse>;
|
|
340
|
+
/**
|
|
341
|
+
* Verify phone numbers (v1 API)
|
|
342
|
+
* POST /api/v1/phone/verification
|
|
343
|
+
*
|
|
344
|
+
* @param request Phone verification request
|
|
345
|
+
* @returns Phone verification API response
|
|
346
|
+
*/
|
|
347
|
+
verifyPhone(request: PhoneVerificationRequest): Promise<PhoneVerificationResponse>;
|
|
348
|
+
/**
|
|
349
|
+
* Verify phone numbers asynchronously (v1 API)
|
|
350
|
+
* POST /api/v1/phone/verification/async
|
|
351
|
+
*
|
|
352
|
+
* @param request Phone verification async request
|
|
353
|
+
* @returns Phone verification async API response
|
|
354
|
+
*/
|
|
355
|
+
verifyPhoneAsync(request: PhoneVerificationAsyncRequest): Promise<PhoneVerificationAsyncResponse>;
|
|
356
|
+
/**
|
|
357
|
+
* Check phone numbers against DNC (Do Not Call) list (v1 API)
|
|
358
|
+
* POST /api/v1/phone/dnc
|
|
359
|
+
*
|
|
360
|
+
* @param request Phone DNC request
|
|
361
|
+
* @returns Phone DNC API response
|
|
362
|
+
*/
|
|
363
|
+
checkPhoneDNC(request: PhoneDNCRequest): Promise<PhoneDNCResponse>;
|
|
364
|
+
/**
|
|
365
|
+
* Check phone numbers against DNC list asynchronously (v1 API)
|
|
366
|
+
* POST /api/v1/phone/dnc/async
|
|
367
|
+
*
|
|
368
|
+
* @param request Phone DNC async request
|
|
369
|
+
* @returns Phone DNC async API response
|
|
370
|
+
*/
|
|
371
|
+
checkPhoneDNCAsync(request: PhoneDNCAsyncRequest): Promise<PhoneDNCAsyncResponse>;
|
|
372
|
+
/**
|
|
373
|
+
* Check phone numbers for TCPA compliance (v1 API)
|
|
374
|
+
* POST /api/v1/phone/tcpa
|
|
375
|
+
*
|
|
376
|
+
* @param request Phone TCPA request
|
|
377
|
+
* @returns Phone TCPA API response
|
|
378
|
+
*/
|
|
379
|
+
checkPhoneTCPA(request: PhoneTCPARequest): Promise<PhoneTCPAResponse>;
|
|
380
|
+
/**
|
|
381
|
+
* Check phone numbers for TCPA compliance asynchronously (v1 API)
|
|
382
|
+
* POST /api/v1/phone/tcpa/async
|
|
383
|
+
*
|
|
384
|
+
* @param request Phone TCPA async request
|
|
385
|
+
* @returns Phone TCPA async API response
|
|
386
|
+
*/
|
|
387
|
+
checkPhoneTCPAAsync(request: PhoneTCPAAsyncRequest): Promise<PhoneTCPAAsyncResponse>;
|
|
388
|
+
/**
|
|
389
|
+
* Get all property subscriptions (v2 API)
|
|
390
|
+
* GET /api/v2/property-subscription
|
|
391
|
+
*
|
|
392
|
+
* @returns Array of property subscriptions
|
|
393
|
+
*/
|
|
394
|
+
getPropertySubscriptions(): Promise<GetPropertySubscriptionsResponse>;
|
|
395
|
+
/**
|
|
396
|
+
* Get property subscription by ID (v2 API)
|
|
397
|
+
* GET /api/v2/property-subscription/{id}
|
|
398
|
+
*
|
|
399
|
+
* @param id Subscription ID
|
|
400
|
+
* @returns Property subscription detail
|
|
401
|
+
*/
|
|
402
|
+
getPropertySubscription(id: string): Promise<GetPropertySubscriptionDetailResponse>;
|
|
403
|
+
/**
|
|
404
|
+
* Delete property subscription (v2 API)
|
|
405
|
+
* DELETE /api/v2/property-subscription/{id}
|
|
406
|
+
*
|
|
407
|
+
* @param id Subscription ID
|
|
408
|
+
* @returns Delete response
|
|
409
|
+
*/
|
|
410
|
+
deletePropertySubscription(id: string): Promise<DeletePropertySubscriptionResponse>;
|
|
411
|
+
/**
|
|
412
|
+
* Get property permits (v2 API)
|
|
413
|
+
* POST /api/v2/property/get-property-permits
|
|
414
|
+
*
|
|
415
|
+
* @param request Property permit request
|
|
416
|
+
* @returns Property permit API response
|
|
417
|
+
*/
|
|
418
|
+
getPropertyPermit(request: PropertyPermitRequest): Promise<PropertyPermitResponse>;
|
|
419
|
+
/**
|
|
420
|
+
* Skip trace property owners (v3 API)
|
|
421
|
+
* POST /api/v3/property/skip-trace
|
|
422
|
+
*
|
|
423
|
+
* @param request Property skip trace v3 request
|
|
424
|
+
* @returns Property skip trace v3 API response
|
|
425
|
+
*/
|
|
426
|
+
skipTracePropertyV3(request: PropertySkipTraceV3Request): Promise<PropertySkipTraceV3Response>;
|
|
427
|
+
/**
|
|
428
|
+
* Skip trace property owners asynchronously (v3 API)
|
|
429
|
+
* POST /api/v3/property/skip-trace/async
|
|
430
|
+
*
|
|
431
|
+
* @param request Property skip trace v3 async request
|
|
432
|
+
* @returns Property skip trace v3 async API response
|
|
433
|
+
*/
|
|
434
|
+
skipTracePropertyV3Async(request: PropertySkipTraceV3AsyncRequest): Promise<PropertySkipTraceV3AsyncResponse>;
|
|
435
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { PropertySubscriptionRequest, PropertySubscriptionResponse, PropertySearchRequest, PropertySearchResponse, AddressVerifyRequest, AddressVerifyResponse, AddressAutocompleteRequest, AddressAutocompleteResponse, AddressGeocodeRequest, AddressGeocodeResponse, AddressReverseGeocodeRequest, AddressReverseGeocodeResponse, PropertyLookupRequest, PropertyLookupResponse, PropertyLookupAsyncRequest, PropertyLookupAsyncResponse, PropertySearchAsyncRequest, PropertySearchAsyncResponse, PropertySkipTraceRequest, PropertySkipTraceResponse, PropertySkipTraceAsyncRequest, PropertySkipTraceAsyncResponse, PhoneVerificationRequest, PhoneVerificationResponse, PhoneVerificationAsyncRequest, PhoneVerificationAsyncResponse, PhoneDNCRequest, PhoneDNCResponse, PhoneDNCAsyncRequest, PhoneDNCAsyncResponse, PhoneTCPARequest, PhoneTCPAResponse, PhoneTCPAAsyncRequest, PhoneTCPAAsyncResponse, GetPropertySubscriptionsResponse, GetPropertySubscriptionDetailResponse, DeletePropertySubscriptionResponse, PropertyPermitRequest, PropertyPermitResponse, PropertySkipTraceV3Request, PropertySkipTraceV3Response, PropertySkipTraceV3AsyncRequest, PropertySkipTraceV3AsyncResponse } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* BatchData API Client Interface
|
|
4
|
+
*
|
|
5
|
+
* Pure API client that makes HTTP calls to BatchData.io endpoints.
|
|
6
|
+
* No business logic - just API communication.
|
|
7
|
+
*/
|
|
8
|
+
export interface IBatchDataClient {
|
|
9
|
+
/**
|
|
10
|
+
* Create a property subscription (v2 API)
|
|
11
|
+
* POST /api/v2/property-subscription
|
|
12
|
+
*
|
|
13
|
+
* @see PropertySubscriptionBuilder For fluent construction of requests
|
|
14
|
+
*/
|
|
15
|
+
createPropertySubscription(request: PropertySubscriptionRequest): Promise<PropertySubscriptionResponse>;
|
|
16
|
+
/**
|
|
17
|
+
* Search for properties (v1 API)
|
|
18
|
+
* POST /api/v1/property/search
|
|
19
|
+
*
|
|
20
|
+
* @param request Property search request
|
|
21
|
+
* @param request.searchCriteria Search criteria for property search
|
|
22
|
+
* @param request.options Request options (pagination, distance, bounding box, filters, etc.)
|
|
23
|
+
* @returns Property search API response
|
|
24
|
+
* @see PropertySearchRequestBuilder For fluent construction of requests
|
|
25
|
+
*/
|
|
26
|
+
searchProperties(request: PropertySearchRequest): Promise<PropertySearchResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Get the count of properties matching the search criteria
|
|
29
|
+
* @param searchCriteria Search criteria to match properties
|
|
30
|
+
* @returns Number of matching properties, or null if the endpoint is unavailable
|
|
31
|
+
*/
|
|
32
|
+
getPropertyCount(searchRequest: PropertySearchRequest): Promise<number | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Verify and normalize addresses (v1 API)
|
|
35
|
+
* POST /api/v1/address/verify
|
|
36
|
+
*
|
|
37
|
+
* @param request Address verification request
|
|
38
|
+
* @returns Address verification API response
|
|
39
|
+
*/
|
|
40
|
+
verifyAddress(request: AddressVerifyRequest): Promise<AddressVerifyResponse>;
|
|
41
|
+
/**
|
|
42
|
+
* Get address autocomplete suggestions (v1 API)
|
|
43
|
+
* POST /api/v1/address/autocomplete
|
|
44
|
+
*
|
|
45
|
+
* @param request Address autocomplete request
|
|
46
|
+
* @returns Address autocomplete API response
|
|
47
|
+
*/
|
|
48
|
+
autocompleteAddress(request: AddressAutocompleteRequest): Promise<AddressAutocompleteResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Geocode an address to coordinates (v1 API)
|
|
51
|
+
* POST /api/v1/address/geocode
|
|
52
|
+
*
|
|
53
|
+
* @param request Address geocode request
|
|
54
|
+
* @returns Address geocode API response
|
|
55
|
+
*/
|
|
56
|
+
geocodeAddress(request: AddressGeocodeRequest): Promise<AddressGeocodeResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* Reverse geocode coordinates to an address (v1 API)
|
|
59
|
+
* POST /api/v1/address/reverse-geocode
|
|
60
|
+
*
|
|
61
|
+
* @param request Address reverse geocode request
|
|
62
|
+
* @returns Address reverse geocode API response
|
|
63
|
+
*/
|
|
64
|
+
reverseGeocodeAddress(request: AddressReverseGeocodeRequest): Promise<AddressReverseGeocodeResponse>;
|
|
65
|
+
/**
|
|
66
|
+
* Lookup property details by address, propertyId, hash, or APN (v1 API)
|
|
67
|
+
* POST /api/v1/property/lookup/all-attributes
|
|
68
|
+
*
|
|
69
|
+
* @param request Property lookup request
|
|
70
|
+
* @param request.requests Array of property lookup items (address, propertyId, hash, APN, etc.)
|
|
71
|
+
* @param request.options Request options (pagination, distance, bounding box, filters, webhooks, etc.)
|
|
72
|
+
* @returns Property lookup API response
|
|
73
|
+
* @see PropertyLookupRequestBuilder For fluent construction of requests
|
|
74
|
+
*/
|
|
75
|
+
lookupProperty(request: PropertyLookupRequest): Promise<PropertyLookupResponse>;
|
|
76
|
+
/**
|
|
77
|
+
* Lookup property details asynchronously (v1 API)
|
|
78
|
+
* POST /api/v1/property/lookup/async
|
|
79
|
+
*
|
|
80
|
+
* @param request Property lookup async request
|
|
81
|
+
* @param request.requests Array of property lookup items (address, propertyId, hash, APN, etc.)
|
|
82
|
+
* @param request.options Request options (pagination, distance, bounding box, filters, webhooks, etc.)
|
|
83
|
+
* @returns Property lookup async API response (status only; full results delivered via webhook)
|
|
84
|
+
* @see PropertyLookupAsyncRequestBuilder For fluent construction of requests
|
|
85
|
+
*/
|
|
86
|
+
lookupPropertyAsync(request: PropertyLookupAsyncRequest): Promise<PropertyLookupAsyncResponse>;
|
|
87
|
+
/**
|
|
88
|
+
* Search for properties asynchronously (v1 API)
|
|
89
|
+
* POST /api/v1/property/search/async
|
|
90
|
+
*
|
|
91
|
+
* @param request Property search async request
|
|
92
|
+
* @param request.searchCriteria Search criteria for property search
|
|
93
|
+
* @param request.options Request options (pagination, distance, bounding box, filters, webhooks, etc.)
|
|
94
|
+
* @returns Property search async API response (status only; full results delivered via webhook)
|
|
95
|
+
* @see PropertySearchAsyncRequestBuilder For fluent construction of requests
|
|
96
|
+
*/
|
|
97
|
+
searchPropertiesAsync(request: PropertySearchAsyncRequest): Promise<PropertySearchAsyncResponse>;
|
|
98
|
+
/**
|
|
99
|
+
* Skip trace property owners (v1 API)
|
|
100
|
+
* POST /api/v1/property/skip-trace
|
|
101
|
+
*
|
|
102
|
+
* @param request Property skip trace request
|
|
103
|
+
* @returns Property skip trace API response
|
|
104
|
+
*/
|
|
105
|
+
skipTraceProperty(request: PropertySkipTraceRequest): Promise<PropertySkipTraceResponse>;
|
|
106
|
+
/**
|
|
107
|
+
* Skip trace property owners asynchronously (v1 API)
|
|
108
|
+
* POST /api/v1/property/skip-trace/async
|
|
109
|
+
*
|
|
110
|
+
* @param request Property skip trace async request
|
|
111
|
+
* @returns Property skip trace async API response
|
|
112
|
+
*/
|
|
113
|
+
skipTracePropertyAsync(request: PropertySkipTraceAsyncRequest): Promise<PropertySkipTraceAsyncResponse>;
|
|
114
|
+
/**
|
|
115
|
+
* Verify phone numbers (v1 API)
|
|
116
|
+
* POST /api/v1/phone/verification
|
|
117
|
+
*
|
|
118
|
+
* @param request Phone verification request
|
|
119
|
+
* @returns Phone verification API response
|
|
120
|
+
*/
|
|
121
|
+
verifyPhone(request: PhoneVerificationRequest): Promise<PhoneVerificationResponse>;
|
|
122
|
+
/**
|
|
123
|
+
* Verify phone numbers asynchronously (v1 API)
|
|
124
|
+
* POST /api/v1/phone/verification/async
|
|
125
|
+
*
|
|
126
|
+
* @param request Phone verification async request
|
|
127
|
+
* @returns Phone verification async API response
|
|
128
|
+
*/
|
|
129
|
+
verifyPhoneAsync(request: PhoneVerificationAsyncRequest): Promise<PhoneVerificationAsyncResponse>;
|
|
130
|
+
/**
|
|
131
|
+
* Check phone numbers against DNC (Do Not Call) list (v1 API)
|
|
132
|
+
* POST /api/v1/phone/dnc
|
|
133
|
+
*
|
|
134
|
+
* @param request Phone DNC request
|
|
135
|
+
* @returns Phone DNC API response
|
|
136
|
+
*/
|
|
137
|
+
checkPhoneDNC(request: PhoneDNCRequest): Promise<PhoneDNCResponse>;
|
|
138
|
+
/**
|
|
139
|
+
* Check phone numbers against DNC list asynchronously (v1 API)
|
|
140
|
+
* POST /api/v1/phone/dnc/async
|
|
141
|
+
*
|
|
142
|
+
* @param request Phone DNC async request
|
|
143
|
+
* @returns Phone DNC async API response
|
|
144
|
+
*/
|
|
145
|
+
checkPhoneDNCAsync(request: PhoneDNCAsyncRequest): Promise<PhoneDNCAsyncResponse>;
|
|
146
|
+
/**
|
|
147
|
+
* Check phone numbers for TCPA compliance (v1 API)
|
|
148
|
+
* POST /api/v1/phone/tcpa
|
|
149
|
+
*
|
|
150
|
+
* @param request Phone TCPA request
|
|
151
|
+
* @returns Phone TCPA API response
|
|
152
|
+
*/
|
|
153
|
+
checkPhoneTCPA(request: PhoneTCPARequest): Promise<PhoneTCPAResponse>;
|
|
154
|
+
/**
|
|
155
|
+
* Check phone numbers for TCPA compliance asynchronously (v1 API)
|
|
156
|
+
* POST /api/v1/phone/tcpa/async
|
|
157
|
+
*
|
|
158
|
+
* @param request Phone TCPA async request
|
|
159
|
+
* @returns Phone TCPA async API response
|
|
160
|
+
*/
|
|
161
|
+
checkPhoneTCPAAsync(request: PhoneTCPAAsyncRequest): Promise<PhoneTCPAAsyncResponse>;
|
|
162
|
+
/**
|
|
163
|
+
* Get all property subscriptions (v2 API)
|
|
164
|
+
* GET /api/v2/property-subscription
|
|
165
|
+
*
|
|
166
|
+
* @returns Array of property subscriptions
|
|
167
|
+
*/
|
|
168
|
+
getPropertySubscriptions(): Promise<GetPropertySubscriptionsResponse>;
|
|
169
|
+
/**
|
|
170
|
+
* Get property subscription by ID (v2 API)
|
|
171
|
+
* GET /api/v2/property-subscription/{id}
|
|
172
|
+
*
|
|
173
|
+
* @param id Subscription ID
|
|
174
|
+
* @returns Property subscription detail
|
|
175
|
+
*/
|
|
176
|
+
getPropertySubscription(id: string): Promise<GetPropertySubscriptionDetailResponse>;
|
|
177
|
+
/**
|
|
178
|
+
* Delete property subscription (v2 API)
|
|
179
|
+
* DELETE /api/v2/property-subscription/{id}
|
|
180
|
+
*
|
|
181
|
+
* @param id Subscription ID
|
|
182
|
+
* @returns Delete response
|
|
183
|
+
*/
|
|
184
|
+
deletePropertySubscription(id: string): Promise<DeletePropertySubscriptionResponse>;
|
|
185
|
+
/**
|
|
186
|
+
* Get property permits (v2 API)
|
|
187
|
+
* POST /api/v2/property/permit
|
|
188
|
+
*
|
|
189
|
+
* @param request Property permit request
|
|
190
|
+
* @returns Property permit API response
|
|
191
|
+
* @see PropertyPermitRequestBuilder For fluent construction of requests
|
|
192
|
+
*/
|
|
193
|
+
getPropertyPermit(request: PropertyPermitRequest): Promise<PropertyPermitResponse>;
|
|
194
|
+
/**
|
|
195
|
+
* Skip trace property owners (v3 API)
|
|
196
|
+
* POST /api/v3/property/skip-trace
|
|
197
|
+
*
|
|
198
|
+
* @param request Property skip trace v3 request
|
|
199
|
+
* @returns Property skip trace v3 API response
|
|
200
|
+
*/
|
|
201
|
+
skipTracePropertyV3(request: PropertySkipTraceV3Request): Promise<PropertySkipTraceV3Response>;
|
|
202
|
+
/**
|
|
203
|
+
* Skip trace property owners asynchronously (v3 API)
|
|
204
|
+
* POST /api/v3/property/skip-trace/async
|
|
205
|
+
*
|
|
206
|
+
* @param request Property skip trace v3 async request
|
|
207
|
+
* @returns Property skip trace v3 async API response
|
|
208
|
+
*/
|
|
209
|
+
skipTracePropertyV3Async(request: PropertySkipTraceV3AsyncRequest): Promise<PropertySkipTraceV3AsyncResponse>;
|
|
210
|
+
}
|