@nuxtseo/protocol 0.1.4 → 0.2.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.
@@ -2159,11 +2159,1477 @@ export declare const rankingsResearchOperation: {
2159
2159
  }];
2160
2160
  };
2161
2161
  };
2162
+ export declare const domainTrafficQuerySchema: z.ZodObject<{
2163
+ domain: z.ZodString;
2164
+ }, z.core.$strict>;
2165
+ export declare const domainAvailabilityQuerySchema: z.ZodObject<{
2166
+ domains: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>;
2167
+ }, z.core.$strict>;
2168
+ export declare const domainTrafficPageSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2169
+ readonly path: z.ZodString;
2170
+ readonly traffic: z.ZodNumber;
2171
+ readonly keywords: z.ZodNumber;
2172
+ }, z.core.$strip>, z.ZodObject<{
2173
+ readonly path: z.ZodString;
2174
+ readonly traffic: z.ZodNumber;
2175
+ readonly keywords: z.ZodNumber;
2176
+ }, z.core.$strip>>;
2177
+ export declare const domainTrafficDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2178
+ readonly domain: z.ZodString;
2179
+ readonly monthlyTraffic: z.ZodNumber;
2180
+ readonly trend: z.ZodEnum<{
2181
+ declining: "declining";
2182
+ growing: "growing";
2183
+ stable: "stable";
2184
+ }>;
2185
+ readonly changePercent: z.ZodNumber;
2186
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2187
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2188
+ readonly topPages: z.ZodArray<z.ZodObject<{
2189
+ readonly path: z.ZodString;
2190
+ readonly traffic: z.ZodNumber;
2191
+ readonly keywords: z.ZodNumber;
2192
+ }, z.core.$strip>>;
2193
+ readonly topCountries: z.ZodArray<z.ZodObject<{
2194
+ country: z.ZodString;
2195
+ percent: z.ZodNumber;
2196
+ }, z.core.$strict>>;
2197
+ readonly message: z.ZodNullable<z.ZodString>;
2198
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2199
+ _tag: z.ZodLiteral<"no-provider">;
2200
+ provider: z.ZodNull;
2201
+ spend: z.ZodObject<{
2202
+ key: z.ZodLiteral<"dataforseo">;
2203
+ units: z.ZodLiteral<0>;
2204
+ }, z.core.$strict>;
2205
+ }, z.core.$strict>, z.ZodObject<{
2206
+ _tag: z.ZodLiteral<"cache">;
2207
+ provider: z.ZodLiteral<"dataforseo">;
2208
+ spend: z.ZodObject<{
2209
+ key: z.ZodLiteral<"dataforseo">;
2210
+ units: z.ZodLiteral<0>;
2211
+ }, z.core.$strict>;
2212
+ }, z.core.$strict>, z.ZodObject<{
2213
+ _tag: z.ZodLiteral<"live">;
2214
+ provider: z.ZodLiteral<"dataforseo">;
2215
+ spend: z.ZodObject<{
2216
+ key: z.ZodLiteral<"dataforseo">;
2217
+ units: z.ZodLiteral<1>;
2218
+ }, z.core.$strict>;
2219
+ }, z.core.$strict>], "_tag">;
2220
+ }, z.core.$strip>, z.ZodObject<{
2221
+ readonly domain: z.ZodString;
2222
+ readonly monthlyTraffic: z.ZodNumber;
2223
+ readonly trend: z.ZodEnum<{
2224
+ declining: "declining";
2225
+ growing: "growing";
2226
+ stable: "stable";
2227
+ }>;
2228
+ readonly changePercent: z.ZodNumber;
2229
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2230
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2231
+ readonly topPages: z.ZodArray<z.ZodObject<{
2232
+ readonly path: z.ZodString;
2233
+ readonly traffic: z.ZodNumber;
2234
+ readonly keywords: z.ZodNumber;
2235
+ }, z.core.$strip>>;
2236
+ readonly topCountries: z.ZodArray<z.ZodObject<{
2237
+ country: z.ZodString;
2238
+ percent: z.ZodNumber;
2239
+ }, z.core.$loose>>;
2240
+ readonly message: z.ZodNullable<z.ZodString>;
2241
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2242
+ _tag: z.ZodLiteral<"no-provider">;
2243
+ provider: z.ZodNull;
2244
+ spend: z.ZodObject<{
2245
+ key: z.ZodLiteral<"dataforseo">;
2246
+ units: z.ZodLiteral<0>;
2247
+ }, z.core.$loose>;
2248
+ }, z.core.$loose>, z.ZodObject<{
2249
+ _tag: z.ZodLiteral<"cache">;
2250
+ provider: z.ZodLiteral<"dataforseo">;
2251
+ spend: z.ZodObject<{
2252
+ key: z.ZodLiteral<"dataforseo">;
2253
+ units: z.ZodLiteral<0>;
2254
+ }, z.core.$loose>;
2255
+ }, z.core.$loose>, z.ZodObject<{
2256
+ _tag: z.ZodLiteral<"live">;
2257
+ provider: z.ZodLiteral<"dataforseo">;
2258
+ spend: z.ZodObject<{
2259
+ key: z.ZodLiteral<"dataforseo">;
2260
+ units: z.ZodLiteral<1>;
2261
+ }, z.core.$loose>;
2262
+ }, z.core.$loose>], "_tag">;
2263
+ }, z.core.$strip>>;
2264
+ export declare const domainTrafficResponseSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2265
+ data: z.ZodObject<{
2266
+ readonly domain: z.ZodString;
2267
+ readonly monthlyTraffic: z.ZodNumber;
2268
+ readonly trend: z.ZodEnum<{
2269
+ declining: "declining";
2270
+ growing: "growing";
2271
+ stable: "stable";
2272
+ }>;
2273
+ readonly changePercent: z.ZodNumber;
2274
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2275
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2276
+ readonly topPages: z.ZodArray<z.ZodObject<{
2277
+ readonly path: z.ZodString;
2278
+ readonly traffic: z.ZodNumber;
2279
+ readonly keywords: z.ZodNumber;
2280
+ }, z.core.$strip>>;
2281
+ readonly topCountries: z.ZodArray<z.ZodObject<{
2282
+ country: z.ZodString;
2283
+ percent: z.ZodNumber;
2284
+ }, z.core.$strict>>;
2285
+ readonly message: z.ZodNullable<z.ZodString>;
2286
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2287
+ _tag: z.ZodLiteral<"no-provider">;
2288
+ provider: z.ZodNull;
2289
+ spend: z.ZodObject<{
2290
+ key: z.ZodLiteral<"dataforseo">;
2291
+ units: z.ZodLiteral<0>;
2292
+ }, z.core.$strict>;
2293
+ }, z.core.$strict>, z.ZodObject<{
2294
+ _tag: z.ZodLiteral<"cache">;
2295
+ provider: z.ZodLiteral<"dataforseo">;
2296
+ spend: z.ZodObject<{
2297
+ key: z.ZodLiteral<"dataforseo">;
2298
+ units: z.ZodLiteral<0>;
2299
+ }, z.core.$strict>;
2300
+ }, z.core.$strict>, z.ZodObject<{
2301
+ _tag: z.ZodLiteral<"live">;
2302
+ provider: z.ZodLiteral<"dataforseo">;
2303
+ spend: z.ZodObject<{
2304
+ key: z.ZodLiteral<"dataforseo">;
2305
+ units: z.ZodLiteral<1>;
2306
+ }, z.core.$strict>;
2307
+ }, z.core.$strict>], "_tag">;
2308
+ }, z.core.$strip>;
2309
+ meta: z.ZodObject<{
2310
+ requestId: z.ZodString;
2311
+ version: z.ZodLiteral<"1.0">;
2312
+ }, z.core.$strict>;
2313
+ }, z.core.$strip>, z.ZodObject<{
2314
+ data: z.ZodObject<{
2315
+ readonly domain: z.ZodString;
2316
+ readonly monthlyTraffic: z.ZodNumber;
2317
+ readonly trend: z.ZodEnum<{
2318
+ declining: "declining";
2319
+ growing: "growing";
2320
+ stable: "stable";
2321
+ }>;
2322
+ readonly changePercent: z.ZodNumber;
2323
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2324
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2325
+ readonly topPages: z.ZodArray<z.ZodObject<{
2326
+ readonly path: z.ZodString;
2327
+ readonly traffic: z.ZodNumber;
2328
+ readonly keywords: z.ZodNumber;
2329
+ }, z.core.$strip>>;
2330
+ readonly topCountries: z.ZodArray<z.ZodObject<{
2331
+ country: z.ZodString;
2332
+ percent: z.ZodNumber;
2333
+ }, z.core.$loose>>;
2334
+ readonly message: z.ZodNullable<z.ZodString>;
2335
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2336
+ _tag: z.ZodLiteral<"no-provider">;
2337
+ provider: z.ZodNull;
2338
+ spend: z.ZodObject<{
2339
+ key: z.ZodLiteral<"dataforseo">;
2340
+ units: z.ZodLiteral<0>;
2341
+ }, z.core.$loose>;
2342
+ }, z.core.$loose>, z.ZodObject<{
2343
+ _tag: z.ZodLiteral<"cache">;
2344
+ provider: z.ZodLiteral<"dataforseo">;
2345
+ spend: z.ZodObject<{
2346
+ key: z.ZodLiteral<"dataforseo">;
2347
+ units: z.ZodLiteral<0>;
2348
+ }, z.core.$loose>;
2349
+ }, z.core.$loose>, z.ZodObject<{
2350
+ _tag: z.ZodLiteral<"live">;
2351
+ provider: z.ZodLiteral<"dataforseo">;
2352
+ spend: z.ZodObject<{
2353
+ key: z.ZodLiteral<"dataforseo">;
2354
+ units: z.ZodLiteral<1>;
2355
+ }, z.core.$loose>;
2356
+ }, z.core.$loose>], "_tag">;
2357
+ }, z.core.$strip>;
2358
+ meta: z.ZodObject<{
2359
+ requestId: z.ZodString;
2360
+ version: z.ZodLiteral<"1.0">;
2361
+ }, z.core.$loose>;
2362
+ }, z.core.$strip>>;
2363
+ export type DomainTraffic = z.output<typeof domainTrafficDataSchema.producer>;
2364
+ export declare const domainTrafficOperation: {
2365
+ readonly id: 'research.domain.traffic';
2366
+ readonly method: 'GET';
2367
+ readonly path: '/api/v1/sites/{siteId}/research/domain-traffic';
2368
+ readonly visibility: 'public';
2369
+ readonly semantics: {
2370
+ readonly kind: 'query';
2371
+ readonly sideEffects: 'none';
2372
+ readonly retry: 'idempotent';
2373
+ readonly readConsistency: 'primary';
2374
+ };
2375
+ readonly auth: {
2376
+ readonly credentials: readonly ['session', 'api_token'];
2377
+ readonly scopes: readonly ['research:read'];
2378
+ readonly minimumRole: 'viewer';
2379
+ readonly ownership: 'site';
2380
+ };
2381
+ readonly request: {
2382
+ readonly params: z.ZodObject<{
2383
+ siteId: z.ZodString;
2384
+ }, z.core.$strict>;
2385
+ readonly query: z.ZodObject<{
2386
+ domain: z.ZodString;
2387
+ }, z.core.$strict>;
2388
+ readonly headers: null;
2389
+ readonly body: null;
2390
+ };
2391
+ readonly responses: {
2392
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2393
+ data: z.ZodObject<{
2394
+ readonly domain: z.ZodString;
2395
+ readonly monthlyTraffic: z.ZodNumber;
2396
+ readonly trend: z.ZodEnum<{
2397
+ declining: "declining";
2398
+ growing: "growing";
2399
+ stable: "stable";
2400
+ }>;
2401
+ readonly changePercent: z.ZodNumber;
2402
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2403
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2404
+ readonly topPages: z.ZodArray<z.ZodObject<{
2405
+ readonly path: z.ZodString;
2406
+ readonly traffic: z.ZodNumber;
2407
+ readonly keywords: z.ZodNumber;
2408
+ }, z.core.$strip>>;
2409
+ readonly topCountries: z.ZodArray<z.ZodObject<{
2410
+ country: z.ZodString;
2411
+ percent: z.ZodNumber;
2412
+ }, z.core.$strict>>;
2413
+ readonly message: z.ZodNullable<z.ZodString>;
2414
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2415
+ _tag: z.ZodLiteral<"no-provider">;
2416
+ provider: z.ZodNull;
2417
+ spend: z.ZodObject<{
2418
+ key: z.ZodLiteral<"dataforseo">;
2419
+ units: z.ZodLiteral<0>;
2420
+ }, z.core.$strict>;
2421
+ }, z.core.$strict>, z.ZodObject<{
2422
+ _tag: z.ZodLiteral<"cache">;
2423
+ provider: z.ZodLiteral<"dataforseo">;
2424
+ spend: z.ZodObject<{
2425
+ key: z.ZodLiteral<"dataforseo">;
2426
+ units: z.ZodLiteral<0>;
2427
+ }, z.core.$strict>;
2428
+ }, z.core.$strict>, z.ZodObject<{
2429
+ _tag: z.ZodLiteral<"live">;
2430
+ provider: z.ZodLiteral<"dataforseo">;
2431
+ spend: z.ZodObject<{
2432
+ key: z.ZodLiteral<"dataforseo">;
2433
+ units: z.ZodLiteral<1>;
2434
+ }, z.core.$strict>;
2435
+ }, z.core.$strict>], "_tag">;
2436
+ }, z.core.$strip>;
2437
+ meta: z.ZodObject<{
2438
+ requestId: z.ZodString;
2439
+ version: z.ZodLiteral<"1.0">;
2440
+ }, z.core.$strict>;
2441
+ }, z.core.$strip>, z.ZodObject<{
2442
+ data: z.ZodObject<{
2443
+ readonly domain: z.ZodString;
2444
+ readonly monthlyTraffic: z.ZodNumber;
2445
+ readonly trend: z.ZodEnum<{
2446
+ declining: "declining";
2447
+ growing: "growing";
2448
+ stable: "stable";
2449
+ }>;
2450
+ readonly changePercent: z.ZodNumber;
2451
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2452
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2453
+ readonly topPages: z.ZodArray<z.ZodObject<{
2454
+ readonly path: z.ZodString;
2455
+ readonly traffic: z.ZodNumber;
2456
+ readonly keywords: z.ZodNumber;
2457
+ }, z.core.$strip>>;
2458
+ readonly topCountries: z.ZodArray<z.ZodObject<{
2459
+ country: z.ZodString;
2460
+ percent: z.ZodNumber;
2461
+ }, z.core.$loose>>;
2462
+ readonly message: z.ZodNullable<z.ZodString>;
2463
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2464
+ _tag: z.ZodLiteral<"no-provider">;
2465
+ provider: z.ZodNull;
2466
+ spend: z.ZodObject<{
2467
+ key: z.ZodLiteral<"dataforseo">;
2468
+ units: z.ZodLiteral<0>;
2469
+ }, z.core.$loose>;
2470
+ }, z.core.$loose>, z.ZodObject<{
2471
+ _tag: z.ZodLiteral<"cache">;
2472
+ provider: z.ZodLiteral<"dataforseo">;
2473
+ spend: z.ZodObject<{
2474
+ key: z.ZodLiteral<"dataforseo">;
2475
+ units: z.ZodLiteral<0>;
2476
+ }, z.core.$loose>;
2477
+ }, z.core.$loose>, z.ZodObject<{
2478
+ _tag: z.ZodLiteral<"live">;
2479
+ provider: z.ZodLiteral<"dataforseo">;
2480
+ spend: z.ZodObject<{
2481
+ key: z.ZodLiteral<"dataforseo">;
2482
+ units: z.ZodLiteral<1>;
2483
+ }, z.core.$loose>;
2484
+ }, z.core.$loose>], "_tag">;
2485
+ }, z.core.$strip>;
2486
+ meta: z.ZodObject<{
2487
+ requestId: z.ZodString;
2488
+ version: z.ZodLiteral<"1.0">;
2489
+ }, z.core.$loose>;
2490
+ }, z.core.$strip>>;
2491
+ };
2492
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "entitlement_required", "quota_exhausted", "provider_unavailable", "conflict", "rate_limited", "contract_violation", "internal_error"];
2493
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2494
+ readonly error: z.ZodObject<{
2495
+ code: z.ZodEnum<{
2496
+ auth_expired: "auth_expired";
2497
+ conflict: "conflict";
2498
+ contract_violation: "contract_violation";
2499
+ entitlement_required: "entitlement_required";
2500
+ forbidden: "forbidden";
2501
+ internal_error: "internal_error";
2502
+ invalid_request: "invalid_request";
2503
+ not_found: "not_found";
2504
+ provider_unavailable: "provider_unavailable";
2505
+ quota_exhausted: "quota_exhausted";
2506
+ rate_limited: "rate_limited";
2507
+ site_ambiguous: "site_ambiguous";
2508
+ stale_evidence: "stale_evidence";
2509
+ unauthorized: "unauthorized";
2510
+ }>;
2511
+ message: z.ZodString;
2512
+ requestId: z.ZodString;
2513
+ retryable: z.ZodBoolean;
2514
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2515
+ }, z.core.$strict>;
2516
+ }, z.core.$strip>, z.ZodObject<{
2517
+ readonly error: z.ZodObject<{
2518
+ code: z.ZodEnum<{
2519
+ auth_expired: "auth_expired";
2520
+ conflict: "conflict";
2521
+ contract_violation: "contract_violation";
2522
+ entitlement_required: "entitlement_required";
2523
+ forbidden: "forbidden";
2524
+ internal_error: "internal_error";
2525
+ invalid_request: "invalid_request";
2526
+ not_found: "not_found";
2527
+ provider_unavailable: "provider_unavailable";
2528
+ quota_exhausted: "quota_exhausted";
2529
+ rate_limited: "rate_limited";
2530
+ site_ambiguous: "site_ambiguous";
2531
+ stale_evidence: "stale_evidence";
2532
+ unauthorized: "unauthorized";
2533
+ }>;
2534
+ message: z.ZodString;
2535
+ requestId: z.ZodString;
2536
+ retryable: z.ZodBoolean;
2537
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2538
+ }, z.core.$loose>;
2539
+ }, z.core.$strip>>;
2540
+ readonly resources: {
2541
+ readonly reads: readonly [{
2542
+ readonly type: 'site.research';
2543
+ readonly idFrom: 'params.siteId';
2544
+ }];
2545
+ readonly changes: readonly [];
2546
+ };
2547
+ readonly policy: {
2548
+ readonly rate: {
2549
+ readonly name: 'public-v1-fixed-window';
2550
+ readonly limit: 50;
2551
+ readonly windowSeconds: 60;
2552
+ };
2553
+ readonly idempotency: {
2554
+ readonly _tag: 'none';
2555
+ };
2556
+ readonly entitlement: 'growth';
2557
+ readonly meter: {
2558
+ readonly key: 'dataforseo';
2559
+ readonly units: 1;
2560
+ readonly charge: 'live-only';
2561
+ };
2562
+ };
2563
+ readonly lifecycle: {
2564
+ readonly introduced: '1.2.0';
2565
+ };
2566
+ readonly docs: {
2567
+ readonly summary: 'Estimate domain traffic';
2568
+ readonly description: 'Returns an estimate of one domain organic search traffic, its trend, its top pages and countries. The domain does not have to be one of your Sites, so this reads a competitor as readily as your own. Cached reads consume no units.';
2569
+ readonly tags: readonly ["Research"];
2570
+ readonly examples: readonly [{
2571
+ readonly request: {
2572
+ readonly params: {
2573
+ readonly siteId: 'site_01JXYZ';
2574
+ };
2575
+ readonly query: {
2576
+ readonly domain: 'nuxtseo.com';
2577
+ };
2578
+ };
2579
+ readonly response: {
2580
+ readonly status: 200;
2581
+ readonly body: {
2582
+ readonly data: {
2583
+ readonly domain: 'nuxtseo.com';
2584
+ readonly monthlyTraffic: 48200;
2585
+ readonly trend: 'growing';
2586
+ readonly changePercent: 12.4;
2587
+ readonly trafficValue: 31200;
2588
+ readonly keywordFootprint: 62;
2589
+ readonly topPages: readonly [{
2590
+ readonly path: '/docs/sitemap';
2591
+ readonly traffic: 4100;
2592
+ readonly keywords: 220;
2593
+ }];
2594
+ readonly topCountries: readonly [{
2595
+ readonly country: 'US';
2596
+ readonly percent: 41.2;
2597
+ }];
2598
+ readonly message: null;
2599
+ readonly evidence: {
2600
+ readonly _tag: 'live';
2601
+ readonly provider: 'dataforseo';
2602
+ readonly spend: {
2603
+ readonly key: 'dataforseo';
2604
+ readonly units: 1;
2605
+ };
2606
+ };
2607
+ };
2608
+ readonly meta: {
2609
+ readonly requestId: 'req_01JXYZ';
2610
+ readonly version: '1.0';
2611
+ };
2612
+ };
2613
+ };
2614
+ }];
2615
+ };
2616
+ };
2617
+ export declare const domainStatusSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2618
+ readonly domain: z.ZodString;
2619
+ readonly available: z.ZodBoolean;
2620
+ readonly registrar: z.ZodNullable<z.ZodString>;
2621
+ readonly expiration: z.ZodNullable<z.ZodString>;
2622
+ readonly created: z.ZodNullable<z.ZodString>;
2623
+ readonly note: z.ZodNullable<z.ZodString>;
2624
+ }, z.core.$strip>, z.ZodObject<{
2625
+ readonly domain: z.ZodString;
2626
+ readonly available: z.ZodBoolean;
2627
+ readonly registrar: z.ZodNullable<z.ZodString>;
2628
+ readonly expiration: z.ZodNullable<z.ZodString>;
2629
+ readonly created: z.ZodNullable<z.ZodString>;
2630
+ readonly note: z.ZodNullable<z.ZodString>;
2631
+ }, z.core.$strip>>;
2632
+ export declare const domainAvailabilityDataSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2633
+ readonly results: z.ZodArray<z.ZodObject<{
2634
+ readonly domain: z.ZodString;
2635
+ readonly available: z.ZodBoolean;
2636
+ readonly registrar: z.ZodNullable<z.ZodString>;
2637
+ readonly expiration: z.ZodNullable<z.ZodString>;
2638
+ readonly created: z.ZodNullable<z.ZodString>;
2639
+ readonly note: z.ZodNullable<z.ZodString>;
2640
+ }, z.core.$strip>>;
2641
+ readonly message: z.ZodNullable<z.ZodString>;
2642
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2643
+ _tag: z.ZodLiteral<"no-provider">;
2644
+ provider: z.ZodNull;
2645
+ spend: z.ZodObject<{
2646
+ key: z.ZodLiteral<"dataforseo">;
2647
+ units: z.ZodLiteral<0>;
2648
+ }, z.core.$strict>;
2649
+ }, z.core.$strict>, z.ZodObject<{
2650
+ _tag: z.ZodLiteral<"cache">;
2651
+ provider: z.ZodLiteral<"dataforseo">;
2652
+ spend: z.ZodObject<{
2653
+ key: z.ZodLiteral<"dataforseo">;
2654
+ units: z.ZodLiteral<0>;
2655
+ }, z.core.$strict>;
2656
+ }, z.core.$strict>, z.ZodObject<{
2657
+ _tag: z.ZodLiteral<"live">;
2658
+ provider: z.ZodLiteral<"dataforseo">;
2659
+ spend: z.ZodObject<{
2660
+ key: z.ZodLiteral<"dataforseo">;
2661
+ units: z.ZodLiteral<1>;
2662
+ }, z.core.$strict>;
2663
+ }, z.core.$strict>], "_tag">;
2664
+ }, z.core.$strip>, z.ZodObject<{
2665
+ readonly results: z.ZodArray<z.ZodObject<{
2666
+ readonly domain: z.ZodString;
2667
+ readonly available: z.ZodBoolean;
2668
+ readonly registrar: z.ZodNullable<z.ZodString>;
2669
+ readonly expiration: z.ZodNullable<z.ZodString>;
2670
+ readonly created: z.ZodNullable<z.ZodString>;
2671
+ readonly note: z.ZodNullable<z.ZodString>;
2672
+ }, z.core.$strip>>;
2673
+ readonly message: z.ZodNullable<z.ZodString>;
2674
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2675
+ _tag: z.ZodLiteral<"no-provider">;
2676
+ provider: z.ZodNull;
2677
+ spend: z.ZodObject<{
2678
+ key: z.ZodLiteral<"dataforseo">;
2679
+ units: z.ZodLiteral<0>;
2680
+ }, z.core.$loose>;
2681
+ }, z.core.$loose>, z.ZodObject<{
2682
+ _tag: z.ZodLiteral<"cache">;
2683
+ provider: z.ZodLiteral<"dataforseo">;
2684
+ spend: z.ZodObject<{
2685
+ key: z.ZodLiteral<"dataforseo">;
2686
+ units: z.ZodLiteral<0>;
2687
+ }, z.core.$loose>;
2688
+ }, z.core.$loose>, z.ZodObject<{
2689
+ _tag: z.ZodLiteral<"live">;
2690
+ provider: z.ZodLiteral<"dataforseo">;
2691
+ spend: z.ZodObject<{
2692
+ key: z.ZodLiteral<"dataforseo">;
2693
+ units: z.ZodLiteral<1>;
2694
+ }, z.core.$loose>;
2695
+ }, z.core.$loose>], "_tag">;
2696
+ }, z.core.$strip>>;
2697
+ export declare const domainAvailabilityResponseSchema: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2698
+ data: z.ZodObject<{
2699
+ readonly results: z.ZodArray<z.ZodObject<{
2700
+ readonly domain: z.ZodString;
2701
+ readonly available: z.ZodBoolean;
2702
+ readonly registrar: z.ZodNullable<z.ZodString>;
2703
+ readonly expiration: z.ZodNullable<z.ZodString>;
2704
+ readonly created: z.ZodNullable<z.ZodString>;
2705
+ readonly note: z.ZodNullable<z.ZodString>;
2706
+ }, z.core.$strip>>;
2707
+ readonly message: z.ZodNullable<z.ZodString>;
2708
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2709
+ _tag: z.ZodLiteral<"no-provider">;
2710
+ provider: z.ZodNull;
2711
+ spend: z.ZodObject<{
2712
+ key: z.ZodLiteral<"dataforseo">;
2713
+ units: z.ZodLiteral<0>;
2714
+ }, z.core.$strict>;
2715
+ }, z.core.$strict>, z.ZodObject<{
2716
+ _tag: z.ZodLiteral<"cache">;
2717
+ provider: z.ZodLiteral<"dataforseo">;
2718
+ spend: z.ZodObject<{
2719
+ key: z.ZodLiteral<"dataforseo">;
2720
+ units: z.ZodLiteral<0>;
2721
+ }, z.core.$strict>;
2722
+ }, z.core.$strict>, z.ZodObject<{
2723
+ _tag: z.ZodLiteral<"live">;
2724
+ provider: z.ZodLiteral<"dataforseo">;
2725
+ spend: z.ZodObject<{
2726
+ key: z.ZodLiteral<"dataforseo">;
2727
+ units: z.ZodLiteral<1>;
2728
+ }, z.core.$strict>;
2729
+ }, z.core.$strict>], "_tag">;
2730
+ }, z.core.$strip>;
2731
+ meta: z.ZodObject<{
2732
+ requestId: z.ZodString;
2733
+ version: z.ZodLiteral<"1.0">;
2734
+ }, z.core.$strict>;
2735
+ }, z.core.$strip>, z.ZodObject<{
2736
+ data: z.ZodObject<{
2737
+ readonly results: z.ZodArray<z.ZodObject<{
2738
+ readonly domain: z.ZodString;
2739
+ readonly available: z.ZodBoolean;
2740
+ readonly registrar: z.ZodNullable<z.ZodString>;
2741
+ readonly expiration: z.ZodNullable<z.ZodString>;
2742
+ readonly created: z.ZodNullable<z.ZodString>;
2743
+ readonly note: z.ZodNullable<z.ZodString>;
2744
+ }, z.core.$strip>>;
2745
+ readonly message: z.ZodNullable<z.ZodString>;
2746
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2747
+ _tag: z.ZodLiteral<"no-provider">;
2748
+ provider: z.ZodNull;
2749
+ spend: z.ZodObject<{
2750
+ key: z.ZodLiteral<"dataforseo">;
2751
+ units: z.ZodLiteral<0>;
2752
+ }, z.core.$loose>;
2753
+ }, z.core.$loose>, z.ZodObject<{
2754
+ _tag: z.ZodLiteral<"cache">;
2755
+ provider: z.ZodLiteral<"dataforseo">;
2756
+ spend: z.ZodObject<{
2757
+ key: z.ZodLiteral<"dataforseo">;
2758
+ units: z.ZodLiteral<0>;
2759
+ }, z.core.$loose>;
2760
+ }, z.core.$loose>, z.ZodObject<{
2761
+ _tag: z.ZodLiteral<"live">;
2762
+ provider: z.ZodLiteral<"dataforseo">;
2763
+ spend: z.ZodObject<{
2764
+ key: z.ZodLiteral<"dataforseo">;
2765
+ units: z.ZodLiteral<1>;
2766
+ }, z.core.$loose>;
2767
+ }, z.core.$loose>], "_tag">;
2768
+ }, z.core.$strip>;
2769
+ meta: z.ZodObject<{
2770
+ requestId: z.ZodString;
2771
+ version: z.ZodLiteral<"1.0">;
2772
+ }, z.core.$loose>;
2773
+ }, z.core.$strip>>;
2774
+ export type DomainAvailability = z.output<typeof domainAvailabilityDataSchema.producer>;
2775
+ export declare const domainAvailabilityOperation: {
2776
+ readonly id: 'research.domain.availability';
2777
+ readonly method: 'GET';
2778
+ readonly path: '/api/v1/sites/{siteId}/research/domain-availability';
2779
+ readonly visibility: 'public';
2780
+ readonly semantics: {
2781
+ readonly kind: 'query';
2782
+ readonly sideEffects: 'none';
2783
+ readonly retry: 'idempotent';
2784
+ readonly readConsistency: 'primary';
2785
+ };
2786
+ readonly auth: {
2787
+ readonly credentials: readonly ['session', 'api_token'];
2788
+ readonly scopes: readonly ['research:read'];
2789
+ readonly minimumRole: 'viewer';
2790
+ readonly ownership: 'site';
2791
+ };
2792
+ readonly request: {
2793
+ readonly params: z.ZodObject<{
2794
+ siteId: z.ZodString;
2795
+ }, z.core.$strict>;
2796
+ readonly query: z.ZodObject<{
2797
+ domains: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>;
2798
+ }, z.core.$strict>;
2799
+ readonly headers: null;
2800
+ readonly body: null;
2801
+ };
2802
+ readonly responses: {
2803
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2804
+ data: z.ZodObject<{
2805
+ readonly results: z.ZodArray<z.ZodObject<{
2806
+ readonly domain: z.ZodString;
2807
+ readonly available: z.ZodBoolean;
2808
+ readonly registrar: z.ZodNullable<z.ZodString>;
2809
+ readonly expiration: z.ZodNullable<z.ZodString>;
2810
+ readonly created: z.ZodNullable<z.ZodString>;
2811
+ readonly note: z.ZodNullable<z.ZodString>;
2812
+ }, z.core.$strip>>;
2813
+ readonly message: z.ZodNullable<z.ZodString>;
2814
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2815
+ _tag: z.ZodLiteral<"no-provider">;
2816
+ provider: z.ZodNull;
2817
+ spend: z.ZodObject<{
2818
+ key: z.ZodLiteral<"dataforseo">;
2819
+ units: z.ZodLiteral<0>;
2820
+ }, z.core.$strict>;
2821
+ }, z.core.$strict>, z.ZodObject<{
2822
+ _tag: z.ZodLiteral<"cache">;
2823
+ provider: z.ZodLiteral<"dataforseo">;
2824
+ spend: z.ZodObject<{
2825
+ key: z.ZodLiteral<"dataforseo">;
2826
+ units: z.ZodLiteral<0>;
2827
+ }, z.core.$strict>;
2828
+ }, z.core.$strict>, z.ZodObject<{
2829
+ _tag: z.ZodLiteral<"live">;
2830
+ provider: z.ZodLiteral<"dataforseo">;
2831
+ spend: z.ZodObject<{
2832
+ key: z.ZodLiteral<"dataforseo">;
2833
+ units: z.ZodLiteral<1>;
2834
+ }, z.core.$strict>;
2835
+ }, z.core.$strict>], "_tag">;
2836
+ }, z.core.$strip>;
2837
+ meta: z.ZodObject<{
2838
+ requestId: z.ZodString;
2839
+ version: z.ZodLiteral<"1.0">;
2840
+ }, z.core.$strict>;
2841
+ }, z.core.$strip>, z.ZodObject<{
2842
+ data: z.ZodObject<{
2843
+ readonly results: z.ZodArray<z.ZodObject<{
2844
+ readonly domain: z.ZodString;
2845
+ readonly available: z.ZodBoolean;
2846
+ readonly registrar: z.ZodNullable<z.ZodString>;
2847
+ readonly expiration: z.ZodNullable<z.ZodString>;
2848
+ readonly created: z.ZodNullable<z.ZodString>;
2849
+ readonly note: z.ZodNullable<z.ZodString>;
2850
+ }, z.core.$strip>>;
2851
+ readonly message: z.ZodNullable<z.ZodString>;
2852
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2853
+ _tag: z.ZodLiteral<"no-provider">;
2854
+ provider: z.ZodNull;
2855
+ spend: z.ZodObject<{
2856
+ key: z.ZodLiteral<"dataforseo">;
2857
+ units: z.ZodLiteral<0>;
2858
+ }, z.core.$loose>;
2859
+ }, z.core.$loose>, z.ZodObject<{
2860
+ _tag: z.ZodLiteral<"cache">;
2861
+ provider: z.ZodLiteral<"dataforseo">;
2862
+ spend: z.ZodObject<{
2863
+ key: z.ZodLiteral<"dataforseo">;
2864
+ units: z.ZodLiteral<0>;
2865
+ }, z.core.$loose>;
2866
+ }, z.core.$loose>, z.ZodObject<{
2867
+ _tag: z.ZodLiteral<"live">;
2868
+ provider: z.ZodLiteral<"dataforseo">;
2869
+ spend: z.ZodObject<{
2870
+ key: z.ZodLiteral<"dataforseo">;
2871
+ units: z.ZodLiteral<1>;
2872
+ }, z.core.$loose>;
2873
+ }, z.core.$loose>], "_tag">;
2874
+ }, z.core.$strip>;
2875
+ meta: z.ZodObject<{
2876
+ requestId: z.ZodString;
2877
+ version: z.ZodLiteral<"1.0">;
2878
+ }, z.core.$loose>;
2879
+ }, z.core.$strip>>;
2880
+ };
2881
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "entitlement_required", "quota_exhausted", "provider_unavailable", "conflict", "rate_limited", "contract_violation", "internal_error"];
2882
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2883
+ readonly error: z.ZodObject<{
2884
+ code: z.ZodEnum<{
2885
+ auth_expired: "auth_expired";
2886
+ conflict: "conflict";
2887
+ contract_violation: "contract_violation";
2888
+ entitlement_required: "entitlement_required";
2889
+ forbidden: "forbidden";
2890
+ internal_error: "internal_error";
2891
+ invalid_request: "invalid_request";
2892
+ not_found: "not_found";
2893
+ provider_unavailable: "provider_unavailable";
2894
+ quota_exhausted: "quota_exhausted";
2895
+ rate_limited: "rate_limited";
2896
+ site_ambiguous: "site_ambiguous";
2897
+ stale_evidence: "stale_evidence";
2898
+ unauthorized: "unauthorized";
2899
+ }>;
2900
+ message: z.ZodString;
2901
+ requestId: z.ZodString;
2902
+ retryable: z.ZodBoolean;
2903
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2904
+ }, z.core.$strict>;
2905
+ }, z.core.$strip>, z.ZodObject<{
2906
+ readonly error: z.ZodObject<{
2907
+ code: z.ZodEnum<{
2908
+ auth_expired: "auth_expired";
2909
+ conflict: "conflict";
2910
+ contract_violation: "contract_violation";
2911
+ entitlement_required: "entitlement_required";
2912
+ forbidden: "forbidden";
2913
+ internal_error: "internal_error";
2914
+ invalid_request: "invalid_request";
2915
+ not_found: "not_found";
2916
+ provider_unavailable: "provider_unavailable";
2917
+ quota_exhausted: "quota_exhausted";
2918
+ rate_limited: "rate_limited";
2919
+ site_ambiguous: "site_ambiguous";
2920
+ stale_evidence: "stale_evidence";
2921
+ unauthorized: "unauthorized";
2922
+ }>;
2923
+ message: z.ZodString;
2924
+ requestId: z.ZodString;
2925
+ retryable: z.ZodBoolean;
2926
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
2927
+ }, z.core.$loose>;
2928
+ }, z.core.$strip>>;
2929
+ readonly resources: {
2930
+ readonly reads: readonly [{
2931
+ readonly type: 'site.research';
2932
+ readonly idFrom: 'params.siteId';
2933
+ }];
2934
+ readonly changes: readonly [];
2935
+ };
2936
+ readonly policy: {
2937
+ readonly rate: {
2938
+ readonly name: 'public-v1-fixed-window';
2939
+ readonly limit: 50;
2940
+ readonly windowSeconds: 60;
2941
+ };
2942
+ readonly idempotency: {
2943
+ readonly _tag: 'none';
2944
+ };
2945
+ readonly entitlement: 'growth';
2946
+ readonly meter: {
2947
+ readonly key: 'dataforseo';
2948
+ readonly units: 1;
2949
+ readonly charge: 'live-only';
2950
+ };
2951
+ };
2952
+ readonly lifecycle: {
2953
+ readonly introduced: '1.2.0';
2954
+ };
2955
+ readonly docs: {
2956
+ readonly summary: 'Check domain availability';
2957
+ readonly description: 'Returns the registration status of up to ten domains, with the registrar and expiry when the domain is taken. Repeat the domains parameter for each domain. Cached reads consume no units.';
2958
+ readonly tags: readonly ["Research"];
2959
+ readonly examples: readonly [{
2960
+ readonly request: {
2961
+ readonly params: {
2962
+ readonly siteId: 'site_01JXYZ';
2963
+ };
2964
+ readonly query: {
2965
+ readonly domains: readonly ["example.com", "example.dev"];
2966
+ };
2967
+ };
2968
+ readonly response: {
2969
+ readonly status: 200;
2970
+ readonly body: {
2971
+ readonly data: {
2972
+ readonly results: readonly [{
2973
+ readonly domain: 'example.com';
2974
+ readonly available: false;
2975
+ readonly registrar: 'Example Registrar';
2976
+ readonly expiration: '2027-04-01';
2977
+ readonly created: '1995-08-14';
2978
+ readonly note: null;
2979
+ }];
2980
+ readonly message: null;
2981
+ readonly evidence: {
2982
+ readonly _tag: 'live';
2983
+ readonly provider: 'dataforseo';
2984
+ readonly spend: {
2985
+ readonly key: 'dataforseo';
2986
+ readonly units: 1;
2987
+ };
2988
+ };
2989
+ };
2990
+ readonly meta: {
2991
+ readonly requestId: 'req_01JXYZ';
2992
+ readonly version: '1.0';
2993
+ };
2994
+ };
2995
+ };
2996
+ }];
2997
+ };
2998
+ };
2162
2999
  export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2163
3000
  readonly overview: {
2164
3001
  readonly id: 'research.overview';
2165
3002
  readonly method: 'GET';
2166
- readonly path: '/api/v1/sites/{siteId}/research';
3003
+ readonly path: '/api/v1/sites/{siteId}/research';
3004
+ readonly visibility: 'public';
3005
+ readonly semantics: {
3006
+ readonly kind: 'query';
3007
+ readonly sideEffects: 'none';
3008
+ readonly retry: 'idempotent';
3009
+ readonly readConsistency: 'primary';
3010
+ };
3011
+ readonly auth: {
3012
+ readonly credentials: readonly ["session", "api_token"];
3013
+ readonly scopes: readonly ["research:read"];
3014
+ readonly minimumRole: 'viewer';
3015
+ readonly ownership: 'site';
3016
+ };
3017
+ readonly request: {
3018
+ readonly params: z.ZodObject<{
3019
+ siteId: z.ZodString;
3020
+ }, z.core.$strict>;
3021
+ readonly query: null;
3022
+ readonly headers: null;
3023
+ readonly body: null;
3024
+ };
3025
+ readonly responses: {
3026
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
3027
+ data: z.ZodObject<{
3028
+ readonly evidence: z.ZodObject<{
3029
+ _tag: z.ZodLiteral<"stored">;
3030
+ provider: z.ZodLiteral<"dataforseo">;
3031
+ collectedAt: z.ZodNullable<z.ZodString>;
3032
+ }, z.core.$strict>;
3033
+ readonly summary: z.ZodObject<{
3034
+ competitorCount: z.ZodNumber;
3035
+ quickWins: z.ZodNumber;
3036
+ totalSharedKeywords: z.ZodNumber;
3037
+ totalTrafficValue: z.ZodNumber;
3038
+ }, z.core.$strict>;
3039
+ readonly subject: z.ZodNullable<z.ZodObject<{
3040
+ readonly domain: z.ZodString;
3041
+ readonly metrics: z.ZodObject<{
3042
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3043
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3044
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3045
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3046
+ }, z.core.$strip>;
3047
+ readonly history: z.ZodArray<z.ZodObject<{
3048
+ readonly observedAt: z.ZodNullable<z.ZodString>;
3049
+ readonly metrics: z.ZodObject<{
3050
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3051
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3052
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3053
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3054
+ }, z.core.$strip>;
3055
+ }, z.core.$strip>>;
3056
+ readonly collectedAt: z.ZodNullable<z.ZodString>;
3057
+ }, z.core.$strip>>;
3058
+ readonly competitors: z.ZodArray<z.ZodObject<{
3059
+ readonly domain: z.ZodString;
3060
+ readonly discovery: z.ZodEnum<{
3061
+ automatic: "automatic";
3062
+ manual: "manual";
3063
+ unknown: "unknown";
3064
+ }>;
3065
+ readonly metrics: z.ZodObject<{
3066
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3067
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3068
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3069
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3070
+ }, z.core.$strip>;
3071
+ readonly topKeywords: z.ZodArray<z.ZodObject<{
3072
+ readonly keyword: z.ZodString;
3073
+ readonly position: z.ZodNullable<z.ZodNumber>;
3074
+ readonly volume: z.ZodNullable<z.ZodNumber>;
3075
+ readonly traffic: z.ZodNullable<z.ZodNumber>;
3076
+ readonly url: z.ZodNullable<z.ZodString>;
3077
+ readonly intent: z.ZodNullable<z.ZodString>;
3078
+ }, z.core.$strip>>;
3079
+ readonly sharedKeywords: z.ZodArray<z.ZodObject<{
3080
+ readonly keyword: z.ZodString;
3081
+ readonly yourPosition: z.ZodNumber;
3082
+ readonly theirPosition: z.ZodNumber;
3083
+ readonly volume: z.ZodNumber;
3084
+ }, z.core.$strip>>;
3085
+ readonly keywordGaps: z.ZodArray<z.ZodObject<{
3086
+ readonly keyword: z.ZodString;
3087
+ readonly position: z.ZodNullable<z.ZodNumber>;
3088
+ readonly volume: z.ZodNullable<z.ZodNumber>;
3089
+ readonly traffic: z.ZodNullable<z.ZodNumber>;
3090
+ readonly url: z.ZodNullable<z.ZodString>;
3091
+ readonly intent: z.ZodNullable<z.ZodString>;
3092
+ }, z.core.$strip>>;
3093
+ readonly quickWins: z.ZodArray<z.ZodObject<{
3094
+ readonly keyword: z.ZodString;
3095
+ readonly yourPosition: z.ZodNumber;
3096
+ readonly theirPosition: z.ZodNumber;
3097
+ readonly volume: z.ZodNumber;
3098
+ }, z.core.$strip>>;
3099
+ readonly history: z.ZodArray<z.ZodObject<{
3100
+ readonly observedAt: z.ZodNullable<z.ZodString>;
3101
+ readonly metrics: z.ZodObject<{
3102
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3103
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3104
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3105
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3106
+ }, z.core.$strip>;
3107
+ }, z.core.$strip>>;
3108
+ readonly collectedAt: z.ZodNullable<z.ZodString>;
3109
+ }, z.core.$strip>>;
3110
+ }, z.core.$strip>;
3111
+ meta: z.ZodObject<{
3112
+ requestId: z.ZodString;
3113
+ version: z.ZodLiteral<"1.0">;
3114
+ }, z.core.$strict>;
3115
+ }, z.core.$strip>, z.ZodObject<{
3116
+ data: z.ZodObject<{
3117
+ readonly evidence: z.ZodObject<{
3118
+ _tag: z.ZodLiteral<"stored">;
3119
+ provider: z.ZodLiteral<"dataforseo">;
3120
+ collectedAt: z.ZodNullable<z.ZodString>;
3121
+ }, z.core.$loose>;
3122
+ readonly summary: z.ZodObject<{
3123
+ competitorCount: z.ZodNumber;
3124
+ quickWins: z.ZodNumber;
3125
+ totalSharedKeywords: z.ZodNumber;
3126
+ totalTrafficValue: z.ZodNumber;
3127
+ }, z.core.$loose>;
3128
+ readonly subject: z.ZodNullable<z.ZodObject<{
3129
+ readonly domain: z.ZodString;
3130
+ readonly metrics: z.ZodObject<{
3131
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3132
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3133
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3134
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3135
+ }, z.core.$strip>;
3136
+ readonly history: z.ZodArray<z.ZodObject<{
3137
+ readonly observedAt: z.ZodNullable<z.ZodString>;
3138
+ readonly metrics: z.ZodObject<{
3139
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3140
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3141
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3142
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3143
+ }, z.core.$strip>;
3144
+ }, z.core.$strip>>;
3145
+ readonly collectedAt: z.ZodNullable<z.ZodString>;
3146
+ }, z.core.$strip>>;
3147
+ readonly competitors: z.ZodArray<z.ZodObject<{
3148
+ readonly domain: z.ZodString;
3149
+ readonly discovery: z.ZodEnum<{
3150
+ automatic: "automatic";
3151
+ manual: "manual";
3152
+ unknown: "unknown";
3153
+ }>;
3154
+ readonly metrics: z.ZodObject<{
3155
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3156
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3157
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3158
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3159
+ }, z.core.$strip>;
3160
+ readonly topKeywords: z.ZodArray<z.ZodObject<{
3161
+ readonly keyword: z.ZodString;
3162
+ readonly position: z.ZodNullable<z.ZodNumber>;
3163
+ readonly volume: z.ZodNullable<z.ZodNumber>;
3164
+ readonly traffic: z.ZodNullable<z.ZodNumber>;
3165
+ readonly url: z.ZodNullable<z.ZodString>;
3166
+ readonly intent: z.ZodNullable<z.ZodString>;
3167
+ }, z.core.$strip>>;
3168
+ readonly sharedKeywords: z.ZodArray<z.ZodObject<{
3169
+ readonly keyword: z.ZodString;
3170
+ readonly yourPosition: z.ZodNumber;
3171
+ readonly theirPosition: z.ZodNumber;
3172
+ readonly volume: z.ZodNumber;
3173
+ }, z.core.$strip>>;
3174
+ readonly keywordGaps: z.ZodArray<z.ZodObject<{
3175
+ readonly keyword: z.ZodString;
3176
+ readonly position: z.ZodNullable<z.ZodNumber>;
3177
+ readonly volume: z.ZodNullable<z.ZodNumber>;
3178
+ readonly traffic: z.ZodNullable<z.ZodNumber>;
3179
+ readonly url: z.ZodNullable<z.ZodString>;
3180
+ readonly intent: z.ZodNullable<z.ZodString>;
3181
+ }, z.core.$strip>>;
3182
+ readonly quickWins: z.ZodArray<z.ZodObject<{
3183
+ readonly keyword: z.ZodString;
3184
+ readonly yourPosition: z.ZodNumber;
3185
+ readonly theirPosition: z.ZodNumber;
3186
+ readonly volume: z.ZodNumber;
3187
+ }, z.core.$strip>>;
3188
+ readonly history: z.ZodArray<z.ZodObject<{
3189
+ readonly observedAt: z.ZodNullable<z.ZodString>;
3190
+ readonly metrics: z.ZodObject<{
3191
+ readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
3192
+ readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
3193
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
3194
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3195
+ }, z.core.$strip>;
3196
+ }, z.core.$strip>>;
3197
+ readonly collectedAt: z.ZodNullable<z.ZodString>;
3198
+ }, z.core.$strip>>;
3199
+ }, z.core.$strip>;
3200
+ meta: z.ZodObject<{
3201
+ requestId: z.ZodString;
3202
+ version: z.ZodLiteral<"1.0">;
3203
+ }, z.core.$loose>;
3204
+ }, z.core.$strip>>;
3205
+ };
3206
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "contract_violation", "internal_error"];
3207
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
3208
+ readonly error: z.ZodObject<{
3209
+ code: z.ZodEnum<{
3210
+ auth_expired: "auth_expired";
3211
+ conflict: "conflict";
3212
+ contract_violation: "contract_violation";
3213
+ entitlement_required: "entitlement_required";
3214
+ forbidden: "forbidden";
3215
+ internal_error: "internal_error";
3216
+ invalid_request: "invalid_request";
3217
+ not_found: "not_found";
3218
+ provider_unavailable: "provider_unavailable";
3219
+ quota_exhausted: "quota_exhausted";
3220
+ rate_limited: "rate_limited";
3221
+ site_ambiguous: "site_ambiguous";
3222
+ stale_evidence: "stale_evidence";
3223
+ unauthorized: "unauthorized";
3224
+ }>;
3225
+ message: z.ZodString;
3226
+ requestId: z.ZodString;
3227
+ retryable: z.ZodBoolean;
3228
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
3229
+ }, z.core.$strict>;
3230
+ }, z.core.$strip>, z.ZodObject<{
3231
+ readonly error: z.ZodObject<{
3232
+ code: z.ZodEnum<{
3233
+ auth_expired: "auth_expired";
3234
+ conflict: "conflict";
3235
+ contract_violation: "contract_violation";
3236
+ entitlement_required: "entitlement_required";
3237
+ forbidden: "forbidden";
3238
+ internal_error: "internal_error";
3239
+ invalid_request: "invalid_request";
3240
+ not_found: "not_found";
3241
+ provider_unavailable: "provider_unavailable";
3242
+ quota_exhausted: "quota_exhausted";
3243
+ rate_limited: "rate_limited";
3244
+ site_ambiguous: "site_ambiguous";
3245
+ stale_evidence: "stale_evidence";
3246
+ unauthorized: "unauthorized";
3247
+ }>;
3248
+ message: z.ZodString;
3249
+ requestId: z.ZodString;
3250
+ retryable: z.ZodBoolean;
3251
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
3252
+ }, z.core.$loose>;
3253
+ }, z.core.$strip>>;
3254
+ readonly resources: {
3255
+ readonly reads: readonly [{
3256
+ readonly type: 'site.research';
3257
+ readonly idFrom: 'params.siteId';
3258
+ }];
3259
+ readonly changes: readonly [];
3260
+ };
3261
+ readonly policy: {
3262
+ readonly rate: {
3263
+ readonly name: 'public-v1-fixed-window';
3264
+ readonly limit: 50;
3265
+ readonly windowSeconds: 60;
3266
+ };
3267
+ readonly idempotency: {
3268
+ readonly _tag: 'none';
3269
+ };
3270
+ readonly entitlement: null;
3271
+ readonly meter: null;
3272
+ };
3273
+ readonly lifecycle: {
3274
+ readonly introduced: '1.0.0';
3275
+ };
3276
+ readonly docs: {
3277
+ readonly summary: 'Get stored Site Research';
3278
+ readonly description: 'Returns retained competitor and keyword-gap evidence already collected for the Site. It never starts provider work and does not consume metered units.';
3279
+ readonly tags: readonly ["Research"];
3280
+ readonly examples: readonly [{
3281
+ readonly request: {
3282
+ readonly params: {
3283
+ readonly siteId: 'site_01JXYZ';
3284
+ };
3285
+ };
3286
+ readonly response: {
3287
+ readonly status: 200;
3288
+ readonly body: {
3289
+ readonly data: {
3290
+ readonly evidence: {
3291
+ readonly _tag: 'stored';
3292
+ readonly provider: 'dataforseo';
3293
+ readonly collectedAt: null;
3294
+ };
3295
+ readonly summary: {
3296
+ readonly competitorCount: 0;
3297
+ readonly quickWins: 0;
3298
+ readonly totalSharedKeywords: 0;
3299
+ readonly totalTrafficValue: 0;
3300
+ };
3301
+ readonly subject: null;
3302
+ readonly competitors: readonly [];
3303
+ };
3304
+ readonly meta: {
3305
+ readonly requestId: 'req_01JXYZ';
3306
+ readonly version: '1.0';
3307
+ };
3308
+ };
3309
+ };
3310
+ }];
3311
+ };
3312
+ };
3313
+ readonly keywords: {
3314
+ readonly id: 'research.keywords';
3315
+ readonly method: 'GET';
3316
+ readonly path: '/api/v1/sites/{siteId}/research/keywords';
3317
+ readonly visibility: 'public';
3318
+ readonly semantics: {
3319
+ readonly kind: 'query';
3320
+ readonly sideEffects: 'none';
3321
+ readonly retry: 'idempotent';
3322
+ readonly readConsistency: 'primary';
3323
+ };
3324
+ readonly auth: {
3325
+ readonly credentials: readonly ['session', 'api_token'];
3326
+ readonly scopes: readonly ['research:read'];
3327
+ readonly minimumRole: 'viewer';
3328
+ readonly ownership: 'site';
3329
+ };
3330
+ readonly request: {
3331
+ readonly params: z.ZodObject<{
3332
+ siteId: z.ZodString;
3333
+ }, z.core.$strict>;
3334
+ readonly query: z.ZodObject<{
3335
+ topic: z.ZodString;
3336
+ minVolume: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3337
+ maxVolume: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3338
+ minDifficulty: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3339
+ maxDifficulty: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3340
+ intent: z.ZodOptional<z.ZodString>;
3341
+ includeRelated: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
3342
+ 0: "0";
3343
+ 1: "1";
3344
+ false: "false";
3345
+ true: "true";
3346
+ }>]>, z.ZodTransform<boolean, "0" | "1" | "false" | "true" | boolean>>>;
3347
+ verbose: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
3348
+ 0: "0";
3349
+ 1: "1";
3350
+ false: "false";
3351
+ true: "true";
3352
+ }>]>, z.ZodTransform<boolean, "0" | "1" | "false" | "true" | boolean>>>;
3353
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3354
+ locationCode: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3355
+ }, z.core.$strict>;
3356
+ readonly headers: null;
3357
+ readonly body: null;
3358
+ };
3359
+ readonly responses: {
3360
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
3361
+ data: z.ZodObject<{
3362
+ readonly topic: z.ZodString;
3363
+ readonly keywords: z.ZodArray<z.ZodObject<{
3364
+ readonly keyword: z.ZodString;
3365
+ readonly volume: z.ZodNullable<z.ZodNumber>;
3366
+ readonly difficulty: z.ZodNullable<z.ZodNumber>;
3367
+ readonly intent: z.ZodNullable<z.ZodString>;
3368
+ readonly secondaryIntents: z.ZodNullable<z.ZodArray<z.ZodString>>;
3369
+ readonly cpc: z.ZodNullable<z.ZodNumber>;
3370
+ readonly competition: z.ZodNullable<z.ZodNumber>;
3371
+ readonly competitionLevel: z.ZodNullable<z.ZodEnum<{
3372
+ HIGH: "HIGH";
3373
+ LOW: "LOW";
3374
+ MEDIUM: "MEDIUM";
3375
+ }>>;
3376
+ readonly lowBid: z.ZodNullable<z.ZodNumber>;
3377
+ readonly highBid: z.ZodNullable<z.ZodNumber>;
3378
+ readonly trend: z.ZodNullable<z.ZodArray<z.ZodObject<{
3379
+ readonly year: z.ZodNumber;
3380
+ readonly month: z.ZodNumber;
3381
+ readonly volume: z.ZodNumber;
3382
+ }, z.core.$strip>>>;
3383
+ readonly serpFeatures: z.ZodNullable<z.ZodArray<z.ZodString>>;
3384
+ readonly backlinks: z.ZodNullable<z.ZodNumber>;
3385
+ readonly referringDomains: z.ZodNullable<z.ZodNumber>;
3386
+ }, z.core.$strip>>;
3387
+ readonly totalFound: z.ZodNumber;
3388
+ readonly filters: z.ZodObject<{
3389
+ minVolume: z.ZodNumber;
3390
+ maxVolume: z.ZodNumber;
3391
+ minDifficulty: z.ZodNumber;
3392
+ maxDifficulty: z.ZodNumber;
3393
+ intent: z.ZodOptional<z.ZodString>;
3394
+ }, z.core.$strict>;
3395
+ readonly message: z.ZodOptional<z.ZodString>;
3396
+ readonly tip: z.ZodOptional<z.ZodString>;
3397
+ readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3398
+ message: z.ZodString;
3399
+ topResults: z.ZodArray<z.ZodObject<{
3400
+ readonly position: z.ZodNumber;
3401
+ readonly title: z.ZodString;
3402
+ readonly domain: z.ZodString;
3403
+ readonly url: z.ZodString;
3404
+ }, z.core.$strip>>;
3405
+ tip: z.ZodString;
3406
+ }, z.core.$strict>>>;
3407
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
3408
+ _tag: z.ZodLiteral<"no-provider">;
3409
+ provider: z.ZodNull;
3410
+ spend: z.ZodObject<{
3411
+ key: z.ZodLiteral<"dataforseo">;
3412
+ units: z.ZodLiteral<0>;
3413
+ }, z.core.$strict>;
3414
+ }, z.core.$strict>, z.ZodObject<{
3415
+ _tag: z.ZodLiteral<"cache">;
3416
+ provider: z.ZodLiteral<"dataforseo">;
3417
+ spend: z.ZodObject<{
3418
+ key: z.ZodLiteral<"dataforseo">;
3419
+ units: z.ZodLiteral<0>;
3420
+ }, z.core.$strict>;
3421
+ }, z.core.$strict>, z.ZodObject<{
3422
+ _tag: z.ZodLiteral<"live">;
3423
+ provider: z.ZodLiteral<"dataforseo">;
3424
+ spend: z.ZodObject<{
3425
+ key: z.ZodLiteral<"dataforseo">;
3426
+ units: z.ZodLiteral<1>;
3427
+ }, z.core.$strict>;
3428
+ }, z.core.$strict>], "_tag">;
3429
+ }, z.core.$strip>;
3430
+ meta: z.ZodObject<{
3431
+ requestId: z.ZodString;
3432
+ version: z.ZodLiteral<"1.0">;
3433
+ }, z.core.$strict>;
3434
+ }, z.core.$strip>, z.ZodObject<{
3435
+ data: z.ZodObject<{
3436
+ readonly topic: z.ZodString;
3437
+ readonly keywords: z.ZodArray<z.ZodObject<{
3438
+ readonly keyword: z.ZodString;
3439
+ readonly volume: z.ZodNullable<z.ZodNumber>;
3440
+ readonly difficulty: z.ZodNullable<z.ZodNumber>;
3441
+ readonly intent: z.ZodNullable<z.ZodString>;
3442
+ readonly secondaryIntents: z.ZodNullable<z.ZodArray<z.ZodString>>;
3443
+ readonly cpc: z.ZodNullable<z.ZodNumber>;
3444
+ readonly competition: z.ZodNullable<z.ZodNumber>;
3445
+ readonly competitionLevel: z.ZodNullable<z.ZodEnum<{
3446
+ HIGH: "HIGH";
3447
+ LOW: "LOW";
3448
+ MEDIUM: "MEDIUM";
3449
+ }>>;
3450
+ readonly lowBid: z.ZodNullable<z.ZodNumber>;
3451
+ readonly highBid: z.ZodNullable<z.ZodNumber>;
3452
+ readonly trend: z.ZodNullable<z.ZodArray<z.ZodObject<{
3453
+ readonly year: z.ZodNumber;
3454
+ readonly month: z.ZodNumber;
3455
+ readonly volume: z.ZodNumber;
3456
+ }, z.core.$strip>>>;
3457
+ readonly serpFeatures: z.ZodNullable<z.ZodArray<z.ZodString>>;
3458
+ readonly backlinks: z.ZodNullable<z.ZodNumber>;
3459
+ readonly referringDomains: z.ZodNullable<z.ZodNumber>;
3460
+ }, z.core.$strip>>;
3461
+ readonly totalFound: z.ZodNumber;
3462
+ readonly filters: z.ZodObject<{
3463
+ minVolume: z.ZodNumber;
3464
+ maxVolume: z.ZodNumber;
3465
+ minDifficulty: z.ZodNumber;
3466
+ maxDifficulty: z.ZodNumber;
3467
+ intent: z.ZodOptional<z.ZodString>;
3468
+ }, z.core.$loose>;
3469
+ readonly message: z.ZodOptional<z.ZodString>;
3470
+ readonly tip: z.ZodOptional<z.ZodString>;
3471
+ readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3472
+ message: z.ZodString;
3473
+ topResults: z.ZodArray<z.ZodObject<{
3474
+ readonly position: z.ZodNumber;
3475
+ readonly title: z.ZodString;
3476
+ readonly domain: z.ZodString;
3477
+ readonly url: z.ZodString;
3478
+ }, z.core.$strip>>;
3479
+ tip: z.ZodString;
3480
+ }, z.core.$loose>>>;
3481
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
3482
+ _tag: z.ZodLiteral<"no-provider">;
3483
+ provider: z.ZodNull;
3484
+ spend: z.ZodObject<{
3485
+ key: z.ZodLiteral<"dataforseo">;
3486
+ units: z.ZodLiteral<0>;
3487
+ }, z.core.$loose>;
3488
+ }, z.core.$loose>, z.ZodObject<{
3489
+ _tag: z.ZodLiteral<"cache">;
3490
+ provider: z.ZodLiteral<"dataforseo">;
3491
+ spend: z.ZodObject<{
3492
+ key: z.ZodLiteral<"dataforseo">;
3493
+ units: z.ZodLiteral<0>;
3494
+ }, z.core.$loose>;
3495
+ }, z.core.$loose>, z.ZodObject<{
3496
+ _tag: z.ZodLiteral<"live">;
3497
+ provider: z.ZodLiteral<"dataforseo">;
3498
+ spend: z.ZodObject<{
3499
+ key: z.ZodLiteral<"dataforseo">;
3500
+ units: z.ZodLiteral<1>;
3501
+ }, z.core.$loose>;
3502
+ }, z.core.$loose>], "_tag">;
3503
+ }, z.core.$strip>;
3504
+ meta: z.ZodObject<{
3505
+ requestId: z.ZodString;
3506
+ version: z.ZodLiteral<"1.0">;
3507
+ }, z.core.$loose>;
3508
+ }, z.core.$strip>>;
3509
+ };
3510
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "entitlement_required", "quota_exhausted", "provider_unavailable", "conflict", "rate_limited", "contract_violation", "internal_error"];
3511
+ readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
3512
+ readonly error: z.ZodObject<{
3513
+ code: z.ZodEnum<{
3514
+ auth_expired: "auth_expired";
3515
+ conflict: "conflict";
3516
+ contract_violation: "contract_violation";
3517
+ entitlement_required: "entitlement_required";
3518
+ forbidden: "forbidden";
3519
+ internal_error: "internal_error";
3520
+ invalid_request: "invalid_request";
3521
+ not_found: "not_found";
3522
+ provider_unavailable: "provider_unavailable";
3523
+ quota_exhausted: "quota_exhausted";
3524
+ rate_limited: "rate_limited";
3525
+ site_ambiguous: "site_ambiguous";
3526
+ stale_evidence: "stale_evidence";
3527
+ unauthorized: "unauthorized";
3528
+ }>;
3529
+ message: z.ZodString;
3530
+ requestId: z.ZodString;
3531
+ retryable: z.ZodBoolean;
3532
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
3533
+ }, z.core.$strict>;
3534
+ }, z.core.$strip>, z.ZodObject<{
3535
+ readonly error: z.ZodObject<{
3536
+ code: z.ZodEnum<{
3537
+ auth_expired: "auth_expired";
3538
+ conflict: "conflict";
3539
+ contract_violation: "contract_violation";
3540
+ entitlement_required: "entitlement_required";
3541
+ forbidden: "forbidden";
3542
+ internal_error: "internal_error";
3543
+ invalid_request: "invalid_request";
3544
+ not_found: "not_found";
3545
+ provider_unavailable: "provider_unavailable";
3546
+ quota_exhausted: "quota_exhausted";
3547
+ rate_limited: "rate_limited";
3548
+ site_ambiguous: "site_ambiguous";
3549
+ stale_evidence: "stale_evidence";
3550
+ unauthorized: "unauthorized";
3551
+ }>;
3552
+ message: z.ZodString;
3553
+ requestId: z.ZodString;
3554
+ retryable: z.ZodBoolean;
3555
+ details: z.ZodRecord<z.ZodString, z.ZodUnknown>;
3556
+ }, z.core.$loose>;
3557
+ }, z.core.$strip>>;
3558
+ readonly resources: {
3559
+ readonly reads: readonly [{
3560
+ readonly type: 'site.research';
3561
+ readonly idFrom: 'params.siteId';
3562
+ }];
3563
+ readonly changes: readonly [];
3564
+ };
3565
+ readonly policy: {
3566
+ readonly rate: {
3567
+ readonly name: 'public-v1-fixed-window';
3568
+ readonly limit: 50;
3569
+ readonly windowSeconds: 60;
3570
+ };
3571
+ readonly idempotency: {
3572
+ readonly _tag: 'none';
3573
+ };
3574
+ readonly entitlement: 'growth';
3575
+ readonly meter: {
3576
+ readonly key: 'dataforseo';
3577
+ readonly units: 1;
3578
+ readonly charge: 'live-only';
3579
+ };
3580
+ };
3581
+ readonly lifecycle: {
3582
+ readonly introduced: '1.0.0';
3583
+ };
3584
+ readonly docs: {
3585
+ readonly summary: 'Research keyword ideas';
3586
+ readonly description: 'Returns keyword ideas with volume, difficulty, intent, cost data, and explicit provider execution and spend evidence. Local guidance and cached reads consume no units.';
3587
+ readonly tags: readonly ["Research"];
3588
+ readonly examples: readonly [{
3589
+ readonly request: {
3590
+ readonly params: {
3591
+ readonly siteId: 'site_01JXYZ';
3592
+ };
3593
+ readonly query: {
3594
+ readonly topic: 'nuxt seo';
3595
+ readonly limit: 20;
3596
+ };
3597
+ };
3598
+ readonly response: {
3599
+ readonly status: 200;
3600
+ readonly body: {
3601
+ readonly data: {
3602
+ readonly topic: 'nuxt seo';
3603
+ readonly keywords: readonly [];
3604
+ readonly totalFound: 0;
3605
+ readonly filters: {
3606
+ readonly minVolume: 10;
3607
+ readonly maxVolume: 10000;
3608
+ readonly minDifficulty: 0;
3609
+ readonly maxDifficulty: 60;
3610
+ };
3611
+ readonly evidence: {
3612
+ readonly _tag: 'live';
3613
+ readonly provider: 'dataforseo';
3614
+ readonly spend: {
3615
+ readonly key: 'dataforseo';
3616
+ readonly units: 1;
3617
+ };
3618
+ };
3619
+ };
3620
+ readonly meta: {
3621
+ readonly requestId: 'req_01JXYZ';
3622
+ readonly version: '1.0';
3623
+ };
3624
+ };
3625
+ };
3626
+ }];
3627
+ };
3628
+ };
3629
+ readonly serp: {
3630
+ readonly id: 'research.serp';
3631
+ readonly method: 'GET';
3632
+ readonly path: '/api/v1/sites/{siteId}/research/serp';
2167
3633
  readonly visibility: 'public';
2168
3634
  readonly semantics: {
2169
3635
  readonly kind: 'query';
@@ -2172,8 +3638,8 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2172
3638
  readonly readConsistency: 'primary';
2173
3639
  };
2174
3640
  readonly auth: {
2175
- readonly credentials: readonly ["session", "api_token"];
2176
- readonly scopes: readonly ["research:read"];
3641
+ readonly credentials: readonly ['session', 'api_token'];
3642
+ readonly scopes: readonly ['research:read'];
2177
3643
  readonly minimumRole: 'viewer';
2178
3644
  readonly ownership: 'site';
2179
3645
  };
@@ -2181,95 +3647,33 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2181
3647
  readonly params: z.ZodObject<{
2182
3648
  siteId: z.ZodString;
2183
3649
  }, z.core.$strict>;
2184
- readonly query: null;
3650
+ readonly query: z.ZodObject<{
3651
+ keyword: z.ZodString;
3652
+ depth: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3653
+ locationCode: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3654
+ }, z.core.$strict>;
2185
3655
  readonly headers: null;
2186
3656
  readonly body: null;
2187
3657
  };
2188
3658
  readonly responses: {
2189
3659
  readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2190
3660
  data: z.ZodObject<{
2191
- readonly evidence: z.ZodObject<{
2192
- _tag: z.ZodLiteral<"stored">;
2193
- provider: z.ZodLiteral<"dataforseo">;
2194
- collectedAt: z.ZodNullable<z.ZodString>;
2195
- }, z.core.$strict>;
2196
- readonly summary: z.ZodObject<{
2197
- competitorCount: z.ZodNumber;
2198
- quickWins: z.ZodNumber;
2199
- totalSharedKeywords: z.ZodNumber;
2200
- totalTrafficValue: z.ZodNumber;
2201
- }, z.core.$strict>;
2202
- readonly subject: z.ZodNullable<z.ZodObject<{
2203
- readonly domain: z.ZodString;
2204
- readonly metrics: z.ZodObject<{
2205
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2206
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2207
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2208
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2209
- }, z.core.$strip>;
2210
- readonly history: z.ZodArray<z.ZodObject<{
2211
- readonly observedAt: z.ZodNullable<z.ZodString>;
2212
- readonly metrics: z.ZodObject<{
2213
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2214
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2215
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2216
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2217
- }, z.core.$strip>;
2218
- }, z.core.$strip>>;
2219
- readonly collectedAt: z.ZodNullable<z.ZodString>;
2220
- }, z.core.$strip>>;
2221
- readonly competitors: z.ZodArray<z.ZodObject<{
3661
+ readonly keyword: z.ZodString;
3662
+ readonly depth: z.ZodNumber;
3663
+ readonly results: z.ZodArray<z.ZodObject<{
3664
+ readonly position: z.ZodNumber;
3665
+ readonly url: z.ZodString;
3666
+ readonly title: z.ZodString;
2222
3667
  readonly domain: z.ZodString;
2223
- readonly discovery: z.ZodEnum<{
2224
- automatic: "automatic";
2225
- manual: "manual";
2226
- unknown: "unknown";
2227
- }>;
2228
- readonly metrics: z.ZodObject<{
2229
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2230
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2231
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2232
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2233
- }, z.core.$strip>;
2234
- readonly topKeywords: z.ZodArray<z.ZodObject<{
2235
- readonly keyword: z.ZodString;
2236
- readonly position: z.ZodNullable<z.ZodNumber>;
2237
- readonly volume: z.ZodNullable<z.ZodNumber>;
2238
- readonly traffic: z.ZodNullable<z.ZodNumber>;
2239
- readonly url: z.ZodNullable<z.ZodString>;
2240
- readonly intent: z.ZodNullable<z.ZodString>;
2241
- }, z.core.$strip>>;
2242
- readonly sharedKeywords: z.ZodArray<z.ZodObject<{
2243
- readonly keyword: z.ZodString;
2244
- readonly yourPosition: z.ZodNumber;
2245
- readonly theirPosition: z.ZodNumber;
2246
- readonly volume: z.ZodNumber;
2247
- }, z.core.$strip>>;
2248
- readonly keywordGaps: z.ZodArray<z.ZodObject<{
2249
- readonly keyword: z.ZodString;
2250
- readonly position: z.ZodNullable<z.ZodNumber>;
2251
- readonly volume: z.ZodNullable<z.ZodNumber>;
2252
- readonly traffic: z.ZodNullable<z.ZodNumber>;
2253
- readonly url: z.ZodNullable<z.ZodString>;
2254
- readonly intent: z.ZodNullable<z.ZodString>;
2255
- }, z.core.$strip>>;
2256
- readonly quickWins: z.ZodArray<z.ZodObject<{
2257
- readonly keyword: z.ZodString;
2258
- readonly yourPosition: z.ZodNumber;
2259
- readonly theirPosition: z.ZodNumber;
2260
- readonly volume: z.ZodNumber;
2261
- }, z.core.$strip>>;
2262
- readonly history: z.ZodArray<z.ZodObject<{
2263
- readonly observedAt: z.ZodNullable<z.ZodString>;
2264
- readonly metrics: z.ZodObject<{
2265
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2266
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2267
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2268
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2269
- }, z.core.$strip>;
2270
- }, z.core.$strip>>;
2271
- readonly collectedAt: z.ZodNullable<z.ZodString>;
3668
+ readonly description: z.ZodOptional<z.ZodString>;
2272
3669
  }, z.core.$strip>>;
3670
+ readonly serpFeatures: z.ZodArray<z.ZodString>;
3671
+ readonly hasAiOverview: z.ZodBoolean;
3672
+ readonly hasFeaturedSnippet: z.ZodBoolean;
3673
+ readonly hasLocalPack: z.ZodBoolean;
3674
+ readonly hasPeopleAlsoAsk: z.ZodBoolean;
3675
+ readonly fetchedAt: z.ZodString;
3676
+ readonly cached: z.ZodBoolean;
2273
3677
  }, z.core.$strip>;
2274
3678
  meta: z.ZodObject<{
2275
3679
  requestId: z.ZodString;
@@ -2277,88 +3681,22 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2277
3681
  }, z.core.$strict>;
2278
3682
  }, z.core.$strip>, z.ZodObject<{
2279
3683
  data: z.ZodObject<{
2280
- readonly evidence: z.ZodObject<{
2281
- _tag: z.ZodLiteral<"stored">;
2282
- provider: z.ZodLiteral<"dataforseo">;
2283
- collectedAt: z.ZodNullable<z.ZodString>;
2284
- }, z.core.$loose>;
2285
- readonly summary: z.ZodObject<{
2286
- competitorCount: z.ZodNumber;
2287
- quickWins: z.ZodNumber;
2288
- totalSharedKeywords: z.ZodNumber;
2289
- totalTrafficValue: z.ZodNumber;
2290
- }, z.core.$loose>;
2291
- readonly subject: z.ZodNullable<z.ZodObject<{
2292
- readonly domain: z.ZodString;
2293
- readonly metrics: z.ZodObject<{
2294
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2295
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2296
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2297
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2298
- }, z.core.$strip>;
2299
- readonly history: z.ZodArray<z.ZodObject<{
2300
- readonly observedAt: z.ZodNullable<z.ZodString>;
2301
- readonly metrics: z.ZodObject<{
2302
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2303
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2304
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2305
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2306
- }, z.core.$strip>;
2307
- }, z.core.$strip>>;
2308
- readonly collectedAt: z.ZodNullable<z.ZodString>;
2309
- }, z.core.$strip>>;
2310
- readonly competitors: z.ZodArray<z.ZodObject<{
3684
+ readonly keyword: z.ZodString;
3685
+ readonly depth: z.ZodNumber;
3686
+ readonly results: z.ZodArray<z.ZodObject<{
3687
+ readonly position: z.ZodNumber;
3688
+ readonly url: z.ZodString;
3689
+ readonly title: z.ZodString;
2311
3690
  readonly domain: z.ZodString;
2312
- readonly discovery: z.ZodEnum<{
2313
- automatic: "automatic";
2314
- manual: "manual";
2315
- unknown: "unknown";
2316
- }>;
2317
- readonly metrics: z.ZodObject<{
2318
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2319
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2320
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2321
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2322
- }, z.core.$strip>;
2323
- readonly topKeywords: z.ZodArray<z.ZodObject<{
2324
- readonly keyword: z.ZodString;
2325
- readonly position: z.ZodNullable<z.ZodNumber>;
2326
- readonly volume: z.ZodNullable<z.ZodNumber>;
2327
- readonly traffic: z.ZodNullable<z.ZodNumber>;
2328
- readonly url: z.ZodNullable<z.ZodString>;
2329
- readonly intent: z.ZodNullable<z.ZodString>;
2330
- }, z.core.$strip>>;
2331
- readonly sharedKeywords: z.ZodArray<z.ZodObject<{
2332
- readonly keyword: z.ZodString;
2333
- readonly yourPosition: z.ZodNumber;
2334
- readonly theirPosition: z.ZodNumber;
2335
- readonly volume: z.ZodNumber;
2336
- }, z.core.$strip>>;
2337
- readonly keywordGaps: z.ZodArray<z.ZodObject<{
2338
- readonly keyword: z.ZodString;
2339
- readonly position: z.ZodNullable<z.ZodNumber>;
2340
- readonly volume: z.ZodNullable<z.ZodNumber>;
2341
- readonly traffic: z.ZodNullable<z.ZodNumber>;
2342
- readonly url: z.ZodNullable<z.ZodString>;
2343
- readonly intent: z.ZodNullable<z.ZodString>;
2344
- }, z.core.$strip>>;
2345
- readonly quickWins: z.ZodArray<z.ZodObject<{
2346
- readonly keyword: z.ZodString;
2347
- readonly yourPosition: z.ZodNumber;
2348
- readonly theirPosition: z.ZodNumber;
2349
- readonly volume: z.ZodNumber;
2350
- }, z.core.$strip>>;
2351
- readonly history: z.ZodArray<z.ZodObject<{
2352
- readonly observedAt: z.ZodNullable<z.ZodString>;
2353
- readonly metrics: z.ZodObject<{
2354
- readonly organicTraffic: z.ZodNullable<z.ZodNumber>;
2355
- readonly totalKeywords: z.ZodNullable<z.ZodNumber>;
2356
- readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
2357
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
2358
- }, z.core.$strip>;
2359
- }, z.core.$strip>>;
2360
- readonly collectedAt: z.ZodNullable<z.ZodString>;
3691
+ readonly description: z.ZodOptional<z.ZodString>;
2361
3692
  }, z.core.$strip>>;
3693
+ readonly serpFeatures: z.ZodArray<z.ZodString>;
3694
+ readonly hasAiOverview: z.ZodBoolean;
3695
+ readonly hasFeaturedSnippet: z.ZodBoolean;
3696
+ readonly hasLocalPack: z.ZodBoolean;
3697
+ readonly hasPeopleAlsoAsk: z.ZodBoolean;
3698
+ readonly fetchedAt: z.ZodString;
3699
+ readonly cached: z.ZodBoolean;
2362
3700
  }, z.core.$strip>;
2363
3701
  meta: z.ZodObject<{
2364
3702
  requestId: z.ZodString;
@@ -2366,7 +3704,7 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2366
3704
  }, z.core.$loose>;
2367
3705
  }, z.core.$strip>>;
2368
3706
  };
2369
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "contract_violation", "internal_error"];
3707
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "entitlement_required", "quota_exhausted", "provider_unavailable", "conflict", "rate_limited", "contract_violation", "internal_error"];
2370
3708
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2371
3709
  readonly error: z.ZodObject<{
2372
3710
  code: z.ZodEnum<{
@@ -2430,39 +3768,44 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2430
3768
  readonly idempotency: {
2431
3769
  readonly _tag: 'none';
2432
3770
  };
2433
- readonly entitlement: null;
2434
- readonly meter: null;
3771
+ readonly entitlement: 'growth';
3772
+ readonly meter: {
3773
+ readonly key: 'dataforseo';
3774
+ readonly units: 1;
3775
+ readonly charge: 'live-only';
3776
+ };
2435
3777
  };
2436
3778
  readonly lifecycle: {
2437
3779
  readonly introduced: '1.0.0';
2438
3780
  };
2439
3781
  readonly docs: {
2440
- readonly summary: 'Get stored Site Research';
2441
- readonly description: 'Returns retained competitor and keyword-gap evidence already collected for the Site. It never starts provider work and does not consume metered units.';
3782
+ readonly summary: 'Analyze a Google SERP';
3783
+ readonly description: 'Returns one dated SERP snapshot and its result features. Cached reads consume no units.';
2442
3784
  readonly tags: readonly ["Research"];
2443
3785
  readonly examples: readonly [{
2444
3786
  readonly request: {
2445
3787
  readonly params: {
2446
3788
  readonly siteId: 'site_01JXYZ';
2447
3789
  };
3790
+ readonly query: {
3791
+ readonly keyword: 'nuxt seo';
3792
+ readonly depth: 10;
3793
+ };
2448
3794
  };
2449
3795
  readonly response: {
2450
3796
  readonly status: 200;
2451
3797
  readonly body: {
2452
3798
  readonly data: {
2453
- readonly evidence: {
2454
- readonly _tag: 'stored';
2455
- readonly provider: 'dataforseo';
2456
- readonly collectedAt: null;
2457
- };
2458
- readonly summary: {
2459
- readonly competitorCount: 0;
2460
- readonly quickWins: 0;
2461
- readonly totalSharedKeywords: 0;
2462
- readonly totalTrafficValue: 0;
2463
- };
2464
- readonly subject: null;
2465
- readonly competitors: readonly [];
3799
+ readonly keyword: 'nuxt seo';
3800
+ readonly depth: 10;
3801
+ readonly results: readonly [];
3802
+ readonly serpFeatures: readonly [];
3803
+ readonly hasAiOverview: false;
3804
+ readonly hasFeaturedSnippet: false;
3805
+ readonly hasLocalPack: false;
3806
+ readonly hasPeopleAlsoAsk: false;
3807
+ readonly fetchedAt: '2026-08-20T00:00:00.000Z';
3808
+ readonly cached: false;
2466
3809
  };
2467
3810
  readonly meta: {
2468
3811
  readonly requestId: 'req_01JXYZ';
@@ -2473,10 +3816,10 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2473
3816
  }];
2474
3817
  };
2475
3818
  };
2476
- readonly keywords: {
2477
- readonly id: 'research.keywords';
3819
+ readonly rankings: {
3820
+ readonly id: 'research.rankings';
2478
3821
  readonly method: 'GET';
2479
- readonly path: '/api/v1/sites/{siteId}/research/keywords';
3822
+ readonly path: '/api/v1/sites/{siteId}/research/rankings';
2480
3823
  readonly visibility: 'public';
2481
3824
  readonly semantics: {
2482
3825
  readonly kind: 'query';
@@ -2495,26 +3838,15 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2495
3838
  siteId: z.ZodString;
2496
3839
  }, z.core.$strict>;
2497
3840
  readonly query: z.ZodObject<{
2498
- topic: z.ZodString;
2499
- minVolume: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
2500
- maxVolume: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
2501
- minDifficulty: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
2502
- maxDifficulty: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
2503
- intent: z.ZodOptional<z.ZodString>;
2504
- includeRelated: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
2505
- 0: "0";
2506
- 1: "1";
2507
- false: "false";
2508
- true: "true";
2509
- }>]>, z.ZodTransform<boolean, "0" | "1" | "false" | "true" | boolean>>>;
2510
- verbose: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
2511
- 0: "0";
2512
- 1: "1";
2513
- false: "false";
2514
- true: "true";
2515
- }>]>, z.ZodTransform<boolean, "0" | "1" | "false" | "true" | boolean>>>;
3841
+ domain: z.ZodString;
2516
3842
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3843
+ minPosition: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3844
+ maxPosition: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
2517
3845
  locationCode: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3846
+ order: z.ZodDefault<z.ZodEnum<{
3847
+ position: "position";
3848
+ traffic: "traffic";
3849
+ }>>;
2518
3850
  }, z.core.$strict>;
2519
3851
  readonly headers: null;
2520
3852
  readonly body: null;
@@ -2522,73 +3854,40 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2522
3854
  readonly responses: {
2523
3855
  readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2524
3856
  data: z.ZodObject<{
2525
- readonly topic: z.ZodString;
3857
+ readonly domain: z.ZodString;
2526
3858
  readonly keywords: z.ZodArray<z.ZodObject<{
2527
3859
  readonly keyword: z.ZodString;
2528
- readonly volume: z.ZodNullable<z.ZodNumber>;
2529
- readonly difficulty: z.ZodNullable<z.ZodNumber>;
2530
- readonly intent: z.ZodNullable<z.ZodString>;
2531
- readonly secondaryIntents: z.ZodNullable<z.ZodArray<z.ZodString>>;
2532
- readonly cpc: z.ZodNullable<z.ZodNumber>;
2533
- readonly competition: z.ZodNullable<z.ZodNumber>;
2534
- readonly competitionLevel: z.ZodNullable<z.ZodEnum<{
2535
- HIGH: "HIGH";
2536
- LOW: "LOW";
2537
- MEDIUM: "MEDIUM";
2538
- }>>;
2539
- readonly lowBid: z.ZodNullable<z.ZodNumber>;
2540
- readonly highBid: z.ZodNullable<z.ZodNumber>;
2541
- readonly trend: z.ZodNullable<z.ZodArray<z.ZodObject<{
2542
- readonly year: z.ZodNumber;
2543
- readonly month: z.ZodNumber;
2544
- readonly volume: z.ZodNumber;
2545
- }, z.core.$strip>>>;
2546
- readonly serpFeatures: z.ZodNullable<z.ZodArray<z.ZodString>>;
2547
- readonly backlinks: z.ZodNullable<z.ZodNumber>;
2548
- readonly referringDomains: z.ZodNullable<z.ZodNumber>;
3860
+ readonly position: z.ZodNumber;
3861
+ readonly volume: z.ZodNumber;
3862
+ readonly traffic: z.ZodNumber;
3863
+ readonly url: z.ZodString;
3864
+ readonly intent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2549
3865
  }, z.core.$strip>>;
2550
3866
  readonly totalFound: z.ZodNumber;
2551
- readonly filters: z.ZodObject<{
2552
- minVolume: z.ZodNumber;
2553
- maxVolume: z.ZodNumber;
2554
- minDifficulty: z.ZodNumber;
2555
- maxDifficulty: z.ZodNumber;
2556
- intent: z.ZodOptional<z.ZodString>;
2557
- }, z.core.$strict>;
2558
- readonly message: z.ZodOptional<z.ZodString>;
2559
- readonly tip: z.ZodOptional<z.ZodString>;
2560
- readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2561
- message: z.ZodString;
2562
- topResults: z.ZodArray<z.ZodObject<{
2563
- readonly position: z.ZodNumber;
2564
- readonly title: z.ZodString;
2565
- readonly domain: z.ZodString;
2566
- readonly url: z.ZodString;
2567
- }, z.core.$strip>>;
2568
- tip: z.ZodString;
2569
- }, z.core.$strict>>>;
2570
- readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2571
- _tag: z.ZodLiteral<"no-provider">;
2572
- provider: z.ZodNull;
2573
- spend: z.ZodObject<{
2574
- key: z.ZodLiteral<"dataforseo">;
2575
- units: z.ZodLiteral<0>;
2576
- }, z.core.$strict>;
2577
- }, z.core.$strict>, z.ZodObject<{
2578
- _tag: z.ZodLiteral<"cache">;
2579
- provider: z.ZodLiteral<"dataforseo">;
2580
- spend: z.ZodObject<{
2581
- key: z.ZodLiteral<"dataforseo">;
2582
- units: z.ZodLiteral<0>;
2583
- }, z.core.$strict>;
2584
- }, z.core.$strict>, z.ZodObject<{
2585
- _tag: z.ZodLiteral<"live">;
2586
- provider: z.ZodLiteral<"dataforseo">;
2587
- spend: z.ZodObject<{
2588
- key: z.ZodLiteral<"dataforseo">;
2589
- units: z.ZodLiteral<1>;
3867
+ readonly metrics: z.ZodNullable<z.ZodObject<{
3868
+ readonly organicTraffic: z.ZodNumber;
3869
+ readonly totalKeywords: z.ZodNumber;
3870
+ readonly keywordFootprint: z.ZodObject<{
3871
+ score: z.ZodNullable<z.ZodNumber>;
3872
+ scale: z.ZodObject<{
3873
+ min: z.ZodLiteral<0>;
3874
+ max: z.ZodLiteral<100>;
3875
+ }, z.core.$strict>;
3876
+ provenance: z.ZodLiteral<"local-keyword-count">;
2590
3877
  }, z.core.$strict>;
2591
- }, z.core.$strict>], "_tag">;
3878
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3879
+ readonly topPages: z.ZodArray<z.ZodObject<{
3880
+ readonly path: z.ZodString;
3881
+ readonly traffic: z.ZodNumber;
3882
+ readonly keywords: z.ZodNumber;
3883
+ }, z.core.$strip>>;
3884
+ }, z.core.$strip>>;
3885
+ readonly positionRange: z.ZodOptional<z.ZodObject<{
3886
+ min: z.ZodNumber;
3887
+ max: z.ZodNumber;
3888
+ }, z.core.$strict>>;
3889
+ readonly message: z.ZodOptional<z.ZodString>;
3890
+ readonly cached: z.ZodBoolean;
2592
3891
  }, z.core.$strip>;
2593
3892
  meta: z.ZodObject<{
2594
3893
  requestId: z.ZodString;
@@ -2596,73 +3895,40 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2596
3895
  }, z.core.$strict>;
2597
3896
  }, z.core.$strip>, z.ZodObject<{
2598
3897
  data: z.ZodObject<{
2599
- readonly topic: z.ZodString;
3898
+ readonly domain: z.ZodString;
2600
3899
  readonly keywords: z.ZodArray<z.ZodObject<{
2601
3900
  readonly keyword: z.ZodString;
2602
- readonly volume: z.ZodNullable<z.ZodNumber>;
2603
- readonly difficulty: z.ZodNullable<z.ZodNumber>;
2604
- readonly intent: z.ZodNullable<z.ZodString>;
2605
- readonly secondaryIntents: z.ZodNullable<z.ZodArray<z.ZodString>>;
2606
- readonly cpc: z.ZodNullable<z.ZodNumber>;
2607
- readonly competition: z.ZodNullable<z.ZodNumber>;
2608
- readonly competitionLevel: z.ZodNullable<z.ZodEnum<{
2609
- HIGH: "HIGH";
2610
- LOW: "LOW";
2611
- MEDIUM: "MEDIUM";
2612
- }>>;
2613
- readonly lowBid: z.ZodNullable<z.ZodNumber>;
2614
- readonly highBid: z.ZodNullable<z.ZodNumber>;
2615
- readonly trend: z.ZodNullable<z.ZodArray<z.ZodObject<{
2616
- readonly year: z.ZodNumber;
2617
- readonly month: z.ZodNumber;
2618
- readonly volume: z.ZodNumber;
2619
- }, z.core.$strip>>>;
2620
- readonly serpFeatures: z.ZodNullable<z.ZodArray<z.ZodString>>;
2621
- readonly backlinks: z.ZodNullable<z.ZodNumber>;
2622
- readonly referringDomains: z.ZodNullable<z.ZodNumber>;
3901
+ readonly position: z.ZodNumber;
3902
+ readonly volume: z.ZodNumber;
3903
+ readonly traffic: z.ZodNumber;
3904
+ readonly url: z.ZodString;
3905
+ readonly intent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2623
3906
  }, z.core.$strip>>;
2624
3907
  readonly totalFound: z.ZodNumber;
2625
- readonly filters: z.ZodObject<{
2626
- minVolume: z.ZodNumber;
2627
- maxVolume: z.ZodNumber;
2628
- minDifficulty: z.ZodNumber;
2629
- maxDifficulty: z.ZodNumber;
2630
- intent: z.ZodOptional<z.ZodString>;
2631
- }, z.core.$loose>;
2632
- readonly message: z.ZodOptional<z.ZodString>;
2633
- readonly tip: z.ZodOptional<z.ZodString>;
2634
- readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2635
- message: z.ZodString;
2636
- topResults: z.ZodArray<z.ZodObject<{
2637
- readonly position: z.ZodNumber;
2638
- readonly title: z.ZodString;
2639
- readonly domain: z.ZodString;
2640
- readonly url: z.ZodString;
2641
- }, z.core.$strip>>;
2642
- tip: z.ZodString;
2643
- }, z.core.$loose>>>;
2644
- readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
2645
- _tag: z.ZodLiteral<"no-provider">;
2646
- provider: z.ZodNull;
2647
- spend: z.ZodObject<{
2648
- key: z.ZodLiteral<"dataforseo">;
2649
- units: z.ZodLiteral<0>;
2650
- }, z.core.$loose>;
2651
- }, z.core.$loose>, z.ZodObject<{
2652
- _tag: z.ZodLiteral<"cache">;
2653
- provider: z.ZodLiteral<"dataforseo">;
2654
- spend: z.ZodObject<{
2655
- key: z.ZodLiteral<"dataforseo">;
2656
- units: z.ZodLiteral<0>;
2657
- }, z.core.$loose>;
2658
- }, z.core.$loose>, z.ZodObject<{
2659
- _tag: z.ZodLiteral<"live">;
2660
- provider: z.ZodLiteral<"dataforseo">;
2661
- spend: z.ZodObject<{
2662
- key: z.ZodLiteral<"dataforseo">;
2663
- units: z.ZodLiteral<1>;
3908
+ readonly metrics: z.ZodNullable<z.ZodObject<{
3909
+ readonly organicTraffic: z.ZodNumber;
3910
+ readonly totalKeywords: z.ZodNumber;
3911
+ readonly keywordFootprint: z.ZodObject<{
3912
+ score: z.ZodNullable<z.ZodNumber>;
3913
+ scale: z.ZodObject<{
3914
+ min: z.ZodLiteral<0>;
3915
+ max: z.ZodLiteral<100>;
3916
+ }, z.core.$loose>;
3917
+ provenance: z.ZodLiteral<"local-keyword-count">;
2664
3918
  }, z.core.$loose>;
2665
- }, z.core.$loose>], "_tag">;
3919
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3920
+ readonly topPages: z.ZodArray<z.ZodObject<{
3921
+ readonly path: z.ZodString;
3922
+ readonly traffic: z.ZodNumber;
3923
+ readonly keywords: z.ZodNumber;
3924
+ }, z.core.$strip>>;
3925
+ }, z.core.$strip>>;
3926
+ readonly positionRange: z.ZodOptional<z.ZodObject<{
3927
+ min: z.ZodNumber;
3928
+ max: z.ZodNumber;
3929
+ }, z.core.$loose>>;
3930
+ readonly message: z.ZodOptional<z.ZodString>;
3931
+ readonly cached: z.ZodBoolean;
2666
3932
  }, z.core.$strip>;
2667
3933
  meta: z.ZodObject<{
2668
3934
  requestId: z.ZodString;
@@ -2745,8 +4011,8 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2745
4011
  readonly introduced: '1.0.0';
2746
4012
  };
2747
4013
  readonly docs: {
2748
- readonly summary: 'Research keyword ideas';
2749
- readonly description: 'Returns keyword ideas with volume, difficulty, intent, cost data, and explicit provider execution and spend evidence. Local guidance and cached reads consume no units.';
4014
+ readonly summary: 'Research domain rankings';
4015
+ readonly description: 'Returns current keyword rankings and domain metrics. Cached reads consume no units.';
2750
4016
  readonly tags: readonly ["Research"];
2751
4017
  readonly examples: readonly [{
2752
4018
  readonly request: {
@@ -2754,7 +4020,7 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2754
4020
  readonly siteId: 'site_01JXYZ';
2755
4021
  };
2756
4022
  readonly query: {
2757
- readonly topic: 'nuxt seo';
4023
+ readonly domain: 'nuxtseo.com';
2758
4024
  readonly limit: 20;
2759
4025
  };
2760
4026
  };
@@ -2762,23 +4028,15 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2762
4028
  readonly status: 200;
2763
4029
  readonly body: {
2764
4030
  readonly data: {
2765
- readonly topic: 'nuxt seo';
4031
+ readonly domain: 'nuxtseo.com';
2766
4032
  readonly keywords: readonly [];
2767
4033
  readonly totalFound: 0;
2768
- readonly filters: {
2769
- readonly minVolume: 10;
2770
- readonly maxVolume: 10000;
2771
- readonly minDifficulty: 0;
2772
- readonly maxDifficulty: 60;
2773
- };
2774
- readonly evidence: {
2775
- readonly _tag: 'live';
2776
- readonly provider: 'dataforseo';
2777
- readonly spend: {
2778
- readonly key: 'dataforseo';
2779
- readonly units: 1;
2780
- };
4034
+ readonly metrics: null;
4035
+ readonly positionRange: {
4036
+ readonly min: 1;
4037
+ readonly max: 20;
2781
4038
  };
4039
+ readonly cached: false;
2782
4040
  };
2783
4041
  readonly meta: {
2784
4042
  readonly requestId: 'req_01JXYZ';
@@ -2789,10 +4047,10 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2789
4047
  }];
2790
4048
  };
2791
4049
  };
2792
- readonly serp: {
2793
- readonly id: 'research.serp';
4050
+ readonly domainTraffic: {
4051
+ readonly id: 'research.domain.traffic';
2794
4052
  readonly method: 'GET';
2795
- readonly path: '/api/v1/sites/{siteId}/research/serp';
4053
+ readonly path: '/api/v1/sites/{siteId}/research/domain-traffic';
2796
4054
  readonly visibility: 'public';
2797
4055
  readonly semantics: {
2798
4056
  readonly kind: 'query';
@@ -2811,32 +4069,56 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2811
4069
  siteId: z.ZodString;
2812
4070
  }, z.core.$strict>;
2813
4071
  readonly query: z.ZodObject<{
2814
- keyword: z.ZodString;
2815
- depth: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
2816
- locationCode: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
4072
+ domain: z.ZodString;
2817
4073
  }, z.core.$strict>;
2818
4074
  readonly headers: null;
2819
- readonly body: null;
2820
- };
2821
- readonly responses: {
2822
- readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
2823
- data: z.ZodObject<{
2824
- readonly keyword: z.ZodString;
2825
- readonly depth: z.ZodNumber;
2826
- readonly results: z.ZodArray<z.ZodObject<{
2827
- readonly position: z.ZodNumber;
2828
- readonly url: z.ZodString;
2829
- readonly title: z.ZodString;
2830
- readonly domain: z.ZodString;
2831
- readonly description: z.ZodOptional<z.ZodString>;
4075
+ readonly body: null;
4076
+ };
4077
+ readonly responses: {
4078
+ readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
4079
+ data: z.ZodObject<{
4080
+ readonly domain: z.ZodString;
4081
+ readonly monthlyTraffic: z.ZodNumber;
4082
+ readonly trend: z.ZodEnum<{
4083
+ declining: "declining";
4084
+ growing: "growing";
4085
+ stable: "stable";
4086
+ }>;
4087
+ readonly changePercent: z.ZodNumber;
4088
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
4089
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
4090
+ readonly topPages: z.ZodArray<z.ZodObject<{
4091
+ readonly path: z.ZodString;
4092
+ readonly traffic: z.ZodNumber;
4093
+ readonly keywords: z.ZodNumber;
2832
4094
  }, z.core.$strip>>;
2833
- readonly serpFeatures: z.ZodArray<z.ZodString>;
2834
- readonly hasAiOverview: z.ZodBoolean;
2835
- readonly hasFeaturedSnippet: z.ZodBoolean;
2836
- readonly hasLocalPack: z.ZodBoolean;
2837
- readonly hasPeopleAlsoAsk: z.ZodBoolean;
2838
- readonly fetchedAt: z.ZodString;
2839
- readonly cached: z.ZodBoolean;
4095
+ readonly topCountries: z.ZodArray<z.ZodObject<{
4096
+ country: z.ZodString;
4097
+ percent: z.ZodNumber;
4098
+ }, z.core.$strict>>;
4099
+ readonly message: z.ZodNullable<z.ZodString>;
4100
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
4101
+ _tag: z.ZodLiteral<"no-provider">;
4102
+ provider: z.ZodNull;
4103
+ spend: z.ZodObject<{
4104
+ key: z.ZodLiteral<"dataforseo">;
4105
+ units: z.ZodLiteral<0>;
4106
+ }, z.core.$strict>;
4107
+ }, z.core.$strict>, z.ZodObject<{
4108
+ _tag: z.ZodLiteral<"cache">;
4109
+ provider: z.ZodLiteral<"dataforseo">;
4110
+ spend: z.ZodObject<{
4111
+ key: z.ZodLiteral<"dataforseo">;
4112
+ units: z.ZodLiteral<0>;
4113
+ }, z.core.$strict>;
4114
+ }, z.core.$strict>, z.ZodObject<{
4115
+ _tag: z.ZodLiteral<"live">;
4116
+ provider: z.ZodLiteral<"dataforseo">;
4117
+ spend: z.ZodObject<{
4118
+ key: z.ZodLiteral<"dataforseo">;
4119
+ units: z.ZodLiteral<1>;
4120
+ }, z.core.$strict>;
4121
+ }, z.core.$strict>], "_tag">;
2840
4122
  }, z.core.$strip>;
2841
4123
  meta: z.ZodObject<{
2842
4124
  requestId: z.ZodString;
@@ -2844,22 +4126,48 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2844
4126
  }, z.core.$strict>;
2845
4127
  }, z.core.$strip>, z.ZodObject<{
2846
4128
  data: z.ZodObject<{
2847
- readonly keyword: z.ZodString;
2848
- readonly depth: z.ZodNumber;
2849
- readonly results: z.ZodArray<z.ZodObject<{
2850
- readonly position: z.ZodNumber;
2851
- readonly url: z.ZodString;
2852
- readonly title: z.ZodString;
2853
- readonly domain: z.ZodString;
2854
- readonly description: z.ZodOptional<z.ZodString>;
4129
+ readonly domain: z.ZodString;
4130
+ readonly monthlyTraffic: z.ZodNumber;
4131
+ readonly trend: z.ZodEnum<{
4132
+ declining: "declining";
4133
+ growing: "growing";
4134
+ stable: "stable";
4135
+ }>;
4136
+ readonly changePercent: z.ZodNumber;
4137
+ readonly trafficValue: z.ZodNullable<z.ZodNumber>;
4138
+ readonly keywordFootprint: z.ZodNullable<z.ZodNumber>;
4139
+ readonly topPages: z.ZodArray<z.ZodObject<{
4140
+ readonly path: z.ZodString;
4141
+ readonly traffic: z.ZodNumber;
4142
+ readonly keywords: z.ZodNumber;
2855
4143
  }, z.core.$strip>>;
2856
- readonly serpFeatures: z.ZodArray<z.ZodString>;
2857
- readonly hasAiOverview: z.ZodBoolean;
2858
- readonly hasFeaturedSnippet: z.ZodBoolean;
2859
- readonly hasLocalPack: z.ZodBoolean;
2860
- readonly hasPeopleAlsoAsk: z.ZodBoolean;
2861
- readonly fetchedAt: z.ZodString;
2862
- readonly cached: z.ZodBoolean;
4144
+ readonly topCountries: z.ZodArray<z.ZodObject<{
4145
+ country: z.ZodString;
4146
+ percent: z.ZodNumber;
4147
+ }, z.core.$loose>>;
4148
+ readonly message: z.ZodNullable<z.ZodString>;
4149
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
4150
+ _tag: z.ZodLiteral<"no-provider">;
4151
+ provider: z.ZodNull;
4152
+ spend: z.ZodObject<{
4153
+ key: z.ZodLiteral<"dataforseo">;
4154
+ units: z.ZodLiteral<0>;
4155
+ }, z.core.$loose>;
4156
+ }, z.core.$loose>, z.ZodObject<{
4157
+ _tag: z.ZodLiteral<"cache">;
4158
+ provider: z.ZodLiteral<"dataforseo">;
4159
+ spend: z.ZodObject<{
4160
+ key: z.ZodLiteral<"dataforseo">;
4161
+ units: z.ZodLiteral<0>;
4162
+ }, z.core.$loose>;
4163
+ }, z.core.$loose>, z.ZodObject<{
4164
+ _tag: z.ZodLiteral<"live">;
4165
+ provider: z.ZodLiteral<"dataforseo">;
4166
+ spend: z.ZodObject<{
4167
+ key: z.ZodLiteral<"dataforseo">;
4168
+ units: z.ZodLiteral<1>;
4169
+ }, z.core.$loose>;
4170
+ }, z.core.$loose>], "_tag">;
2863
4171
  }, z.core.$strip>;
2864
4172
  meta: z.ZodObject<{
2865
4173
  requestId: z.ZodString;
@@ -2939,11 +4247,11 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2939
4247
  };
2940
4248
  };
2941
4249
  readonly lifecycle: {
2942
- readonly introduced: '1.0.0';
4250
+ readonly introduced: '1.2.0';
2943
4251
  };
2944
4252
  readonly docs: {
2945
- readonly summary: 'Analyze a Google SERP';
2946
- readonly description: 'Returns one dated SERP snapshot and its result features. Cached reads consume no units.';
4253
+ readonly summary: 'Estimate domain traffic';
4254
+ readonly description: 'Returns an estimate of one domain organic search traffic, its trend, its top pages and countries. The domain does not have to be one of your Sites, so this reads a competitor as readily as your own. Cached reads consume no units.';
2947
4255
  readonly tags: readonly ["Research"];
2948
4256
  readonly examples: readonly [{
2949
4257
  readonly request: {
@@ -2951,24 +4259,37 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2951
4259
  readonly siteId: 'site_01JXYZ';
2952
4260
  };
2953
4261
  readonly query: {
2954
- readonly keyword: 'nuxt seo';
2955
- readonly depth: 10;
4262
+ readonly domain: 'nuxtseo.com';
2956
4263
  };
2957
4264
  };
2958
4265
  readonly response: {
2959
4266
  readonly status: 200;
2960
4267
  readonly body: {
2961
4268
  readonly data: {
2962
- readonly keyword: 'nuxt seo';
2963
- readonly depth: 10;
2964
- readonly results: readonly [];
2965
- readonly serpFeatures: readonly [];
2966
- readonly hasAiOverview: false;
2967
- readonly hasFeaturedSnippet: false;
2968
- readonly hasLocalPack: false;
2969
- readonly hasPeopleAlsoAsk: false;
2970
- readonly fetchedAt: '2026-08-20T00:00:00.000Z';
2971
- readonly cached: false;
4269
+ readonly domain: 'nuxtseo.com';
4270
+ readonly monthlyTraffic: 48200;
4271
+ readonly trend: 'growing';
4272
+ readonly changePercent: 12.4;
4273
+ readonly trafficValue: 31200;
4274
+ readonly keywordFootprint: 62;
4275
+ readonly topPages: readonly [{
4276
+ readonly path: '/docs/sitemap';
4277
+ readonly traffic: 4100;
4278
+ readonly keywords: 220;
4279
+ }];
4280
+ readonly topCountries: readonly [{
4281
+ readonly country: 'US';
4282
+ readonly percent: 41.2;
4283
+ }];
4284
+ readonly message: null;
4285
+ readonly evidence: {
4286
+ readonly _tag: 'live';
4287
+ readonly provider: 'dataforseo';
4288
+ readonly spend: {
4289
+ readonly key: 'dataforseo';
4290
+ readonly units: 1;
4291
+ };
4292
+ };
2972
4293
  };
2973
4294
  readonly meta: {
2974
4295
  readonly requestId: 'req_01JXYZ';
@@ -2979,10 +4300,10 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
2979
4300
  }];
2980
4301
  };
2981
4302
  };
2982
- readonly rankings: {
2983
- readonly id: 'research.rankings';
4303
+ readonly domainAvailability: {
4304
+ readonly id: 'research.domain.availability';
2984
4305
  readonly method: 'GET';
2985
- readonly path: '/api/v1/sites/{siteId}/research/rankings';
4306
+ readonly path: '/api/v1/sites/{siteId}/research/domain-availability';
2986
4307
  readonly visibility: 'public';
2987
4308
  readonly semantics: {
2988
4309
  readonly kind: 'query';
@@ -3001,15 +4322,7 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3001
4322
  siteId: z.ZodString;
3002
4323
  }, z.core.$strict>;
3003
4324
  readonly query: z.ZodObject<{
3004
- domain: z.ZodString;
3005
- limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3006
- minPosition: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3007
- maxPosition: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3008
- locationCode: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
3009
- order: z.ZodDefault<z.ZodEnum<{
3010
- position: "position";
3011
- traffic: "traffic";
3012
- }>>;
4325
+ domains: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>]>;
3013
4326
  }, z.core.$strict>;
3014
4327
  readonly headers: null;
3015
4328
  readonly body: null;
@@ -3017,40 +4330,37 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3017
4330
  readonly responses: {
3018
4331
  readonly 200: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
3019
4332
  data: z.ZodObject<{
3020
- readonly domain: z.ZodString;
3021
- readonly keywords: z.ZodArray<z.ZodObject<{
3022
- readonly keyword: z.ZodString;
3023
- readonly position: z.ZodNumber;
3024
- readonly volume: z.ZodNumber;
3025
- readonly traffic: z.ZodNumber;
3026
- readonly url: z.ZodString;
3027
- readonly intent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4333
+ readonly results: z.ZodArray<z.ZodObject<{
4334
+ readonly domain: z.ZodString;
4335
+ readonly available: z.ZodBoolean;
4336
+ readonly registrar: z.ZodNullable<z.ZodString>;
4337
+ readonly expiration: z.ZodNullable<z.ZodString>;
4338
+ readonly created: z.ZodNullable<z.ZodString>;
4339
+ readonly note: z.ZodNullable<z.ZodString>;
3028
4340
  }, z.core.$strip>>;
3029
- readonly totalFound: z.ZodNumber;
3030
- readonly metrics: z.ZodNullable<z.ZodObject<{
3031
- readonly organicTraffic: z.ZodNumber;
3032
- readonly totalKeywords: z.ZodNumber;
3033
- readonly keywordFootprint: z.ZodObject<{
3034
- score: z.ZodNullable<z.ZodNumber>;
3035
- scale: z.ZodObject<{
3036
- min: z.ZodLiteral<0>;
3037
- max: z.ZodLiteral<100>;
3038
- }, z.core.$strict>;
3039
- provenance: z.ZodLiteral<"local-keyword-count">;
4341
+ readonly message: z.ZodNullable<z.ZodString>;
4342
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
4343
+ _tag: z.ZodLiteral<"no-provider">;
4344
+ provider: z.ZodNull;
4345
+ spend: z.ZodObject<{
4346
+ key: z.ZodLiteral<"dataforseo">;
4347
+ units: z.ZodLiteral<0>;
3040
4348
  }, z.core.$strict>;
3041
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3042
- readonly topPages: z.ZodArray<z.ZodObject<{
3043
- readonly path: z.ZodString;
3044
- readonly traffic: z.ZodNumber;
3045
- readonly keywords: z.ZodNumber;
3046
- }, z.core.$strip>>;
3047
- }, z.core.$strip>>;
3048
- readonly positionRange: z.ZodOptional<z.ZodObject<{
3049
- min: z.ZodNumber;
3050
- max: z.ZodNumber;
3051
- }, z.core.$strict>>;
3052
- readonly message: z.ZodOptional<z.ZodString>;
3053
- readonly cached: z.ZodBoolean;
4349
+ }, z.core.$strict>, z.ZodObject<{
4350
+ _tag: z.ZodLiteral<"cache">;
4351
+ provider: z.ZodLiteral<"dataforseo">;
4352
+ spend: z.ZodObject<{
4353
+ key: z.ZodLiteral<"dataforseo">;
4354
+ units: z.ZodLiteral<0>;
4355
+ }, z.core.$strict>;
4356
+ }, z.core.$strict>, z.ZodObject<{
4357
+ _tag: z.ZodLiteral<"live">;
4358
+ provider: z.ZodLiteral<"dataforseo">;
4359
+ spend: z.ZodObject<{
4360
+ key: z.ZodLiteral<"dataforseo">;
4361
+ units: z.ZodLiteral<1>;
4362
+ }, z.core.$strict>;
4363
+ }, z.core.$strict>], "_tag">;
3054
4364
  }, z.core.$strip>;
3055
4365
  meta: z.ZodObject<{
3056
4366
  requestId: z.ZodString;
@@ -3058,40 +4368,37 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3058
4368
  }, z.core.$strict>;
3059
4369
  }, z.core.$strip>, z.ZodObject<{
3060
4370
  data: z.ZodObject<{
3061
- readonly domain: z.ZodString;
3062
- readonly keywords: z.ZodArray<z.ZodObject<{
3063
- readonly keyword: z.ZodString;
3064
- readonly position: z.ZodNumber;
3065
- readonly volume: z.ZodNumber;
3066
- readonly traffic: z.ZodNumber;
3067
- readonly url: z.ZodString;
3068
- readonly intent: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4371
+ readonly results: z.ZodArray<z.ZodObject<{
4372
+ readonly domain: z.ZodString;
4373
+ readonly available: z.ZodBoolean;
4374
+ readonly registrar: z.ZodNullable<z.ZodString>;
4375
+ readonly expiration: z.ZodNullable<z.ZodString>;
4376
+ readonly created: z.ZodNullable<z.ZodString>;
4377
+ readonly note: z.ZodNullable<z.ZodString>;
3069
4378
  }, z.core.$strip>>;
3070
- readonly totalFound: z.ZodNumber;
3071
- readonly metrics: z.ZodNullable<z.ZodObject<{
3072
- readonly organicTraffic: z.ZodNumber;
3073
- readonly totalKeywords: z.ZodNumber;
3074
- readonly keywordFootprint: z.ZodObject<{
3075
- score: z.ZodNullable<z.ZodNumber>;
3076
- scale: z.ZodObject<{
3077
- min: z.ZodLiteral<0>;
3078
- max: z.ZodLiteral<100>;
3079
- }, z.core.$loose>;
3080
- provenance: z.ZodLiteral<"local-keyword-count">;
4379
+ readonly message: z.ZodNullable<z.ZodString>;
4380
+ readonly evidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
4381
+ _tag: z.ZodLiteral<"no-provider">;
4382
+ provider: z.ZodNull;
4383
+ spend: z.ZodObject<{
4384
+ key: z.ZodLiteral<"dataforseo">;
4385
+ units: z.ZodLiteral<0>;
3081
4386
  }, z.core.$loose>;
3082
- readonly trafficValue: z.ZodNullable<z.ZodNumber>;
3083
- readonly topPages: z.ZodArray<z.ZodObject<{
3084
- readonly path: z.ZodString;
3085
- readonly traffic: z.ZodNumber;
3086
- readonly keywords: z.ZodNumber;
3087
- }, z.core.$strip>>;
3088
- }, z.core.$strip>>;
3089
- readonly positionRange: z.ZodOptional<z.ZodObject<{
3090
- min: z.ZodNumber;
3091
- max: z.ZodNumber;
3092
- }, z.core.$loose>>;
3093
- readonly message: z.ZodOptional<z.ZodString>;
3094
- readonly cached: z.ZodBoolean;
4387
+ }, z.core.$loose>, z.ZodObject<{
4388
+ _tag: z.ZodLiteral<"cache">;
4389
+ provider: z.ZodLiteral<"dataforseo">;
4390
+ spend: z.ZodObject<{
4391
+ key: z.ZodLiteral<"dataforseo">;
4392
+ units: z.ZodLiteral<0>;
4393
+ }, z.core.$loose>;
4394
+ }, z.core.$loose>, z.ZodObject<{
4395
+ _tag: z.ZodLiteral<"live">;
4396
+ provider: z.ZodLiteral<"dataforseo">;
4397
+ spend: z.ZodObject<{
4398
+ key: z.ZodLiteral<"dataforseo">;
4399
+ units: z.ZodLiteral<1>;
4400
+ }, z.core.$loose>;
4401
+ }, z.core.$loose>], "_tag">;
3095
4402
  }, z.core.$strip>;
3096
4403
  meta: z.ZodObject<{
3097
4404
  requestId: z.ZodString;
@@ -3171,11 +4478,11 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3171
4478
  };
3172
4479
  };
3173
4480
  readonly lifecycle: {
3174
- readonly introduced: '1.0.0';
4481
+ readonly introduced: '1.2.0';
3175
4482
  };
3176
4483
  readonly docs: {
3177
- readonly summary: 'Research domain rankings';
3178
- readonly description: 'Returns current keyword rankings and domain metrics. Cached reads consume no units.';
4484
+ readonly summary: 'Check domain availability';
4485
+ readonly description: 'Returns the registration status of up to ten domains, with the registrar and expiry when the domain is taken. Repeat the domains parameter for each domain. Cached reads consume no units.';
3179
4486
  readonly tags: readonly ["Research"];
3180
4487
  readonly examples: readonly [{
3181
4488
  readonly request: {
@@ -3183,23 +4490,30 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3183
4490
  readonly siteId: 'site_01JXYZ';
3184
4491
  };
3185
4492
  readonly query: {
3186
- readonly domain: 'nuxtseo.com';
3187
- readonly limit: 20;
4493
+ readonly domains: readonly ["example.com", "example.dev"];
3188
4494
  };
3189
4495
  };
3190
4496
  readonly response: {
3191
4497
  readonly status: 200;
3192
4498
  readonly body: {
3193
4499
  readonly data: {
3194
- readonly domain: 'nuxtseo.com';
3195
- readonly keywords: readonly [];
3196
- readonly totalFound: 0;
3197
- readonly metrics: null;
3198
- readonly positionRange: {
3199
- readonly min: 1;
3200
- readonly max: 20;
4500
+ readonly results: readonly [{
4501
+ readonly domain: 'example.com';
4502
+ readonly available: false;
4503
+ readonly registrar: 'Example Registrar';
4504
+ readonly expiration: '2027-04-01';
4505
+ readonly created: '1995-08-14';
4506
+ readonly note: null;
4507
+ }];
4508
+ readonly message: null;
4509
+ readonly evidence: {
4510
+ readonly _tag: 'live';
4511
+ readonly provider: 'dataforseo';
4512
+ readonly spend: {
4513
+ readonly key: 'dataforseo';
4514
+ readonly units: 1;
4515
+ };
3201
4516
  };
3202
- readonly cached: false;
3203
4517
  };
3204
4518
  readonly meta: {
3205
4519
  readonly requestId: 'req_01JXYZ';