apick-api 4.11.0 → 4.13.0
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/CHANGELOG.md +321 -293
- package/README.md +638 -592
- package/docs/guide.en.md +1 -1
- package/docs/guide.ko.md +5 -5
- package/docs/skill-artifacts.md +2 -2
- package/docs/subagent.md +2 -2
- package/docs/tts.md +3 -3
- package/package.json +1 -1
- package/src/index.cjs +345 -4
- package/src/index.d.ts +282 -5
package/src/index.d.ts
CHANGED
|
@@ -297,6 +297,253 @@ export interface RegistryDocVerify {
|
|
|
297
297
|
readonly registry_office: string | null;
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
+
export interface BidQueryOptions {
|
|
301
|
+
readonly bizType?: '물품' | '공사' | '용역' | '외자';
|
|
302
|
+
readonly startDate?: string;
|
|
303
|
+
readonly endDate?: string;
|
|
304
|
+
readonly bidNtceNo?: string;
|
|
305
|
+
readonly indstrytyCd?: string;
|
|
306
|
+
readonly pageNo?: number;
|
|
307
|
+
readonly numOfRows?: number;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export interface RtmsQueryOptions {
|
|
311
|
+
readonly propertyType?: 'apt' | 'rh' | 'sh' | 'offi';
|
|
312
|
+
readonly pageNo?: number;
|
|
313
|
+
readonly numOfRows?: number;
|
|
314
|
+
/** rtmsRent 전용. false 면 같은 단지 매매가 비교(jeonse_ratio) 없이 임대 분석만 받는다. 기본 true. */
|
|
315
|
+
readonly includeTrade?: boolean;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export interface DistributionEntry {
|
|
319
|
+
readonly name?: string;
|
|
320
|
+
readonly band?: string;
|
|
321
|
+
readonly count: number;
|
|
322
|
+
readonly share_pct: number;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
export interface BidSummary {
|
|
326
|
+
readonly total: number;
|
|
327
|
+
readonly agency_count: number;
|
|
328
|
+
readonly industry_count: number;
|
|
329
|
+
readonly budget_total: number | null;
|
|
330
|
+
readonly budget_median: number | null;
|
|
331
|
+
readonly closing_within_3d: number;
|
|
332
|
+
readonly closed: number;
|
|
333
|
+
readonly first_close_at: string | null;
|
|
334
|
+
readonly last_close_at: string | null;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export interface BidPosting {
|
|
338
|
+
readonly bid_no: string;
|
|
339
|
+
readonly bid_name: string;
|
|
340
|
+
readonly agency: string;
|
|
341
|
+
readonly notice_at: string | null;
|
|
342
|
+
readonly close_at: string | null;
|
|
343
|
+
readonly days_left: number | null;
|
|
344
|
+
readonly urgency: string;
|
|
345
|
+
readonly budget: number | null;
|
|
346
|
+
readonly budget_band: string;
|
|
347
|
+
readonly industry: string;
|
|
348
|
+
readonly method: string;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
export interface BidNotice {
|
|
352
|
+
readonly summary: BidSummary;
|
|
353
|
+
readonly distribution: {
|
|
354
|
+
readonly by_agency: readonly DistributionEntry[];
|
|
355
|
+
readonly by_industry: readonly DistributionEntry[];
|
|
356
|
+
readonly by_method: readonly DistributionEntry[];
|
|
357
|
+
readonly by_budget_band: readonly DistributionEntry[];
|
|
358
|
+
readonly by_urgency: readonly DistributionEntry[];
|
|
359
|
+
};
|
|
360
|
+
readonly deadlines: readonly BidPosting[];
|
|
361
|
+
readonly largest: readonly BidPosting[];
|
|
362
|
+
readonly insights: readonly string[];
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export interface BidAward {
|
|
366
|
+
readonly summary: {
|
|
367
|
+
readonly total: number;
|
|
368
|
+
readonly winner_count: number;
|
|
369
|
+
readonly avg_success_rate: number | null;
|
|
370
|
+
readonly median_success_rate: number | null;
|
|
371
|
+
readonly success_rate_stdev: number | null;
|
|
372
|
+
readonly avg_participants: number | null;
|
|
373
|
+
readonly rate_sample: number;
|
|
374
|
+
readonly winner_concentration_hhi: number | null;
|
|
375
|
+
readonly success_amount_total: number | null;
|
|
376
|
+
};
|
|
377
|
+
readonly distribution: {
|
|
378
|
+
readonly by_winner: readonly DistributionEntry[];
|
|
379
|
+
readonly by_agency: readonly DistributionEntry[];
|
|
380
|
+
readonly by_rate_band: readonly DistributionEntry[];
|
|
381
|
+
};
|
|
382
|
+
readonly competitors: readonly { readonly name: string; readonly wins: number; readonly share_pct: number; readonly amount_total: number | null }[];
|
|
383
|
+
readonly low_rate: readonly BidPosting[];
|
|
384
|
+
readonly insights: readonly string[];
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export interface RtmsTrade {
|
|
388
|
+
readonly summary: {
|
|
389
|
+
readonly total: number;
|
|
390
|
+
readonly complex_count: number;
|
|
391
|
+
readonly median_amount: number | null;
|
|
392
|
+
readonly median_price_per_sqm: number | null;
|
|
393
|
+
readonly avg_price_per_sqm: number | null;
|
|
394
|
+
readonly direct_deal_share_pct: number | null;
|
|
395
|
+
readonly canceled_count: number;
|
|
396
|
+
readonly median_area: number | null;
|
|
397
|
+
readonly median_build_year: number | null;
|
|
398
|
+
};
|
|
399
|
+
readonly distribution: {
|
|
400
|
+
readonly by_complex: readonly DistributionEntry[];
|
|
401
|
+
readonly by_area_band: readonly DistributionEntry[];
|
|
402
|
+
readonly by_amount_band: readonly DistributionEntry[];
|
|
403
|
+
readonly by_floor: readonly DistributionEntry[];
|
|
404
|
+
};
|
|
405
|
+
readonly complexes: readonly Readonly<Record<string, unknown>>[];
|
|
406
|
+
readonly anomalies: readonly Readonly<Record<string, unknown>>[];
|
|
407
|
+
readonly insights: readonly string[];
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
export interface RtmsRent {
|
|
411
|
+
readonly summary: {
|
|
412
|
+
readonly total: number;
|
|
413
|
+
readonly complex_count: number;
|
|
414
|
+
readonly jeonse_count: number;
|
|
415
|
+
readonly jeonse_share_pct: number | null;
|
|
416
|
+
readonly median_deposit: number | null;
|
|
417
|
+
readonly median_monthly_rent: number | null;
|
|
418
|
+
readonly median_deposit_per_sqm: number | null;
|
|
419
|
+
readonly avg_annual_rent_to_deposit_pct: number | null;
|
|
420
|
+
readonly renewal_share_pct: number | null;
|
|
421
|
+
};
|
|
422
|
+
readonly distribution: {
|
|
423
|
+
readonly by_complex: readonly DistributionEntry[];
|
|
424
|
+
readonly by_deposit_band: readonly DistributionEntry[];
|
|
425
|
+
readonly by_monthly_band: readonly DistributionEntry[];
|
|
426
|
+
readonly by_contract_type: readonly DistributionEntry[];
|
|
427
|
+
};
|
|
428
|
+
readonly complexes: readonly Readonly<Record<string, unknown>>[];
|
|
429
|
+
readonly jeonse_ratio: Readonly<Record<string, unknown>> | null;
|
|
430
|
+
readonly insights: readonly string[];
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export interface CorpFinanceOptions {
|
|
434
|
+
/** 사업연도 YYYY. 생략하면 조회 가능한 가장 최근 연도. */
|
|
435
|
+
readonly bizYear?: string;
|
|
436
|
+
readonly type?: 'all' | 'summary' | 'balance' | 'income';
|
|
437
|
+
readonly scope?: 'all' | 'consolidated' | 'separate';
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
export interface CorpFinance {
|
|
441
|
+
readonly company: { readonly crno: string; readonly bizYear: string; readonly currency: string };
|
|
442
|
+
readonly summary: readonly Readonly<Record<string, unknown>>[];
|
|
443
|
+
readonly balance: readonly Readonly<Record<string, unknown>>[];
|
|
444
|
+
readonly income: readonly Readonly<Record<string, unknown>>[];
|
|
445
|
+
readonly metrics: Readonly<Record<string, number | string | null>> | null;
|
|
446
|
+
readonly count: number;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export interface BuildingRegisterOptions {
|
|
450
|
+
/** 필지고유번호 19자리. 주면 sigunguCd·bjdongCd·bun·ji 는 쓰지 않는다. */
|
|
451
|
+
readonly pnu?: string;
|
|
452
|
+
readonly sigunguCd?: string;
|
|
453
|
+
readonly bjdongCd?: string;
|
|
454
|
+
readonly platGbCd?: string;
|
|
455
|
+
readonly bun?: string;
|
|
456
|
+
readonly ji?: string;
|
|
457
|
+
readonly type?: 'title' | 'recap' | 'basis' | 'floor' | 'expos' | 'area' | 'price' | 'wclf' | 'jibun' | 'district';
|
|
458
|
+
readonly startDate?: string;
|
|
459
|
+
readonly endDate?: string;
|
|
460
|
+
readonly dongNm?: string;
|
|
461
|
+
readonly hoNm?: string;
|
|
462
|
+
readonly flrNo?: number;
|
|
463
|
+
readonly pageNo?: number;
|
|
464
|
+
readonly numOfRows?: number;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
export interface VehicleRecall {
|
|
468
|
+
readonly result: {
|
|
469
|
+
readonly car_no: string;
|
|
470
|
+
readonly vin: string;
|
|
471
|
+
readonly recall_target: boolean;
|
|
472
|
+
readonly recall_count: number;
|
|
473
|
+
readonly free_repair_count: number;
|
|
474
|
+
readonly recalls: readonly Readonly<Record<string, unknown>>[];
|
|
475
|
+
readonly free_repairs: readonly Readonly<Record<string, unknown>>[];
|
|
476
|
+
readonly checked_at: string;
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
export interface HipassUnpaid {
|
|
481
|
+
readonly result: {
|
|
482
|
+
readonly car_no: string;
|
|
483
|
+
readonly unpaid_target: boolean;
|
|
484
|
+
readonly unpaid_count: number;
|
|
485
|
+
readonly checked_at: string;
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
export interface VehicleTaxCalc {
|
|
490
|
+
readonly result: {
|
|
491
|
+
readonly year: number;
|
|
492
|
+
readonly cc: number;
|
|
493
|
+
readonly cc_rate: number;
|
|
494
|
+
readonly car_age_years: number;
|
|
495
|
+
readonly discount_rate: number;
|
|
496
|
+
readonly vehicle_tax: number;
|
|
497
|
+
readonly local_education_tax: number;
|
|
498
|
+
readonly total: number;
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export type GeoAddrType = 'auto' | 'parcel' | 'road';
|
|
503
|
+
/** 좌표 하나: '경도,위도' 문자열 또는 [경도, 위도]. */
|
|
504
|
+
export type GeoCoordinate = string | readonly [number, number];
|
|
505
|
+
|
|
506
|
+
export interface GeoTarget {
|
|
507
|
+
readonly address?: string;
|
|
508
|
+
readonly pnu?: string;
|
|
509
|
+
readonly x?: number;
|
|
510
|
+
readonly y?: number;
|
|
511
|
+
/** '경도,위도' (예: '127.025,37.504') */
|
|
512
|
+
readonly point?: string;
|
|
513
|
+
readonly addrType?: GeoAddrType;
|
|
514
|
+
readonly includeZipcode?: boolean;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
export type RegistryCorporateTarget = { readonly corpRegNo: string; readonly bizNo?: undefined } | { readonly bizNo: string; readonly corpRegNo?: undefined };
|
|
518
|
+
|
|
519
|
+
export interface RegistryRealestateJobOptions {
|
|
520
|
+
/** 검색에 사용한 주소 또는 부동산고유번호. pin 과 둘 중 하나는 필요하다. */
|
|
521
|
+
readonly query?: string;
|
|
522
|
+
/** 부동산고유번호 14자리 */
|
|
523
|
+
readonly pin?: string;
|
|
524
|
+
/** 검색 결과 행 번호(1부터), 기본 1 */
|
|
525
|
+
readonly index?: number;
|
|
526
|
+
readonly usage?: 'view' | 'issue' | 'transfer-gov24' | 'transfer-court';
|
|
527
|
+
readonly recordScope?: 'all' | 'part';
|
|
528
|
+
readonly includeCancelled?: boolean;
|
|
529
|
+
readonly publishResidentNo?: boolean;
|
|
530
|
+
/** 같은 접수를 다시 보낼 때 중복 접수·과금을 막는 키 */
|
|
531
|
+
readonly idempotencyKey?: string;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
export interface RegistryJob {
|
|
535
|
+
readonly job_id: string;
|
|
536
|
+
readonly status: string;
|
|
537
|
+
readonly replay?: boolean;
|
|
538
|
+
readonly [key: string]: unknown;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
export interface GeoNeighborhoodInput extends GeoTarget {
|
|
542
|
+
readonly radius?: number;
|
|
543
|
+
readonly categories?: readonly string[];
|
|
544
|
+
readonly limit?: number;
|
|
545
|
+
}
|
|
546
|
+
|
|
300
547
|
export interface LinkedinJob {
|
|
301
548
|
readonly job_posting_id: string;
|
|
302
549
|
readonly title: string;
|
|
@@ -410,7 +657,7 @@ export interface MaskResidentNumberOptions extends OcrOptions {
|
|
|
410
657
|
export const AUTH_PROVIDERS: readonly [
|
|
411
658
|
'kakao', 'naver', 'toss', 'pass', 'samsung', 'kb', 'shinhan', 'hana', 'woori', 'ibk', 'nh', 'kakaobank', 'banksalad'
|
|
412
659
|
];
|
|
413
|
-
/**
|
|
660
|
+
/** 민원서류 통합 조회에서 고를 수 있는 상품 키. */
|
|
414
661
|
export const GOV24_BUNDLE_PRODUCTS: readonly [
|
|
415
662
|
'resident_registration', 'resident_registration_cho', 'driving_license', 'health_checkup',
|
|
416
663
|
'police_penalty', 'parking_fine_target', 'mortgage_loan', 'housing_refund_balance',
|
|
@@ -446,7 +693,7 @@ export interface ResidentRegistrationOptions {
|
|
|
446
693
|
export interface RequestResidentRegistrationInput extends DataRequestInput, ResidentRegistrationOptions {}
|
|
447
694
|
export interface RequestResidentRegistrationChoInput extends DataRequestInput, ResidentRegistrationOptions {}
|
|
448
695
|
/**
|
|
449
|
-
*
|
|
696
|
+
* 민원서류 통합 조회 입력. `products` 로 조회할 상품 키를 고른다.
|
|
450
697
|
* 등본·초본을 고르면 `sido`·`sigungu` 가 필요하다.
|
|
451
698
|
*/
|
|
452
699
|
export interface RequestGov24BundleInput extends DataRequestInput {
|
|
@@ -460,7 +707,7 @@ export interface RequestGov24BundleInput extends DataRequestInput {
|
|
|
460
707
|
}
|
|
461
708
|
|
|
462
709
|
/**
|
|
463
|
-
*
|
|
710
|
+
* 세무 민원증명 발급 조건. 신청인 본인명의 발급이고 발급 1건 60P 정액이다.
|
|
464
711
|
* `format` 은 응답 형식이고, `json`·`both` 이면 발급된 PDF를 파싱한 `PDF데이터` 가 함께 온다.
|
|
465
712
|
* 코드 값(`use_purpose`·`submit_to`·`itrf_cd`)은 정부 공통코드다.
|
|
466
713
|
*/
|
|
@@ -524,7 +771,7 @@ export interface HometaxPdfData {
|
|
|
524
771
|
텍스트: string;
|
|
525
772
|
사유?: string;
|
|
526
773
|
}
|
|
527
|
-
/**
|
|
774
|
+
/** 세무 민원증명 결과. `format` 이 json·both 이면 `발급문서`(base64)와 `PDF데이터` 가 함께 온다. */
|
|
528
775
|
export interface HometaxCertificateResultPayload {
|
|
529
776
|
문서확인번호: string;
|
|
530
777
|
귀속연도?: string;
|
|
@@ -888,6 +1135,36 @@ export class ApickClient {
|
|
|
888
1135
|
linkedinJob(url: string): Promise<ApickResult<LinkedinJob>>;
|
|
889
1136
|
courtAuction(caseNo: string, court: string): Promise<ApickResult<CourtAuction>>;
|
|
890
1137
|
registryDocVerify(issueNo: string, options?: { readonly kind?: 'realestate' | 'corporate' | 'movable' }): Promise<ApickResult<RegistryDocVerify>>;
|
|
1138
|
+
bidNotice(options: BidQueryOptions): Promise<ApickResult<BidNotice>>;
|
|
1139
|
+
bidAward(options: BidQueryOptions): Promise<ApickResult<BidAward>>;
|
|
1140
|
+
rtmsTrade(lawdCd: string, dealYmd: string, options?: RtmsQueryOptions): Promise<ApickResult<RtmsTrade>>;
|
|
1141
|
+
rtmsRent(lawdCd: string, dealYmd: string, options?: RtmsQueryOptions): Promise<ApickResult<RtmsRent>>;
|
|
1142
|
+
corpFinance(crno: string, options?: CorpFinanceOptions): Promise<ApickResult<CorpFinance>>;
|
|
1143
|
+
buildingRegister(options: BuildingRegisterOptions): Promise<ApickResult>;
|
|
1144
|
+
appReviews(appId: string | number, options?: { readonly country?: string; readonly page?: number }): Promise<ApickResult>;
|
|
1145
|
+
vehicleEmission(certNo: string): Promise<ApickResult>;
|
|
1146
|
+
vehicleRecall(input: { readonly carNo: string; readonly vin?: undefined } | { readonly vin: string; readonly carNo?: undefined }): Promise<ApickResult<VehicleRecall>>;
|
|
1147
|
+
hipassUnpaid(carNo: string): Promise<ApickResult<HipassUnpaid>>;
|
|
1148
|
+
vehicleTaxCalc(cc: number, options?: { readonly carAgeYears?: number; readonly year?: number }): Promise<ApickResult<VehicleTaxCalc>>;
|
|
1149
|
+
geoStandardize(input: string | GeoTarget): Promise<ApickResult>;
|
|
1150
|
+
geoBatchGeocode(addresses: readonly string[], options?: { readonly addrType?: GeoAddrType; readonly dedupe?: boolean }): Promise<ApickResult>;
|
|
1151
|
+
geoReverse(input: { readonly x: number; readonly y: number } | { readonly point: string }): Promise<ApickResult>;
|
|
1152
|
+
geoAddressSearch(query: string, options?: { readonly category?: GeoAddrType; readonly page?: number; readonly size?: number }): Promise<ApickResult>;
|
|
1153
|
+
geoPlaceSearch(query: string, options?: { readonly origin?: string; readonly x?: number; readonly y?: number; readonly radius?: number; readonly sort?: 'distance' | 'relevance'; readonly page?: number; readonly size?: number }): Promise<ApickResult>;
|
|
1154
|
+
geoAdminCode(input: string | GeoTarget): Promise<ApickResult>;
|
|
1155
|
+
geoCompareAddress(addressA: string, addressB: string, options?: { readonly addrType?: GeoAddrType }): Promise<ApickResult>;
|
|
1156
|
+
geoMeasure(coordinates: readonly GeoCoordinate[], options?: { readonly mode?: 'path' | 'polygon'; readonly unit?: 'm' | 'km'; readonly matrix?: boolean }): Promise<ApickResult>;
|
|
1157
|
+
geoGeojsonAnalyze(geojson: Readonly<Record<string, unknown>> | string, options?: { readonly simplify?: number; readonly point?: string; readonly x?: number; readonly y?: number; readonly includeGeometry?: boolean }): Promise<ApickResult>;
|
|
1158
|
+
geoAddressQuality(addresses: readonly string[], options?: { readonly addrType?: GeoAddrType }): Promise<ApickResult>;
|
|
1159
|
+
geoAddressAutocomplete(query: string, options?: { readonly category?: GeoAddrType; readonly size?: number }): Promise<ApickResult>;
|
|
1160
|
+
geoDistrictBoundary(query: string | number, options?: { readonly level?: 'L1' | 'L2' | 'L3' | 'L4'; readonly simplify?: number; readonly includeGeometry?: boolean }): Promise<ApickResult>;
|
|
1161
|
+
geoNeighborhood(input: string | GeoNeighborhoodInput): Promise<ApickResult>;
|
|
1162
|
+
registryRealestateSearch(query: string): Promise<ApickResult>;
|
|
1163
|
+
registryCorporateSearch(input: RegistryCorporateTarget): Promise<ApickResult>;
|
|
1164
|
+
createRegistryRealestateJob(options: RegistryRealestateJobOptions): Promise<ApickResult<RegistryJob>>;
|
|
1165
|
+
createRegistryCorporateJob(options: RegistryCorporateTarget & { readonly usage?: 'view' | 'issue'; readonly idempotencyKey?: string }): Promise<ApickResult<RegistryJob>>;
|
|
1166
|
+
getRegistryJob(jobId: string): Promise<ApickResult<RegistryJob>>;
|
|
1167
|
+
downloadRegistryPdf(jobId: string): Promise<ApickBinaryResult>;
|
|
891
1168
|
screenshot(url: string): Promise<ApickBinaryResult>;
|
|
892
1169
|
youtubeMetadata(url: string): Promise<ApickResult<YoutubeMetadata>>;
|
|
893
1170
|
youtubeThumbnail(url: string): Promise<ApickBinaryResult>;
|
|
@@ -1074,7 +1351,7 @@ export interface SkillSummary {
|
|
|
1074
1351
|
export interface SkillDetail extends SkillSummary {
|
|
1075
1352
|
description: string; billing_rule: 'validated_result' | 'subagent_usage'; limits: SkillLimits | null;
|
|
1076
1353
|
delivery?: 'installed_agent'; installation?: {package:string;command:string;api_key_env:string;guide:string;usage:string};
|
|
1077
|
-
billing?: {
|
|
1354
|
+
billing?: {installation_points:number;base_points:number;complete_cache_points:number;quota:null};
|
|
1078
1355
|
input_schema: Record<string, unknown>; output_schema: Record<string, unknown>;
|
|
1079
1356
|
examples: unknown[]; stats: Record<string, unknown> | null; published_at: string | null;
|
|
1080
1357
|
}
|