@crawlora-org/sdk 1.7.0-sdk.1 → 1.8.0-sdk.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/docs/operations.md +9 -1
- package/openapi/public.json +1811 -399
- package/package.json +1 -1
- package/src/client.js +1 -1
- package/src/operations.js +262 -1
- package/src/types.d.ts +376 -0
package/openapi/public.json
CHANGED
|
@@ -464,6 +464,191 @@
|
|
|
464
464
|
},
|
|
465
465
|
"type": "object"
|
|
466
466
|
},
|
|
467
|
+
"antibot.Band": {
|
|
468
|
+
"enum": [
|
|
469
|
+
"easy",
|
|
470
|
+
"medium",
|
|
471
|
+
"hard",
|
|
472
|
+
"very_hard",
|
|
473
|
+
"blocked",
|
|
474
|
+
"unknown"
|
|
475
|
+
],
|
|
476
|
+
"type": "string",
|
|
477
|
+
"x-enum-varnames": [
|
|
478
|
+
"BandEasy",
|
|
479
|
+
"BandMedium",
|
|
480
|
+
"BandHard",
|
|
481
|
+
"BandVeryHard",
|
|
482
|
+
"BandBlocked",
|
|
483
|
+
"BandUnknown"
|
|
484
|
+
]
|
|
485
|
+
},
|
|
486
|
+
"antibot.Protection": {
|
|
487
|
+
"properties": {
|
|
488
|
+
"captcha_mode": {
|
|
489
|
+
"type": "string"
|
|
490
|
+
},
|
|
491
|
+
"captcha_type": {
|
|
492
|
+
"description": "CaptchaType / CaptchaMode sub-classify a kind=captcha detection\n(e.g. recaptcha_v3 / score, turnstile / managed).",
|
|
493
|
+
"type": "string"
|
|
494
|
+
},
|
|
495
|
+
"confidence": {
|
|
496
|
+
"description": "low | medium | high",
|
|
497
|
+
"type": "string"
|
|
498
|
+
},
|
|
499
|
+
"confidence_score": {
|
|
500
|
+
"description": "ConfidenceScore is the numeric (0-100) additive confidence over this\ndetection's own evidence (Wappalyzer-style); Confidence is its bucketed label.",
|
|
501
|
+
"type": "integer"
|
|
502
|
+
},
|
|
503
|
+
"custom_vm": {
|
|
504
|
+
"description": "CustomVM marks the proprietary signed-payload / closed-VM class (Kasada,\nF5 Shape, TikTok) whose anti-bot is a closed in-browser bytecode VM rather\nthan generic transport detection; VMVendor names it.",
|
|
505
|
+
"type": "boolean"
|
|
506
|
+
},
|
|
507
|
+
"evidence": {
|
|
508
|
+
"items": {
|
|
509
|
+
"type": "string"
|
|
510
|
+
},
|
|
511
|
+
"type": "array"
|
|
512
|
+
},
|
|
513
|
+
"kind": {
|
|
514
|
+
"description": "waf | bot_management | captcha | challenge | access_control | rate_limit",
|
|
515
|
+
"type": "string"
|
|
516
|
+
},
|
|
517
|
+
"vendor": {
|
|
518
|
+
"type": "string"
|
|
519
|
+
},
|
|
520
|
+
"vm_vendor": {
|
|
521
|
+
"type": "string"
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
"type": "object"
|
|
525
|
+
},
|
|
526
|
+
"antibot.Signals": {
|
|
527
|
+
"properties": {
|
|
528
|
+
"attempts_passed": {
|
|
529
|
+
"type": "integer"
|
|
530
|
+
},
|
|
531
|
+
"attempts_run": {
|
|
532
|
+
"type": "integer"
|
|
533
|
+
},
|
|
534
|
+
"attempts_skipped": {
|
|
535
|
+
"type": "integer"
|
|
536
|
+
},
|
|
537
|
+
"block_markers": {
|
|
538
|
+
"items": {
|
|
539
|
+
"type": "string"
|
|
540
|
+
},
|
|
541
|
+
"type": "array"
|
|
542
|
+
},
|
|
543
|
+
"blocked_status": {
|
|
544
|
+
"type": "boolean"
|
|
545
|
+
},
|
|
546
|
+
"captcha_detected": {
|
|
547
|
+
"type": "boolean"
|
|
548
|
+
},
|
|
549
|
+
"challenge_detected": {
|
|
550
|
+
"type": "boolean"
|
|
551
|
+
},
|
|
552
|
+
"js_render_likely": {
|
|
553
|
+
"type": "boolean"
|
|
554
|
+
},
|
|
555
|
+
"rate_limited": {
|
|
556
|
+
"type": "boolean"
|
|
557
|
+
}
|
|
558
|
+
},
|
|
559
|
+
"type": "object"
|
|
560
|
+
},
|
|
561
|
+
"antibot.Verdict": {
|
|
562
|
+
"properties": {
|
|
563
|
+
"auth_required": {
|
|
564
|
+
"type": "boolean"
|
|
565
|
+
},
|
|
566
|
+
"block_detail": {
|
|
567
|
+
"type": "string"
|
|
568
|
+
},
|
|
569
|
+
"block_reason": {
|
|
570
|
+
"description": "BlockReason is WHY the representative request was blocked (or \"ok\"):\nok | bot_challenge | captcha_required | rate_limited | ip_blocked |\ngeo_blocked | auth_required | payment_required | service_unavailable |\nforbidden | other | unreachable. Different reasons call for different fixes\n(rotate IPs vs run a browser vs log in), so they are surfaced distinctly.",
|
|
571
|
+
"type": "string"
|
|
572
|
+
},
|
|
573
|
+
"captcha_types": {
|
|
574
|
+
"description": "CaptchaTypes lists the distinct CAPTCHA types detected (e.g. recaptcha_v3,\nturnstile) for easy aggregation.",
|
|
575
|
+
"items": {
|
|
576
|
+
"type": "string"
|
|
577
|
+
},
|
|
578
|
+
"type": "array"
|
|
579
|
+
},
|
|
580
|
+
"coverage": {
|
|
581
|
+
"description": "Coverage is `full` when every transport tier ran, or `partial` when some\nwere skipped (e.g. browser sidecars unconfigured in this environment), in\nwhich case a \"blocked\" verdict may understate what a browser could do.",
|
|
582
|
+
"type": "string"
|
|
583
|
+
},
|
|
584
|
+
"custom_vm": {
|
|
585
|
+
"description": "CustomVM / VMVendor are set when any detected protection is the proprietary\nclosed-VM class (Kasada / F5 Shape / TikTok).",
|
|
586
|
+
"type": "boolean"
|
|
587
|
+
},
|
|
588
|
+
"detection_confidence_score": {
|
|
589
|
+
"description": "ConfidenceScore is the strongest detection's numeric confidence (0-100), or\n0 when nothing was detected (confidence describes a detection, not a negative).",
|
|
590
|
+
"type": "integer"
|
|
591
|
+
},
|
|
592
|
+
"difficulty_band": {
|
|
593
|
+
"$ref": "#/definitions/antibot.Band"
|
|
594
|
+
},
|
|
595
|
+
"difficulty_score": {
|
|
596
|
+
"description": "0 (trivial) .. 10 (blocked)",
|
|
597
|
+
"type": "integer"
|
|
598
|
+
},
|
|
599
|
+
"easiest_working_transport": {
|
|
600
|
+
"type": "string"
|
|
601
|
+
},
|
|
602
|
+
"enforcement": {
|
|
603
|
+
"description": "Enforcement separates a managed vendor actively challenging/blocking us from\none merely sitting in front as passive CDN/edge:\nopen | passive_edge | active_challenge | active_block.",
|
|
604
|
+
"type": "string"
|
|
605
|
+
},
|
|
606
|
+
"gated_layers": {
|
|
607
|
+
"description": "GatedLayers names the anti-bot detection layers that block a plain client,\nderived empirically from which probe tiers were rejected: `tls` (a plain\nHTTP client's TLS/header fingerprint was rejected, but browser-impersonation\nor a browser got through), `js` (HTTP transports failed; JavaScript\nrendering / a real browser was required), `behavior` (a plain headless\nbrowser was also rejected; an anti-detect/stealth browser was needed).",
|
|
608
|
+
"items": {
|
|
609
|
+
"type": "string"
|
|
610
|
+
},
|
|
611
|
+
"type": "array"
|
|
612
|
+
},
|
|
613
|
+
"notes": {
|
|
614
|
+
"items": {
|
|
615
|
+
"type": "string"
|
|
616
|
+
},
|
|
617
|
+
"type": "array"
|
|
618
|
+
},
|
|
619
|
+
"protections": {
|
|
620
|
+
"items": {
|
|
621
|
+
"$ref": "#/definitions/antibot.Protection"
|
|
622
|
+
},
|
|
623
|
+
"type": "array"
|
|
624
|
+
},
|
|
625
|
+
"recommended_approach": {
|
|
626
|
+
"type": "string"
|
|
627
|
+
},
|
|
628
|
+
"recommended_profile": {
|
|
629
|
+
"type": "string"
|
|
630
|
+
},
|
|
631
|
+
"retry_after": {
|
|
632
|
+
"type": "string"
|
|
633
|
+
},
|
|
634
|
+
"scrapeable": {
|
|
635
|
+
"type": "boolean"
|
|
636
|
+
},
|
|
637
|
+
"signals": {
|
|
638
|
+
"$ref": "#/definitions/antibot.Signals"
|
|
639
|
+
},
|
|
640
|
+
"summary": {
|
|
641
|
+
"type": "string"
|
|
642
|
+
},
|
|
643
|
+
"url": {
|
|
644
|
+
"type": "string"
|
|
645
|
+
},
|
|
646
|
+
"vm_vendor": {
|
|
647
|
+
"type": "string"
|
|
648
|
+
}
|
|
649
|
+
},
|
|
650
|
+
"type": "object"
|
|
651
|
+
},
|
|
467
652
|
"api.componentStatus": {
|
|
468
653
|
"properties": {
|
|
469
654
|
"error": {
|
|
@@ -8076,6 +8261,167 @@
|
|
|
8076
8261
|
},
|
|
8077
8262
|
"type": "object"
|
|
8078
8263
|
},
|
|
8264
|
+
"contact.ContactRequest": {
|
|
8265
|
+
"properties": {
|
|
8266
|
+
"independents_only": {
|
|
8267
|
+
"description": "IndependentsOnly, when true, returns just the classification (no crawl) for\nany non-independent site (chain/social/builder/directory) — a cheap filter.",
|
|
8268
|
+
"example": false,
|
|
8269
|
+
"type": "boolean"
|
|
8270
|
+
},
|
|
8271
|
+
"max_pages": {
|
|
8272
|
+
"example": 5,
|
|
8273
|
+
"type": "integer"
|
|
8274
|
+
},
|
|
8275
|
+
"url": {
|
|
8276
|
+
"example": "https://example.com",
|
|
8277
|
+
"type": "string"
|
|
8278
|
+
},
|
|
8279
|
+
"verify": {
|
|
8280
|
+
"example": true,
|
|
8281
|
+
"type": "boolean"
|
|
8282
|
+
}
|
|
8283
|
+
},
|
|
8284
|
+
"required": [
|
|
8285
|
+
"url"
|
|
8286
|
+
],
|
|
8287
|
+
"type": "object"
|
|
8288
|
+
},
|
|
8289
|
+
"contact.ContactResult": {
|
|
8290
|
+
"properties": {
|
|
8291
|
+
"crawl_status": {
|
|
8292
|
+
"description": "CrawlStatus explains an empty result: \"ok\" (read fine, nothing public to\nfind), \"blocked\" (an anti-bot wall stopped the read), or \"unreachable\" (the\nhomepage couldn't be fetched).",
|
|
8293
|
+
"enum": [
|
|
8294
|
+
"ok",
|
|
8295
|
+
"blocked",
|
|
8296
|
+
"unreachable"
|
|
8297
|
+
],
|
|
8298
|
+
"example": "ok",
|
|
8299
|
+
"type": "string"
|
|
8300
|
+
},
|
|
8301
|
+
"crawled_pages": {
|
|
8302
|
+
"items": {
|
|
8303
|
+
"type": "string"
|
|
8304
|
+
},
|
|
8305
|
+
"type": "array"
|
|
8306
|
+
},
|
|
8307
|
+
"domain": {
|
|
8308
|
+
"example": "example.com",
|
|
8309
|
+
"type": "string"
|
|
8310
|
+
},
|
|
8311
|
+
"domain_type": {
|
|
8312
|
+
"enum": [
|
|
8313
|
+
"independent",
|
|
8314
|
+
"chain",
|
|
8315
|
+
"social",
|
|
8316
|
+
"builder",
|
|
8317
|
+
"directory"
|
|
8318
|
+
],
|
|
8319
|
+
"example": "independent",
|
|
8320
|
+
"type": "string"
|
|
8321
|
+
},
|
|
8322
|
+
"emails": {
|
|
8323
|
+
"items": {
|
|
8324
|
+
"$ref": "#/definitions/contact.EmailContact"
|
|
8325
|
+
},
|
|
8326
|
+
"type": "array"
|
|
8327
|
+
},
|
|
8328
|
+
"phones": {
|
|
8329
|
+
"items": {
|
|
8330
|
+
"$ref": "#/definitions/contact.PhoneContact"
|
|
8331
|
+
},
|
|
8332
|
+
"type": "array"
|
|
8333
|
+
},
|
|
8334
|
+
"socials": {
|
|
8335
|
+
"items": {
|
|
8336
|
+
"$ref": "#/definitions/contact.SocialProfile"
|
|
8337
|
+
},
|
|
8338
|
+
"type": "array"
|
|
8339
|
+
},
|
|
8340
|
+
"website": {
|
|
8341
|
+
"example": "https://example.com",
|
|
8342
|
+
"type": "string"
|
|
8343
|
+
}
|
|
8344
|
+
},
|
|
8345
|
+
"type": "object"
|
|
8346
|
+
},
|
|
8347
|
+
"contact.EmailContact": {
|
|
8348
|
+
"properties": {
|
|
8349
|
+
"address": {
|
|
8350
|
+
"example": "hello@example.com",
|
|
8351
|
+
"type": "string"
|
|
8352
|
+
},
|
|
8353
|
+
"source_page": {
|
|
8354
|
+
"example": "https://example.com/contact",
|
|
8355
|
+
"type": "string"
|
|
8356
|
+
},
|
|
8357
|
+
"status": {
|
|
8358
|
+
"enum": [
|
|
8359
|
+
"verified",
|
|
8360
|
+
"risky",
|
|
8361
|
+
"unverified",
|
|
8362
|
+
"invalid"
|
|
8363
|
+
],
|
|
8364
|
+
"example": "unverified",
|
|
8365
|
+
"type": "string"
|
|
8366
|
+
},
|
|
8367
|
+
"type": {
|
|
8368
|
+
"enum": [
|
|
8369
|
+
"generic",
|
|
8370
|
+
"role",
|
|
8371
|
+
"personal"
|
|
8372
|
+
],
|
|
8373
|
+
"example": "generic",
|
|
8374
|
+
"type": "string"
|
|
8375
|
+
}
|
|
8376
|
+
},
|
|
8377
|
+
"type": "object"
|
|
8378
|
+
},
|
|
8379
|
+
"contact.PhoneContact": {
|
|
8380
|
+
"properties": {
|
|
8381
|
+
"number": {
|
|
8382
|
+
"example": "+1 415-555-2671",
|
|
8383
|
+
"type": "string"
|
|
8384
|
+
},
|
|
8385
|
+
"source_page": {
|
|
8386
|
+
"example": "https://example.com/contact",
|
|
8387
|
+
"type": "string"
|
|
8388
|
+
}
|
|
8389
|
+
},
|
|
8390
|
+
"type": "object"
|
|
8391
|
+
},
|
|
8392
|
+
"contact.SocialProfile": {
|
|
8393
|
+
"properties": {
|
|
8394
|
+
"handle": {
|
|
8395
|
+
"example": "example",
|
|
8396
|
+
"type": "string"
|
|
8397
|
+
},
|
|
8398
|
+
"network": {
|
|
8399
|
+
"example": "linkedin",
|
|
8400
|
+
"type": "string"
|
|
8401
|
+
},
|
|
8402
|
+
"url": {
|
|
8403
|
+
"example": "https://www.linkedin.com/company/example",
|
|
8404
|
+
"type": "string"
|
|
8405
|
+
}
|
|
8406
|
+
},
|
|
8407
|
+
"type": "object"
|
|
8408
|
+
},
|
|
8409
|
+
"contact.contactResponseDoc": {
|
|
8410
|
+
"properties": {
|
|
8411
|
+
"code": {
|
|
8412
|
+
"example": 200,
|
|
8413
|
+
"type": "integer"
|
|
8414
|
+
},
|
|
8415
|
+
"data": {
|
|
8416
|
+
"$ref": "#/definitions/contact.ContactResult"
|
|
8417
|
+
},
|
|
8418
|
+
"msg": {
|
|
8419
|
+
"example": "OK",
|
|
8420
|
+
"type": "string"
|
|
8421
|
+
}
|
|
8422
|
+
},
|
|
8423
|
+
"type": "object"
|
|
8424
|
+
},
|
|
8079
8425
|
"datasets.DatasetInfo": {
|
|
8080
8426
|
"properties": {
|
|
8081
8427
|
"capabilities": {
|
|
@@ -8214,6 +8560,39 @@
|
|
|
8214
8560
|
},
|
|
8215
8561
|
"type": "object"
|
|
8216
8562
|
},
|
|
8563
|
+
"diagnostics.AntibotCheckRequest": {
|
|
8564
|
+
"properties": {
|
|
8565
|
+
"fast": {
|
|
8566
|
+
"description": "Fast (default true) escalates cheapest-transport-first and returns at the\nfirst tier that retrieves the page, so an unprotected page never spins up a\nbrowser. Set false for an exhaustive multi-run sweep across every backend.",
|
|
8567
|
+
"type": "boolean"
|
|
8568
|
+
},
|
|
8569
|
+
"url": {
|
|
8570
|
+
"description": "URL is the absolute http/https target to assess.",
|
|
8571
|
+
"example": "https://www.crunchbase.com/organization/snowflake-computing",
|
|
8572
|
+
"type": "string"
|
|
8573
|
+
}
|
|
8574
|
+
},
|
|
8575
|
+
"required": [
|
|
8576
|
+
"url"
|
|
8577
|
+
],
|
|
8578
|
+
"type": "object"
|
|
8579
|
+
},
|
|
8580
|
+
"diagnostics.antibotCheckResponseDoc": {
|
|
8581
|
+
"properties": {
|
|
8582
|
+
"code": {
|
|
8583
|
+
"example": 200,
|
|
8584
|
+
"type": "integer"
|
|
8585
|
+
},
|
|
8586
|
+
"data": {
|
|
8587
|
+
"$ref": "#/definitions/antibot.Verdict"
|
|
8588
|
+
},
|
|
8589
|
+
"msg": {
|
|
8590
|
+
"example": "OK",
|
|
8591
|
+
"type": "string"
|
|
8592
|
+
}
|
|
8593
|
+
},
|
|
8594
|
+
"type": "object"
|
|
8595
|
+
},
|
|
8217
8596
|
"ebay.Item": {
|
|
8218
8597
|
"properties": {
|
|
8219
8598
|
"availability": {
|
|
@@ -24141,6 +24520,318 @@
|
|
|
24141
24520
|
},
|
|
24142
24521
|
"type": "object"
|
|
24143
24522
|
},
|
|
24523
|
+
"redfin.EstimateResponse": {
|
|
24524
|
+
"properties": {
|
|
24525
|
+
"address": {
|
|
24526
|
+
"type": "string"
|
|
24527
|
+
},
|
|
24528
|
+
"baths": {
|
|
24529
|
+
"type": "number"
|
|
24530
|
+
},
|
|
24531
|
+
"beds": {
|
|
24532
|
+
"type": "number"
|
|
24533
|
+
},
|
|
24534
|
+
"city_time_series": {
|
|
24535
|
+
"items": {
|
|
24536
|
+
"type": "number"
|
|
24537
|
+
},
|
|
24538
|
+
"type": "array"
|
|
24539
|
+
},
|
|
24540
|
+
"county_time_series": {
|
|
24541
|
+
"items": {
|
|
24542
|
+
"type": "number"
|
|
24543
|
+
},
|
|
24544
|
+
"type": "array"
|
|
24545
|
+
},
|
|
24546
|
+
"estimate": {
|
|
24547
|
+
"type": "number"
|
|
24548
|
+
},
|
|
24549
|
+
"estimate_text": {
|
|
24550
|
+
"type": "string"
|
|
24551
|
+
},
|
|
24552
|
+
"latitude": {
|
|
24553
|
+
"type": "number"
|
|
24554
|
+
},
|
|
24555
|
+
"listing_price": {
|
|
24556
|
+
"type": "number"
|
|
24557
|
+
},
|
|
24558
|
+
"longitude": {
|
|
24559
|
+
"type": "number"
|
|
24560
|
+
},
|
|
24561
|
+
"postal_code_time_series": {
|
|
24562
|
+
"items": {
|
|
24563
|
+
"type": "number"
|
|
24564
|
+
},
|
|
24565
|
+
"type": "array"
|
|
24566
|
+
},
|
|
24567
|
+
"property_id": {
|
|
24568
|
+
"example": "1715020",
|
|
24569
|
+
"type": "string"
|
|
24570
|
+
},
|
|
24571
|
+
"property_time_series": {
|
|
24572
|
+
"items": {
|
|
24573
|
+
"type": "number"
|
|
24574
|
+
},
|
|
24575
|
+
"type": "array"
|
|
24576
|
+
},
|
|
24577
|
+
"sqft": {
|
|
24578
|
+
"type": "number"
|
|
24579
|
+
},
|
|
24580
|
+
"updated_at": {
|
|
24581
|
+
"type": "integer"
|
|
24582
|
+
},
|
|
24583
|
+
"year_built": {
|
|
24584
|
+
"type": "integer"
|
|
24585
|
+
}
|
|
24586
|
+
},
|
|
24587
|
+
"type": "object"
|
|
24588
|
+
},
|
|
24589
|
+
"redfin.PropertyItem": {
|
|
24590
|
+
"properties": {
|
|
24591
|
+
"address": {
|
|
24592
|
+
"type": "string"
|
|
24593
|
+
},
|
|
24594
|
+
"baths": {
|
|
24595
|
+
"type": "number"
|
|
24596
|
+
},
|
|
24597
|
+
"beds": {
|
|
24598
|
+
"type": "number"
|
|
24599
|
+
},
|
|
24600
|
+
"city": {
|
|
24601
|
+
"type": "string"
|
|
24602
|
+
},
|
|
24603
|
+
"days_on_market": {
|
|
24604
|
+
"type": "integer"
|
|
24605
|
+
},
|
|
24606
|
+
"hoa_monthly": {
|
|
24607
|
+
"type": "number"
|
|
24608
|
+
},
|
|
24609
|
+
"image": {
|
|
24610
|
+
"type": "string"
|
|
24611
|
+
},
|
|
24612
|
+
"latitude": {
|
|
24613
|
+
"type": "number"
|
|
24614
|
+
},
|
|
24615
|
+
"listing_id": {
|
|
24616
|
+
"type": "string"
|
|
24617
|
+
},
|
|
24618
|
+
"longitude": {
|
|
24619
|
+
"type": "number"
|
|
24620
|
+
},
|
|
24621
|
+
"lot_size": {
|
|
24622
|
+
"type": "number"
|
|
24623
|
+
},
|
|
24624
|
+
"mls_number": {
|
|
24625
|
+
"type": "string"
|
|
24626
|
+
},
|
|
24627
|
+
"price": {
|
|
24628
|
+
"type": "number"
|
|
24629
|
+
},
|
|
24630
|
+
"price_per_sqft": {
|
|
24631
|
+
"type": "number"
|
|
24632
|
+
},
|
|
24633
|
+
"property_id": {
|
|
24634
|
+
"example": "1715020",
|
|
24635
|
+
"type": "string"
|
|
24636
|
+
},
|
|
24637
|
+
"property_type": {
|
|
24638
|
+
"type": "string"
|
|
24639
|
+
},
|
|
24640
|
+
"sqft": {
|
|
24641
|
+
"type": "number"
|
|
24642
|
+
},
|
|
24643
|
+
"state": {
|
|
24644
|
+
"type": "string"
|
|
24645
|
+
},
|
|
24646
|
+
"status": {
|
|
24647
|
+
"type": "string"
|
|
24648
|
+
},
|
|
24649
|
+
"url": {
|
|
24650
|
+
"type": "string"
|
|
24651
|
+
},
|
|
24652
|
+
"year_built": {
|
|
24653
|
+
"type": "integer"
|
|
24654
|
+
},
|
|
24655
|
+
"zip": {
|
|
24656
|
+
"type": "string"
|
|
24657
|
+
}
|
|
24658
|
+
},
|
|
24659
|
+
"type": "object"
|
|
24660
|
+
},
|
|
24661
|
+
"redfin.PropertyResponse": {
|
|
24662
|
+
"properties": {
|
|
24663
|
+
"address": {
|
|
24664
|
+
"type": "string"
|
|
24665
|
+
},
|
|
24666
|
+
"baths": {
|
|
24667
|
+
"type": "number"
|
|
24668
|
+
},
|
|
24669
|
+
"beds": {
|
|
24670
|
+
"type": "number"
|
|
24671
|
+
},
|
|
24672
|
+
"city": {
|
|
24673
|
+
"type": "string"
|
|
24674
|
+
},
|
|
24675
|
+
"days_on_market": {
|
|
24676
|
+
"type": "integer"
|
|
24677
|
+
},
|
|
24678
|
+
"description": {
|
|
24679
|
+
"type": "string"
|
|
24680
|
+
},
|
|
24681
|
+
"facts": {
|
|
24682
|
+
"items": {
|
|
24683
|
+
"type": "string"
|
|
24684
|
+
},
|
|
24685
|
+
"type": "array"
|
|
24686
|
+
},
|
|
24687
|
+
"hoa_monthly": {
|
|
24688
|
+
"type": "number"
|
|
24689
|
+
},
|
|
24690
|
+
"image": {
|
|
24691
|
+
"type": "string"
|
|
24692
|
+
},
|
|
24693
|
+
"latitude": {
|
|
24694
|
+
"type": "number"
|
|
24695
|
+
},
|
|
24696
|
+
"listing_id": {
|
|
24697
|
+
"type": "string"
|
|
24698
|
+
},
|
|
24699
|
+
"longitude": {
|
|
24700
|
+
"type": "number"
|
|
24701
|
+
},
|
|
24702
|
+
"lot_size": {
|
|
24703
|
+
"type": "number"
|
|
24704
|
+
},
|
|
24705
|
+
"mls_number": {
|
|
24706
|
+
"type": "string"
|
|
24707
|
+
},
|
|
24708
|
+
"price": {
|
|
24709
|
+
"type": "number"
|
|
24710
|
+
},
|
|
24711
|
+
"price_per_sqft": {
|
|
24712
|
+
"type": "number"
|
|
24713
|
+
},
|
|
24714
|
+
"property_id": {
|
|
24715
|
+
"example": "1715020",
|
|
24716
|
+
"type": "string"
|
|
24717
|
+
},
|
|
24718
|
+
"property_type": {
|
|
24719
|
+
"type": "string"
|
|
24720
|
+
},
|
|
24721
|
+
"sqft": {
|
|
24722
|
+
"type": "number"
|
|
24723
|
+
},
|
|
24724
|
+
"state": {
|
|
24725
|
+
"type": "string"
|
|
24726
|
+
},
|
|
24727
|
+
"status": {
|
|
24728
|
+
"type": "string"
|
|
24729
|
+
},
|
|
24730
|
+
"url": {
|
|
24731
|
+
"type": "string"
|
|
24732
|
+
},
|
|
24733
|
+
"year_built": {
|
|
24734
|
+
"type": "integer"
|
|
24735
|
+
},
|
|
24736
|
+
"zip": {
|
|
24737
|
+
"type": "string"
|
|
24738
|
+
}
|
|
24739
|
+
},
|
|
24740
|
+
"type": "object"
|
|
24741
|
+
},
|
|
24742
|
+
"redfin.RegionTrendsResponse": {
|
|
24743
|
+
"properties": {
|
|
24744
|
+
"avg_days_on_market": {
|
|
24745
|
+
"type": "string"
|
|
24746
|
+
},
|
|
24747
|
+
"avg_down_payment": {
|
|
24748
|
+
"type": "string"
|
|
24749
|
+
},
|
|
24750
|
+
"avg_num_offers": {
|
|
24751
|
+
"type": "string"
|
|
24752
|
+
},
|
|
24753
|
+
"median_list_per_sqft": {
|
|
24754
|
+
"type": "string"
|
|
24755
|
+
},
|
|
24756
|
+
"median_list_price": {
|
|
24757
|
+
"example": "$1.29M",
|
|
24758
|
+
"type": "string"
|
|
24759
|
+
},
|
|
24760
|
+
"median_sale_per_list": {
|
|
24761
|
+
"type": "string"
|
|
24762
|
+
},
|
|
24763
|
+
"median_sale_per_sqft": {
|
|
24764
|
+
"type": "string"
|
|
24765
|
+
},
|
|
24766
|
+
"median_sale_price": {
|
|
24767
|
+
"example": "$1.76M",
|
|
24768
|
+
"type": "string"
|
|
24769
|
+
},
|
|
24770
|
+
"num_homes_on_market": {
|
|
24771
|
+
"type": "string"
|
|
24772
|
+
},
|
|
24773
|
+
"num_homes_sold": {
|
|
24774
|
+
"type": "string"
|
|
24775
|
+
},
|
|
24776
|
+
"region_id": {
|
|
24777
|
+
"example": 17151,
|
|
24778
|
+
"type": "integer"
|
|
24779
|
+
},
|
|
24780
|
+
"region_type": {
|
|
24781
|
+
"example": 6,
|
|
24782
|
+
"type": "integer"
|
|
24783
|
+
},
|
|
24784
|
+
"yoy_sale_per_sqft": {
|
|
24785
|
+
"type": "string"
|
|
24786
|
+
},
|
|
24787
|
+
"yoy_sale_price": {
|
|
24788
|
+
"type": "string"
|
|
24789
|
+
}
|
|
24790
|
+
},
|
|
24791
|
+
"type": "object"
|
|
24792
|
+
},
|
|
24793
|
+
"redfin.SearchResponse": {
|
|
24794
|
+
"properties": {
|
|
24795
|
+
"location": {
|
|
24796
|
+
"example": "San Francisco, CA",
|
|
24797
|
+
"type": "string"
|
|
24798
|
+
},
|
|
24799
|
+
"page": {
|
|
24800
|
+
"example": 1,
|
|
24801
|
+
"type": "integer"
|
|
24802
|
+
},
|
|
24803
|
+
"region_id": {
|
|
24804
|
+
"example": 17151,
|
|
24805
|
+
"type": "integer"
|
|
24806
|
+
},
|
|
24807
|
+
"region_type": {
|
|
24808
|
+
"example": 6,
|
|
24809
|
+
"type": "integer"
|
|
24810
|
+
},
|
|
24811
|
+
"results": {
|
|
24812
|
+
"items": {
|
|
24813
|
+
"$ref": "#/definitions/redfin.PropertyItem"
|
|
24814
|
+
},
|
|
24815
|
+
"type": "array"
|
|
24816
|
+
}
|
|
24817
|
+
},
|
|
24818
|
+
"type": "object"
|
|
24819
|
+
},
|
|
24820
|
+
"redfin.SimilarResponse": {
|
|
24821
|
+
"properties": {
|
|
24822
|
+
"property_id": {
|
|
24823
|
+
"example": "1715020",
|
|
24824
|
+
"type": "string"
|
|
24825
|
+
},
|
|
24826
|
+
"results": {
|
|
24827
|
+
"items": {
|
|
24828
|
+
"$ref": "#/definitions/redfin.PropertyItem"
|
|
24829
|
+
},
|
|
24830
|
+
"type": "array"
|
|
24831
|
+
}
|
|
24832
|
+
},
|
|
24833
|
+
"type": "object"
|
|
24834
|
+
},
|
|
24144
24835
|
"referrals.referralAttributionDoc": {
|
|
24145
24836
|
"properties": {
|
|
24146
24837
|
"campaign": {
|
|
@@ -28673,6 +29364,11 @@
|
|
|
28673
29364
|
"operationName": {
|
|
28674
29365
|
"example": "countryHubContent",
|
|
28675
29366
|
"type": "string"
|
|
29367
|
+
},
|
|
29368
|
+
"partialErrors": {
|
|
29369
|
+
"description": "PartialErrors counts upstream GraphQL field errors tolerated alongside\nusable items. Zero on a fully clean response.",
|
|
29370
|
+
"example": 1,
|
|
29371
|
+
"type": "integer"
|
|
28676
29372
|
}
|
|
28677
29373
|
},
|
|
28678
29374
|
"type": "object"
|
|
@@ -28801,6 +29497,11 @@
|
|
|
28801
29497
|
"example": "countryHubsPage",
|
|
28802
29498
|
"type": "string"
|
|
28803
29499
|
},
|
|
29500
|
+
"partialErrors": {
|
|
29501
|
+
"description": "PartialErrors counts upstream GraphQL field errors that were tolerated\nbecause usable shelves were still returned (e.g. one broken shelf among\nseveral). Zero on a fully clean response.",
|
|
29502
|
+
"example": 1,
|
|
29503
|
+
"type": "integer"
|
|
29504
|
+
},
|
|
28804
29505
|
"sectionCount": {
|
|
28805
29506
|
"example": 5,
|
|
28806
29507
|
"type": "integer"
|
|
@@ -35472,6 +36173,193 @@
|
|
|
35472
36173
|
},
|
|
35473
36174
|
"type": "object"
|
|
35474
36175
|
},
|
|
36176
|
+
"web.ScrapeInfo": {
|
|
36177
|
+
"properties": {
|
|
36178
|
+
"backend": {
|
|
36179
|
+
"description": "headless backend that rendered, when method=browser",
|
|
36180
|
+
"type": "string"
|
|
36181
|
+
},
|
|
36182
|
+
"cache_state": {
|
|
36183
|
+
"description": "\"hit\" | \"miss\" — whether this response came from the cache",
|
|
36184
|
+
"type": "string"
|
|
36185
|
+
},
|
|
36186
|
+
"cached_at": {
|
|
36187
|
+
"description": "RFC3339 time the served copy was fetched (cache hits only)",
|
|
36188
|
+
"type": "string"
|
|
36189
|
+
},
|
|
36190
|
+
"escalated": {
|
|
36191
|
+
"description": "true when the fetch escalated from HTTP to a headless browser",
|
|
36192
|
+
"type": "boolean"
|
|
36193
|
+
},
|
|
36194
|
+
"method": {
|
|
36195
|
+
"description": "\"http\" | \"browser\"",
|
|
36196
|
+
"type": "string"
|
|
36197
|
+
}
|
|
36198
|
+
},
|
|
36199
|
+
"type": "object"
|
|
36200
|
+
},
|
|
36201
|
+
"web.ScrapeLink": {
|
|
36202
|
+
"properties": {
|
|
36203
|
+
"href": {
|
|
36204
|
+
"type": "string"
|
|
36205
|
+
},
|
|
36206
|
+
"rel": {
|
|
36207
|
+
"type": "string"
|
|
36208
|
+
},
|
|
36209
|
+
"text": {
|
|
36210
|
+
"type": "string"
|
|
36211
|
+
}
|
|
36212
|
+
},
|
|
36213
|
+
"type": "object"
|
|
36214
|
+
},
|
|
36215
|
+
"web.ScrapeMetadata": {
|
|
36216
|
+
"properties": {
|
|
36217
|
+
"author": {
|
|
36218
|
+
"type": "string"
|
|
36219
|
+
},
|
|
36220
|
+
"canonical_url": {
|
|
36221
|
+
"type": "string"
|
|
36222
|
+
},
|
|
36223
|
+
"content_type": {
|
|
36224
|
+
"type": "string"
|
|
36225
|
+
},
|
|
36226
|
+
"description": {
|
|
36227
|
+
"type": "string"
|
|
36228
|
+
},
|
|
36229
|
+
"final_url": {
|
|
36230
|
+
"type": "string"
|
|
36231
|
+
},
|
|
36232
|
+
"image": {
|
|
36233
|
+
"type": "string"
|
|
36234
|
+
},
|
|
36235
|
+
"language": {
|
|
36236
|
+
"type": "string"
|
|
36237
|
+
},
|
|
36238
|
+
"modified_at": {
|
|
36239
|
+
"type": "string"
|
|
36240
|
+
},
|
|
36241
|
+
"published_at": {
|
|
36242
|
+
"type": "string"
|
|
36243
|
+
},
|
|
36244
|
+
"section": {
|
|
36245
|
+
"type": "string"
|
|
36246
|
+
},
|
|
36247
|
+
"site_name": {
|
|
36248
|
+
"type": "string"
|
|
36249
|
+
},
|
|
36250
|
+
"source_url": {
|
|
36251
|
+
"type": "string"
|
|
36252
|
+
},
|
|
36253
|
+
"status_code": {
|
|
36254
|
+
"type": "integer"
|
|
36255
|
+
},
|
|
36256
|
+
"title": {
|
|
36257
|
+
"type": "string"
|
|
36258
|
+
}
|
|
36259
|
+
},
|
|
36260
|
+
"type": "object"
|
|
36261
|
+
},
|
|
36262
|
+
"web.ScrapeOption": {
|
|
36263
|
+
"properties": {
|
|
36264
|
+
"backend": {
|
|
36265
|
+
"example": "",
|
|
36266
|
+
"type": "string"
|
|
36267
|
+
},
|
|
36268
|
+
"formats": {
|
|
36269
|
+
"example": [
|
|
36270
|
+
"markdown"
|
|
36271
|
+
],
|
|
36272
|
+
"items": {
|
|
36273
|
+
"type": "string"
|
|
36274
|
+
},
|
|
36275
|
+
"type": "array"
|
|
36276
|
+
},
|
|
36277
|
+
"max_age": {
|
|
36278
|
+
"example": 604800000,
|
|
36279
|
+
"type": "integer"
|
|
36280
|
+
},
|
|
36281
|
+
"only_main_content": {
|
|
36282
|
+
"type": "boolean"
|
|
36283
|
+
},
|
|
36284
|
+
"proxy": {
|
|
36285
|
+
"example": "",
|
|
36286
|
+
"type": "string"
|
|
36287
|
+
},
|
|
36288
|
+
"render": {
|
|
36289
|
+
"enum": [
|
|
36290
|
+
"auto",
|
|
36291
|
+
"http",
|
|
36292
|
+
"browser",
|
|
36293
|
+
"unblocker"
|
|
36294
|
+
],
|
|
36295
|
+
"example": "auto",
|
|
36296
|
+
"type": "string"
|
|
36297
|
+
},
|
|
36298
|
+
"store_in_cache": {
|
|
36299
|
+
"type": "boolean"
|
|
36300
|
+
},
|
|
36301
|
+
"url": {
|
|
36302
|
+
"example": "https://example.com",
|
|
36303
|
+
"type": "string"
|
|
36304
|
+
},
|
|
36305
|
+
"wait_for": {
|
|
36306
|
+
"example": 0,
|
|
36307
|
+
"type": "integer"
|
|
36308
|
+
}
|
|
36309
|
+
},
|
|
36310
|
+
"required": [
|
|
36311
|
+
"url"
|
|
36312
|
+
],
|
|
36313
|
+
"type": "object"
|
|
36314
|
+
},
|
|
36315
|
+
"web.ScrapeResult": {
|
|
36316
|
+
"properties": {
|
|
36317
|
+
"html": {
|
|
36318
|
+
"type": "string"
|
|
36319
|
+
},
|
|
36320
|
+
"link_details": {
|
|
36321
|
+
"items": {
|
|
36322
|
+
"$ref": "#/definitions/web.ScrapeLink"
|
|
36323
|
+
},
|
|
36324
|
+
"type": "array"
|
|
36325
|
+
},
|
|
36326
|
+
"links": {
|
|
36327
|
+
"items": {
|
|
36328
|
+
"type": "string"
|
|
36329
|
+
},
|
|
36330
|
+
"type": "array"
|
|
36331
|
+
},
|
|
36332
|
+
"markdown": {
|
|
36333
|
+
"type": "string"
|
|
36334
|
+
},
|
|
36335
|
+
"metadata": {
|
|
36336
|
+
"$ref": "#/definitions/web.ScrapeMetadata"
|
|
36337
|
+
},
|
|
36338
|
+
"raw_html": {
|
|
36339
|
+
"type": "string"
|
|
36340
|
+
},
|
|
36341
|
+
"scrape": {
|
|
36342
|
+
"$ref": "#/definitions/web.ScrapeInfo"
|
|
36343
|
+
}
|
|
36344
|
+
},
|
|
36345
|
+
"type": "object"
|
|
36346
|
+
},
|
|
36347
|
+
"web.scrapeResponseDoc": {
|
|
36348
|
+
"properties": {
|
|
36349
|
+
"code": {
|
|
36350
|
+
"example": 200,
|
|
36351
|
+
"type": "integer"
|
|
36352
|
+
},
|
|
36353
|
+
"data": {
|
|
36354
|
+
"$ref": "#/definitions/web.ScrapeResult"
|
|
36355
|
+
},
|
|
36356
|
+
"msg": {
|
|
36357
|
+
"example": "OK",
|
|
36358
|
+
"type": "string"
|
|
36359
|
+
}
|
|
36360
|
+
},
|
|
36361
|
+
"type": "object"
|
|
36362
|
+
},
|
|
35475
36363
|
"yahoofinance.ActionEvents": {
|
|
35476
36364
|
"properties": {
|
|
35477
36365
|
"capital_gains": {
|
|
@@ -42607,7 +43495,7 @@
|
|
|
42607
43495
|
"consumes": [
|
|
42608
43496
|
"application/json"
|
|
42609
43497
|
],
|
|
42610
|
-
"description": "Fetches a domain's homepage and extracts a normalized brand profile (title, description, colors, logos, backdrops, socials, links, and any schema.org organization data). Enrichment-only fields that are not present in the page markup are returned as null.",
|
|
43498
|
+
"description": "Fetches a domain's homepage and Web App Manifest and extracts a normalized brand profile (title, description, brand colors normalized to hex, logos and icons ranked best-first, backdrops, socials, links, and any schema.org organization data). Enrichment-only fields that are not present in the page markup are returned as null.",
|
|
42611
43499
|
"operationId": "brand-retrieve",
|
|
42612
43500
|
"parameters": [
|
|
42613
43501
|
{
|
|
@@ -45953,6 +46841,64 @@
|
|
|
45953
46841
|
]
|
|
45954
46842
|
}
|
|
45955
46843
|
},
|
|
46844
|
+
"/contact": {
|
|
46845
|
+
"post": {
|
|
46846
|
+
"consumes": [
|
|
46847
|
+
"application/json"
|
|
46848
|
+
],
|
|
46849
|
+
"description": "Crawls a public website URL (homepage plus contact/about/team/imprint pages) and returns its public business contact details: emails — each tagged with a verification `status` (`verified`, `risky`, `unverified`, `invalid`) and a `type` (`generic`, `role`, `personal`) — plus social-media profiles and phone numbers. Intended for authorized public-business data only.",
|
|
46850
|
+
"operationId": "contact",
|
|
46851
|
+
"parameters": [
|
|
46852
|
+
{
|
|
46853
|
+
"description": "Website URL payload",
|
|
46854
|
+
"in": "body",
|
|
46855
|
+
"name": "option",
|
|
46856
|
+
"required": true,
|
|
46857
|
+
"schema": {
|
|
46858
|
+
"$ref": "#/definitions/contact.ContactRequest"
|
|
46859
|
+
}
|
|
46860
|
+
}
|
|
46861
|
+
],
|
|
46862
|
+
"produces": [
|
|
46863
|
+
"application/json"
|
|
46864
|
+
],
|
|
46865
|
+
"responses": {
|
|
46866
|
+
"200": {
|
|
46867
|
+
"description": "OK",
|
|
46868
|
+
"schema": {
|
|
46869
|
+
"$ref": "#/definitions/contact.contactResponseDoc"
|
|
46870
|
+
}
|
|
46871
|
+
},
|
|
46872
|
+
"400": {
|
|
46873
|
+
"description": "Invalid input or missing URL",
|
|
46874
|
+
"schema": {
|
|
46875
|
+
"$ref": "#/definitions/app.Response"
|
|
46876
|
+
}
|
|
46877
|
+
},
|
|
46878
|
+
"429": {
|
|
46879
|
+
"description": "Rate limit exceeded",
|
|
46880
|
+
"schema": {
|
|
46881
|
+
"$ref": "#/definitions/app.Response"
|
|
46882
|
+
}
|
|
46883
|
+
},
|
|
46884
|
+
"500": {
|
|
46885
|
+
"description": "Internal server error during contact extraction",
|
|
46886
|
+
"schema": {
|
|
46887
|
+
"$ref": "#/definitions/app.Response"
|
|
46888
|
+
}
|
|
46889
|
+
}
|
|
46890
|
+
},
|
|
46891
|
+
"security": [
|
|
46892
|
+
{
|
|
46893
|
+
"ApiKeyAuth": []
|
|
46894
|
+
}
|
|
46895
|
+
],
|
|
46896
|
+
"summary": "Contact API — emails, socials and phones for a website",
|
|
46897
|
+
"tags": [
|
|
46898
|
+
"Web"
|
|
46899
|
+
]
|
|
46900
|
+
}
|
|
46901
|
+
},
|
|
45956
46902
|
"/datasets": {
|
|
45957
46903
|
"get": {
|
|
45958
46904
|
"consumes": [
|
|
@@ -46076,13 +47022,314 @@
|
|
|
46076
47022
|
"type": "boolean"
|
|
46077
47023
|
},
|
|
46078
47024
|
{
|
|
46079
|
-
"description": "Latitude for radius filtering",
|
|
47025
|
+
"description": "Latitude for radius filtering",
|
|
47026
|
+
"in": "query",
|
|
47027
|
+
"name": "lat",
|
|
47028
|
+
"type": "number"
|
|
47029
|
+
},
|
|
47030
|
+
{
|
|
47031
|
+
"description": "Longitude for radius filtering",
|
|
47032
|
+
"in": "query",
|
|
47033
|
+
"name": "lon",
|
|
47034
|
+
"type": "number"
|
|
47035
|
+
},
|
|
47036
|
+
{
|
|
47037
|
+
"description": "Radius in meters, 1 through 50000; requires lat and lon when supplied",
|
|
47038
|
+
"in": "query",
|
|
47039
|
+
"name": "radius_m",
|
|
47040
|
+
"type": "integer"
|
|
47041
|
+
},
|
|
47042
|
+
{
|
|
47043
|
+
"description": "Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc",
|
|
47044
|
+
"in": "query",
|
|
47045
|
+
"name": "sort",
|
|
47046
|
+
"type": "string"
|
|
47047
|
+
}
|
|
47048
|
+
],
|
|
47049
|
+
"produces": [
|
|
47050
|
+
"application/json"
|
|
47051
|
+
],
|
|
47052
|
+
"responses": {
|
|
47053
|
+
"200": {
|
|
47054
|
+
"description": "OK",
|
|
47055
|
+
"schema": {
|
|
47056
|
+
"$ref": "#/definitions/datasets.googleMapBusinessesFacetResponseDoc"
|
|
47057
|
+
}
|
|
47058
|
+
},
|
|
47059
|
+
"400": {
|
|
47060
|
+
"description": "Bad Request",
|
|
47061
|
+
"schema": {
|
|
47062
|
+
"$ref": "#/definitions/app.Response"
|
|
47063
|
+
}
|
|
47064
|
+
},
|
|
47065
|
+
"429": {
|
|
47066
|
+
"description": "Too Many Requests",
|
|
47067
|
+
"schema": {
|
|
47068
|
+
"$ref": "#/definitions/app.Response"
|
|
47069
|
+
}
|
|
47070
|
+
},
|
|
47071
|
+
"500": {
|
|
47072
|
+
"description": "Internal Server Error",
|
|
47073
|
+
"schema": {
|
|
47074
|
+
"$ref": "#/definitions/app.Response"
|
|
47075
|
+
}
|
|
47076
|
+
}
|
|
47077
|
+
},
|
|
47078
|
+
"security": [
|
|
47079
|
+
{
|
|
47080
|
+
"ApiKeyAuth": []
|
|
47081
|
+
}
|
|
47082
|
+
],
|
|
47083
|
+
"summary": "Facet stored Google Maps businesses",
|
|
47084
|
+
"tags": [
|
|
47085
|
+
"Datasets"
|
|
47086
|
+
]
|
|
47087
|
+
}
|
|
47088
|
+
},
|
|
47089
|
+
"/datasets/google-map-businesses/items/{place_id}": {
|
|
47090
|
+
"get": {
|
|
47091
|
+
"consumes": [
|
|
47092
|
+
"application/json"
|
|
47093
|
+
],
|
|
47094
|
+
"description": "Returns one stored Google Maps business by Google place_id from dataset id enum value `google-map-businesses`.",
|
|
47095
|
+
"operationId": "datasets-google-map-businesses-item",
|
|
47096
|
+
"parameters": [
|
|
47097
|
+
{
|
|
47098
|
+
"description": "Google Place ID, max 256 characters",
|
|
47099
|
+
"in": "path",
|
|
47100
|
+
"name": "place_id",
|
|
47101
|
+
"required": true,
|
|
47102
|
+
"type": "string"
|
|
47103
|
+
}
|
|
47104
|
+
],
|
|
47105
|
+
"produces": [
|
|
47106
|
+
"application/json"
|
|
47107
|
+
],
|
|
47108
|
+
"responses": {
|
|
47109
|
+
"200": {
|
|
47110
|
+
"description": "OK",
|
|
47111
|
+
"schema": {
|
|
47112
|
+
"$ref": "#/definitions/datasets.googleMapBusinessResponseDoc"
|
|
47113
|
+
}
|
|
47114
|
+
},
|
|
47115
|
+
"400": {
|
|
47116
|
+
"description": "Bad Request",
|
|
47117
|
+
"schema": {
|
|
47118
|
+
"$ref": "#/definitions/app.Response"
|
|
47119
|
+
}
|
|
47120
|
+
},
|
|
47121
|
+
"404": {
|
|
47122
|
+
"description": "Not Found",
|
|
47123
|
+
"schema": {
|
|
47124
|
+
"$ref": "#/definitions/app.Response"
|
|
47125
|
+
}
|
|
47126
|
+
},
|
|
47127
|
+
"429": {
|
|
47128
|
+
"description": "Too Many Requests",
|
|
47129
|
+
"schema": {
|
|
47130
|
+
"$ref": "#/definitions/app.Response"
|
|
47131
|
+
}
|
|
47132
|
+
},
|
|
47133
|
+
"500": {
|
|
47134
|
+
"description": "Internal Server Error",
|
|
47135
|
+
"schema": {
|
|
47136
|
+
"$ref": "#/definitions/app.Response"
|
|
47137
|
+
}
|
|
47138
|
+
}
|
|
47139
|
+
},
|
|
47140
|
+
"security": [
|
|
47141
|
+
{
|
|
47142
|
+
"ApiKeyAuth": []
|
|
47143
|
+
}
|
|
47144
|
+
],
|
|
47145
|
+
"summary": "Get a stored Google Maps business",
|
|
47146
|
+
"tags": [
|
|
47147
|
+
"Datasets"
|
|
47148
|
+
]
|
|
47149
|
+
}
|
|
47150
|
+
},
|
|
47151
|
+
"/datasets/google-map-businesses/nearby": {
|
|
47152
|
+
"get": {
|
|
47153
|
+
"consumes": [
|
|
47154
|
+
"application/json"
|
|
47155
|
+
],
|
|
47156
|
+
"description": "Searches stored Google Maps businesses near a coordinate in dataset id enum value `google-map-businesses`.",
|
|
47157
|
+
"operationId": "datasets-google-map-businesses-nearby",
|
|
47158
|
+
"parameters": [
|
|
47159
|
+
{
|
|
47160
|
+
"description": "Latitude",
|
|
47161
|
+
"in": "query",
|
|
47162
|
+
"name": "lat",
|
|
47163
|
+
"required": true,
|
|
47164
|
+
"type": "number"
|
|
47165
|
+
},
|
|
47166
|
+
{
|
|
47167
|
+
"description": "Longitude",
|
|
47168
|
+
"in": "query",
|
|
47169
|
+
"name": "lon",
|
|
47170
|
+
"required": true,
|
|
47171
|
+
"type": "number"
|
|
47172
|
+
},
|
|
47173
|
+
{
|
|
47174
|
+
"description": "Radius in meters, max 50000",
|
|
47175
|
+
"in": "query",
|
|
47176
|
+
"name": "radius_m",
|
|
47177
|
+
"required": true,
|
|
47178
|
+
"type": "integer"
|
|
47179
|
+
},
|
|
47180
|
+
{
|
|
47181
|
+
"description": "Exact category filter, max 128 characters",
|
|
47182
|
+
"in": "query",
|
|
47183
|
+
"name": "category",
|
|
47184
|
+
"type": "string"
|
|
47185
|
+
},
|
|
47186
|
+
{
|
|
47187
|
+
"description": "Minimum rating, 0 through 5",
|
|
47188
|
+
"in": "query",
|
|
47189
|
+
"name": "min_rating",
|
|
47190
|
+
"type": "number"
|
|
47191
|
+
},
|
|
47192
|
+
{
|
|
47193
|
+
"description": "Minimum review count",
|
|
47194
|
+
"in": "query",
|
|
47195
|
+
"name": "min_review_count",
|
|
47196
|
+
"type": "integer"
|
|
47197
|
+
},
|
|
47198
|
+
{
|
|
47199
|
+
"description": "Page number, defaults to 1",
|
|
47200
|
+
"in": "query",
|
|
47201
|
+
"name": "page",
|
|
47202
|
+
"type": "integer"
|
|
47203
|
+
},
|
|
47204
|
+
{
|
|
47205
|
+
"description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000",
|
|
47206
|
+
"in": "query",
|
|
47207
|
+
"name": "page_size",
|
|
47208
|
+
"type": "integer"
|
|
47209
|
+
}
|
|
47210
|
+
],
|
|
47211
|
+
"produces": [
|
|
47212
|
+
"application/json"
|
|
47213
|
+
],
|
|
47214
|
+
"responses": {
|
|
47215
|
+
"200": {
|
|
47216
|
+
"description": "OK",
|
|
47217
|
+
"schema": {
|
|
47218
|
+
"$ref": "#/definitions/datasets.googleMapBusinessesSearchResponseDoc"
|
|
47219
|
+
}
|
|
47220
|
+
},
|
|
47221
|
+
"400": {
|
|
47222
|
+
"description": "Bad Request",
|
|
47223
|
+
"schema": {
|
|
47224
|
+
"$ref": "#/definitions/app.Response"
|
|
47225
|
+
}
|
|
47226
|
+
},
|
|
47227
|
+
"429": {
|
|
47228
|
+
"description": "Too Many Requests",
|
|
47229
|
+
"schema": {
|
|
47230
|
+
"$ref": "#/definitions/app.Response"
|
|
47231
|
+
}
|
|
47232
|
+
},
|
|
47233
|
+
"500": {
|
|
47234
|
+
"description": "Internal Server Error",
|
|
47235
|
+
"schema": {
|
|
47236
|
+
"$ref": "#/definitions/app.Response"
|
|
47237
|
+
}
|
|
47238
|
+
}
|
|
47239
|
+
},
|
|
47240
|
+
"security": [
|
|
47241
|
+
{
|
|
47242
|
+
"ApiKeyAuth": []
|
|
47243
|
+
}
|
|
47244
|
+
],
|
|
47245
|
+
"summary": "Search nearby stored Google Maps businesses",
|
|
47246
|
+
"tags": [
|
|
47247
|
+
"Datasets"
|
|
47248
|
+
]
|
|
47249
|
+
}
|
|
47250
|
+
},
|
|
47251
|
+
"/datasets/google-map-businesses/search": {
|
|
47252
|
+
"get": {
|
|
47253
|
+
"consumes": [
|
|
47254
|
+
"application/json"
|
|
47255
|
+
],
|
|
47256
|
+
"description": "Searches Google Maps business records stored in a search index. Sort enum: `relevance`, `updated_at_desc`, `rating_desc`, `review_count_desc`, `distance_asc`.",
|
|
47257
|
+
"operationId": "datasets-google-map-businesses-search",
|
|
47258
|
+
"parameters": [
|
|
47259
|
+
{
|
|
47260
|
+
"description": "Full-text business search query, max 256 characters",
|
|
47261
|
+
"in": "query",
|
|
47262
|
+
"name": "q",
|
|
47263
|
+
"type": "string"
|
|
47264
|
+
},
|
|
47265
|
+
{
|
|
47266
|
+
"description": "Exact category filter, max 128 characters",
|
|
47267
|
+
"in": "query",
|
|
47268
|
+
"name": "category",
|
|
47269
|
+
"type": "string"
|
|
47270
|
+
},
|
|
47271
|
+
{
|
|
47272
|
+
"description": "Exact country filter, max 128 characters",
|
|
47273
|
+
"in": "query",
|
|
47274
|
+
"name": "country",
|
|
47275
|
+
"type": "string"
|
|
47276
|
+
},
|
|
47277
|
+
{
|
|
47278
|
+
"description": "Exact state filter, max 128 characters",
|
|
47279
|
+
"in": "query",
|
|
47280
|
+
"name": "state",
|
|
47281
|
+
"type": "string"
|
|
47282
|
+
},
|
|
47283
|
+
{
|
|
47284
|
+
"description": "Exact county filter, max 128 characters",
|
|
47285
|
+
"in": "query",
|
|
47286
|
+
"name": "county",
|
|
47287
|
+
"type": "string"
|
|
47288
|
+
},
|
|
47289
|
+
{
|
|
47290
|
+
"description": "Exact city filter, max 128 characters",
|
|
47291
|
+
"in": "query",
|
|
47292
|
+
"name": "city",
|
|
47293
|
+
"type": "string"
|
|
47294
|
+
},
|
|
47295
|
+
{
|
|
47296
|
+
"description": "Exact town filter, max 128 characters",
|
|
47297
|
+
"in": "query",
|
|
47298
|
+
"name": "town",
|
|
47299
|
+
"type": "string"
|
|
47300
|
+
},
|
|
47301
|
+
{
|
|
47302
|
+
"description": "Minimum rating, 0 through 5",
|
|
47303
|
+
"in": "query",
|
|
47304
|
+
"name": "min_rating",
|
|
47305
|
+
"type": "number"
|
|
47306
|
+
},
|
|
47307
|
+
{
|
|
47308
|
+
"description": "Minimum review count",
|
|
47309
|
+
"in": "query",
|
|
47310
|
+
"name": "min_review_count",
|
|
47311
|
+
"type": "integer"
|
|
47312
|
+
},
|
|
47313
|
+
{
|
|
47314
|
+
"description": "Filter by website presence",
|
|
47315
|
+
"in": "query",
|
|
47316
|
+
"name": "has_website",
|
|
47317
|
+
"type": "boolean"
|
|
47318
|
+
},
|
|
47319
|
+
{
|
|
47320
|
+
"description": "Filter by phone presence",
|
|
47321
|
+
"in": "query",
|
|
47322
|
+
"name": "has_phone",
|
|
47323
|
+
"type": "boolean"
|
|
47324
|
+
},
|
|
47325
|
+
{
|
|
47326
|
+
"description": "Latitude for radius filtering or distance sort",
|
|
46080
47327
|
"in": "query",
|
|
46081
47328
|
"name": "lat",
|
|
46082
47329
|
"type": "number"
|
|
46083
47330
|
},
|
|
46084
47331
|
{
|
|
46085
|
-
"description": "Longitude for radius filtering",
|
|
47332
|
+
"description": "Longitude for radius filtering or distance sort",
|
|
46086
47333
|
"in": "query",
|
|
46087
47334
|
"name": "lon",
|
|
46088
47335
|
"type": "number"
|
|
@@ -46098,156 +47345,6 @@
|
|
|
46098
47345
|
"in": "query",
|
|
46099
47346
|
"name": "sort",
|
|
46100
47347
|
"type": "string"
|
|
46101
|
-
}
|
|
46102
|
-
],
|
|
46103
|
-
"produces": [
|
|
46104
|
-
"application/json"
|
|
46105
|
-
],
|
|
46106
|
-
"responses": {
|
|
46107
|
-
"200": {
|
|
46108
|
-
"description": "OK",
|
|
46109
|
-
"schema": {
|
|
46110
|
-
"$ref": "#/definitions/datasets.googleMapBusinessesFacetResponseDoc"
|
|
46111
|
-
}
|
|
46112
|
-
},
|
|
46113
|
-
"400": {
|
|
46114
|
-
"description": "Bad Request",
|
|
46115
|
-
"schema": {
|
|
46116
|
-
"$ref": "#/definitions/app.Response"
|
|
46117
|
-
}
|
|
46118
|
-
},
|
|
46119
|
-
"429": {
|
|
46120
|
-
"description": "Too Many Requests",
|
|
46121
|
-
"schema": {
|
|
46122
|
-
"$ref": "#/definitions/app.Response"
|
|
46123
|
-
}
|
|
46124
|
-
},
|
|
46125
|
-
"500": {
|
|
46126
|
-
"description": "Internal Server Error",
|
|
46127
|
-
"schema": {
|
|
46128
|
-
"$ref": "#/definitions/app.Response"
|
|
46129
|
-
}
|
|
46130
|
-
}
|
|
46131
|
-
},
|
|
46132
|
-
"security": [
|
|
46133
|
-
{
|
|
46134
|
-
"ApiKeyAuth": []
|
|
46135
|
-
}
|
|
46136
|
-
],
|
|
46137
|
-
"summary": "Facet stored Google Maps businesses",
|
|
46138
|
-
"tags": [
|
|
46139
|
-
"Datasets"
|
|
46140
|
-
]
|
|
46141
|
-
}
|
|
46142
|
-
},
|
|
46143
|
-
"/datasets/google-map-businesses/items/{place_id}": {
|
|
46144
|
-
"get": {
|
|
46145
|
-
"consumes": [
|
|
46146
|
-
"application/json"
|
|
46147
|
-
],
|
|
46148
|
-
"description": "Returns one stored Google Maps business by Google place_id from dataset id enum value `google-map-businesses`.",
|
|
46149
|
-
"operationId": "datasets-google-map-businesses-item",
|
|
46150
|
-
"parameters": [
|
|
46151
|
-
{
|
|
46152
|
-
"description": "Google Place ID, max 256 characters",
|
|
46153
|
-
"in": "path",
|
|
46154
|
-
"name": "place_id",
|
|
46155
|
-
"required": true,
|
|
46156
|
-
"type": "string"
|
|
46157
|
-
}
|
|
46158
|
-
],
|
|
46159
|
-
"produces": [
|
|
46160
|
-
"application/json"
|
|
46161
|
-
],
|
|
46162
|
-
"responses": {
|
|
46163
|
-
"200": {
|
|
46164
|
-
"description": "OK",
|
|
46165
|
-
"schema": {
|
|
46166
|
-
"$ref": "#/definitions/datasets.googleMapBusinessResponseDoc"
|
|
46167
|
-
}
|
|
46168
|
-
},
|
|
46169
|
-
"400": {
|
|
46170
|
-
"description": "Bad Request",
|
|
46171
|
-
"schema": {
|
|
46172
|
-
"$ref": "#/definitions/app.Response"
|
|
46173
|
-
}
|
|
46174
|
-
},
|
|
46175
|
-
"404": {
|
|
46176
|
-
"description": "Not Found",
|
|
46177
|
-
"schema": {
|
|
46178
|
-
"$ref": "#/definitions/app.Response"
|
|
46179
|
-
}
|
|
46180
|
-
},
|
|
46181
|
-
"429": {
|
|
46182
|
-
"description": "Too Many Requests",
|
|
46183
|
-
"schema": {
|
|
46184
|
-
"$ref": "#/definitions/app.Response"
|
|
46185
|
-
}
|
|
46186
|
-
},
|
|
46187
|
-
"500": {
|
|
46188
|
-
"description": "Internal Server Error",
|
|
46189
|
-
"schema": {
|
|
46190
|
-
"$ref": "#/definitions/app.Response"
|
|
46191
|
-
}
|
|
46192
|
-
}
|
|
46193
|
-
},
|
|
46194
|
-
"security": [
|
|
46195
|
-
{
|
|
46196
|
-
"ApiKeyAuth": []
|
|
46197
|
-
}
|
|
46198
|
-
],
|
|
46199
|
-
"summary": "Get a stored Google Maps business",
|
|
46200
|
-
"tags": [
|
|
46201
|
-
"Datasets"
|
|
46202
|
-
]
|
|
46203
|
-
}
|
|
46204
|
-
},
|
|
46205
|
-
"/datasets/google-map-businesses/nearby": {
|
|
46206
|
-
"get": {
|
|
46207
|
-
"consumes": [
|
|
46208
|
-
"application/json"
|
|
46209
|
-
],
|
|
46210
|
-
"description": "Searches stored Google Maps businesses near a coordinate in dataset id enum value `google-map-businesses`.",
|
|
46211
|
-
"operationId": "datasets-google-map-businesses-nearby",
|
|
46212
|
-
"parameters": [
|
|
46213
|
-
{
|
|
46214
|
-
"description": "Latitude",
|
|
46215
|
-
"in": "query",
|
|
46216
|
-
"name": "lat",
|
|
46217
|
-
"required": true,
|
|
46218
|
-
"type": "number"
|
|
46219
|
-
},
|
|
46220
|
-
{
|
|
46221
|
-
"description": "Longitude",
|
|
46222
|
-
"in": "query",
|
|
46223
|
-
"name": "lon",
|
|
46224
|
-
"required": true,
|
|
46225
|
-
"type": "number"
|
|
46226
|
-
},
|
|
46227
|
-
{
|
|
46228
|
-
"description": "Radius in meters, max 50000",
|
|
46229
|
-
"in": "query",
|
|
46230
|
-
"name": "radius_m",
|
|
46231
|
-
"required": true,
|
|
46232
|
-
"type": "integer"
|
|
46233
|
-
},
|
|
46234
|
-
{
|
|
46235
|
-
"description": "Exact category filter, max 128 characters",
|
|
46236
|
-
"in": "query",
|
|
46237
|
-
"name": "category",
|
|
46238
|
-
"type": "string"
|
|
46239
|
-
},
|
|
46240
|
-
{
|
|
46241
|
-
"description": "Minimum rating, 0 through 5",
|
|
46242
|
-
"in": "query",
|
|
46243
|
-
"name": "min_rating",
|
|
46244
|
-
"type": "number"
|
|
46245
|
-
},
|
|
46246
|
-
{
|
|
46247
|
-
"description": "Minimum review count",
|
|
46248
|
-
"in": "query",
|
|
46249
|
-
"name": "min_review_count",
|
|
46250
|
-
"type": "integer"
|
|
46251
47348
|
},
|
|
46252
47349
|
{
|
|
46253
47350
|
"description": "Page number, defaults to 1",
|
|
@@ -46296,121 +47393,28 @@
|
|
|
46296
47393
|
"ApiKeyAuth": []
|
|
46297
47394
|
}
|
|
46298
47395
|
],
|
|
46299
|
-
"summary": "Search
|
|
47396
|
+
"summary": "Search stored Google Maps businesses",
|
|
46300
47397
|
"tags": [
|
|
46301
47398
|
"Datasets"
|
|
46302
47399
|
]
|
|
46303
47400
|
}
|
|
46304
47401
|
},
|
|
46305
|
-
"/
|
|
46306
|
-
"
|
|
47402
|
+
"/diagnostics/antibot-check": {
|
|
47403
|
+
"post": {
|
|
46307
47404
|
"consumes": [
|
|
46308
47405
|
"application/json"
|
|
46309
47406
|
],
|
|
46310
|
-
"description": "
|
|
46311
|
-
"operationId": "
|
|
47407
|
+
"description": "Probes a URL across escalating transports (direct HTTP → browser-impersonation → headless/stealth browsers) and returns an empirical scraping-difficulty assessment for that exact URL: a 0–10 `difficulty_score` and `difficulty_band` (`easy`, `medium`, `hard`, `very_hard`, `blocked`, `unknown`), whether it is `scrapeable`, the detected anti-bot `protections` (Cloudflare, DataDome, Akamai, PerimeterX, Kasada, Imperva, AWS WAF and more — each with a `kind` and `confidence`), the lightest transport that worked, and a `recommended_profile`. Difficulty is per-URL, not per-site — a homepage may be open while deep pages are bot-managed. Intended for authorized public-data scraping planning.",
|
|
47408
|
+
"operationId": "antibot-check",
|
|
46312
47409
|
"parameters": [
|
|
46313
47410
|
{
|
|
46314
|
-
"description": "
|
|
46315
|
-
"in": "
|
|
46316
|
-
"name": "
|
|
46317
|
-
"
|
|
46318
|
-
|
|
46319
|
-
|
|
46320
|
-
|
|
46321
|
-
"in": "query",
|
|
46322
|
-
"name": "category",
|
|
46323
|
-
"type": "string"
|
|
46324
|
-
},
|
|
46325
|
-
{
|
|
46326
|
-
"description": "Exact country filter, max 128 characters",
|
|
46327
|
-
"in": "query",
|
|
46328
|
-
"name": "country",
|
|
46329
|
-
"type": "string"
|
|
46330
|
-
},
|
|
46331
|
-
{
|
|
46332
|
-
"description": "Exact state filter, max 128 characters",
|
|
46333
|
-
"in": "query",
|
|
46334
|
-
"name": "state",
|
|
46335
|
-
"type": "string"
|
|
46336
|
-
},
|
|
46337
|
-
{
|
|
46338
|
-
"description": "Exact county filter, max 128 characters",
|
|
46339
|
-
"in": "query",
|
|
46340
|
-
"name": "county",
|
|
46341
|
-
"type": "string"
|
|
46342
|
-
},
|
|
46343
|
-
{
|
|
46344
|
-
"description": "Exact city filter, max 128 characters",
|
|
46345
|
-
"in": "query",
|
|
46346
|
-
"name": "city",
|
|
46347
|
-
"type": "string"
|
|
46348
|
-
},
|
|
46349
|
-
{
|
|
46350
|
-
"description": "Exact town filter, max 128 characters",
|
|
46351
|
-
"in": "query",
|
|
46352
|
-
"name": "town",
|
|
46353
|
-
"type": "string"
|
|
46354
|
-
},
|
|
46355
|
-
{
|
|
46356
|
-
"description": "Minimum rating, 0 through 5",
|
|
46357
|
-
"in": "query",
|
|
46358
|
-
"name": "min_rating",
|
|
46359
|
-
"type": "number"
|
|
46360
|
-
},
|
|
46361
|
-
{
|
|
46362
|
-
"description": "Minimum review count",
|
|
46363
|
-
"in": "query",
|
|
46364
|
-
"name": "min_review_count",
|
|
46365
|
-
"type": "integer"
|
|
46366
|
-
},
|
|
46367
|
-
{
|
|
46368
|
-
"description": "Filter by website presence",
|
|
46369
|
-
"in": "query",
|
|
46370
|
-
"name": "has_website",
|
|
46371
|
-
"type": "boolean"
|
|
46372
|
-
},
|
|
46373
|
-
{
|
|
46374
|
-
"description": "Filter by phone presence",
|
|
46375
|
-
"in": "query",
|
|
46376
|
-
"name": "has_phone",
|
|
46377
|
-
"type": "boolean"
|
|
46378
|
-
},
|
|
46379
|
-
{
|
|
46380
|
-
"description": "Latitude for radius filtering or distance sort",
|
|
46381
|
-
"in": "query",
|
|
46382
|
-
"name": "lat",
|
|
46383
|
-
"type": "number"
|
|
46384
|
-
},
|
|
46385
|
-
{
|
|
46386
|
-
"description": "Longitude for radius filtering or distance sort",
|
|
46387
|
-
"in": "query",
|
|
46388
|
-
"name": "lon",
|
|
46389
|
-
"type": "number"
|
|
46390
|
-
},
|
|
46391
|
-
{
|
|
46392
|
-
"description": "Radius in meters, 1 through 50000; requires lat and lon when supplied",
|
|
46393
|
-
"in": "query",
|
|
46394
|
-
"name": "radius_m",
|
|
46395
|
-
"type": "integer"
|
|
46396
|
-
},
|
|
46397
|
-
{
|
|
46398
|
-
"description": "Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc",
|
|
46399
|
-
"in": "query",
|
|
46400
|
-
"name": "sort",
|
|
46401
|
-
"type": "string"
|
|
46402
|
-
},
|
|
46403
|
-
{
|
|
46404
|
-
"description": "Page number, defaults to 1",
|
|
46405
|
-
"in": "query",
|
|
46406
|
-
"name": "page",
|
|
46407
|
-
"type": "integer"
|
|
46408
|
-
},
|
|
46409
|
-
{
|
|
46410
|
-
"description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000",
|
|
46411
|
-
"in": "query",
|
|
46412
|
-
"name": "page_size",
|
|
46413
|
-
"type": "integer"
|
|
47411
|
+
"description": "Target URL (and optional fast flag)",
|
|
47412
|
+
"in": "body",
|
|
47413
|
+
"name": "request",
|
|
47414
|
+
"required": true,
|
|
47415
|
+
"schema": {
|
|
47416
|
+
"$ref": "#/definitions/diagnostics.AntibotCheckRequest"
|
|
47417
|
+
}
|
|
46414
47418
|
}
|
|
46415
47419
|
],
|
|
46416
47420
|
"produces": [
|
|
@@ -46420,23 +47424,23 @@
|
|
|
46420
47424
|
"200": {
|
|
46421
47425
|
"description": "OK",
|
|
46422
47426
|
"schema": {
|
|
46423
|
-
"$ref": "#/definitions/
|
|
47427
|
+
"$ref": "#/definitions/diagnostics.antibotCheckResponseDoc"
|
|
46424
47428
|
}
|
|
46425
47429
|
},
|
|
46426
47430
|
"400": {
|
|
46427
|
-
"description": "
|
|
47431
|
+
"description": "Invalid or missing URL",
|
|
46428
47432
|
"schema": {
|
|
46429
47433
|
"$ref": "#/definitions/app.Response"
|
|
46430
47434
|
}
|
|
46431
47435
|
},
|
|
46432
47436
|
"429": {
|
|
46433
|
-
"description": "
|
|
47437
|
+
"description": "Rate limit exceeded",
|
|
46434
47438
|
"schema": {
|
|
46435
47439
|
"$ref": "#/definitions/app.Response"
|
|
46436
47440
|
}
|
|
46437
47441
|
},
|
|
46438
|
-
"
|
|
46439
|
-
"description": "
|
|
47442
|
+
"503": {
|
|
47443
|
+
"description": "Probe failed (transport/browser error or blocked target)",
|
|
46440
47444
|
"schema": {
|
|
46441
47445
|
"$ref": "#/definitions/app.Response"
|
|
46442
47446
|
}
|
|
@@ -46447,9 +47451,9 @@
|
|
|
46447
47451
|
"ApiKeyAuth": []
|
|
46448
47452
|
}
|
|
46449
47453
|
],
|
|
46450
|
-
"summary": "
|
|
47454
|
+
"summary": "Anti-bot check — website scraping difficulty",
|
|
46451
47455
|
"tags": [
|
|
46452
|
-
"
|
|
47456
|
+
"Web"
|
|
46453
47457
|
]
|
|
46454
47458
|
}
|
|
46455
47459
|
},
|
|
@@ -46945,8 +47949,8 @@
|
|
|
46945
47949
|
"$ref": "#/definitions/app.Response"
|
|
46946
47950
|
}
|
|
46947
47951
|
},
|
|
46948
|
-
"
|
|
46949
|
-
"description": "
|
|
47952
|
+
"502": {
|
|
47953
|
+
"description": "Bad Gateway",
|
|
46950
47954
|
"schema": {
|
|
46951
47955
|
"$ref": "#/definitions/app.Response"
|
|
46952
47956
|
}
|
|
@@ -47044,8 +48048,8 @@
|
|
|
47044
48048
|
"$ref": "#/definitions/app.Response"
|
|
47045
48049
|
}
|
|
47046
48050
|
},
|
|
47047
|
-
"
|
|
47048
|
-
"description": "
|
|
48051
|
+
"502": {
|
|
48052
|
+
"description": "Bad Gateway",
|
|
47049
48053
|
"schema": {
|
|
47050
48054
|
"$ref": "#/definitions/app.Response"
|
|
47051
48055
|
}
|
|
@@ -47177,8 +48181,8 @@
|
|
|
47177
48181
|
"$ref": "#/definitions/app.Response"
|
|
47178
48182
|
}
|
|
47179
48183
|
},
|
|
47180
|
-
"
|
|
47181
|
-
"description": "
|
|
48184
|
+
"502": {
|
|
48185
|
+
"description": "Bad Gateway",
|
|
47182
48186
|
"schema": {
|
|
47183
48187
|
"$ref": "#/definitions/app.Response"
|
|
47184
48188
|
}
|
|
@@ -48637,7 +49641,7 @@
|
|
|
48637
49641
|
"consumes": [
|
|
48638
49642
|
"application/json"
|
|
48639
49643
|
],
|
|
48640
|
-
"description": "Returns normalized Google web search results. Results are fetched through
|
|
49644
|
+
"description": "Returns normalized Google web search results. Results are fetched through proxied browser renderers that race several concurrent renders per request and return the first clean result, with stale-cache fallback when available. The endpoint returns 503 when Google serves a challenge page or unusable HTML. Rate limit is enforced at 1 request per second, and if the limit is exceeded a 429 status code is returned with rate limit headers.",
|
|
48641
49645
|
"operationId": "google-search",
|
|
48642
49646
|
"parameters": [
|
|
48643
49647
|
{
|
|
@@ -63209,65 +64213,369 @@
|
|
|
63209
64213
|
"ApiKeyAuth": []
|
|
63210
64214
|
}
|
|
63211
64215
|
],
|
|
63212
|
-
"summary": "List Reddit subreddit posts",
|
|
64216
|
+
"summary": "List Reddit subreddit posts",
|
|
64217
|
+
"tags": [
|
|
64218
|
+
"Reddit"
|
|
64219
|
+
]
|
|
64220
|
+
}
|
|
64221
|
+
},
|
|
64222
|
+
"/reddit/subreddits/posts": {
|
|
64223
|
+
"get": {
|
|
64224
|
+
"consumes": [
|
|
64225
|
+
"application/json"
|
|
64226
|
+
],
|
|
64227
|
+
"description": "Returns normalized public posts from a combined multi-subreddit feed.",
|
|
64228
|
+
"operationId": "reddit-subreddits-posts",
|
|
64229
|
+
"parameters": [
|
|
64230
|
+
{
|
|
64231
|
+
"description": "Comma-separated subreddit names, without r/, maximum 10",
|
|
64232
|
+
"in": "query",
|
|
64233
|
+
"name": "subreddits",
|
|
64234
|
+
"required": true,
|
|
64235
|
+
"type": "string"
|
|
64236
|
+
},
|
|
64237
|
+
{
|
|
64238
|
+
"default": "hot",
|
|
64239
|
+
"description": "Sort: hot, new, top, or rising",
|
|
64240
|
+
"enum": [
|
|
64241
|
+
"hot",
|
|
64242
|
+
"new",
|
|
64243
|
+
"top",
|
|
64244
|
+
"rising"
|
|
64245
|
+
],
|
|
64246
|
+
"in": "query",
|
|
64247
|
+
"name": "sort",
|
|
64248
|
+
"type": "string"
|
|
64249
|
+
},
|
|
64250
|
+
{
|
|
64251
|
+
"description": "Time window for top sort: hour, day, week, month, year, or all",
|
|
64252
|
+
"enum": [
|
|
64253
|
+
"hour",
|
|
64254
|
+
"day",
|
|
64255
|
+
"week",
|
|
64256
|
+
"month",
|
|
64257
|
+
"year",
|
|
64258
|
+
"all"
|
|
64259
|
+
],
|
|
64260
|
+
"in": "query",
|
|
64261
|
+
"name": "time",
|
|
64262
|
+
"type": "string"
|
|
64263
|
+
},
|
|
64264
|
+
{
|
|
64265
|
+
"description": "Maximum posts, defaults to 25 and clamps to 100",
|
|
64266
|
+
"in": "query",
|
|
64267
|
+
"name": "limit",
|
|
64268
|
+
"type": "integer"
|
|
64269
|
+
},
|
|
64270
|
+
{
|
|
64271
|
+
"description": "Reddit pagination token",
|
|
64272
|
+
"in": "query",
|
|
64273
|
+
"name": "after",
|
|
64274
|
+
"type": "string"
|
|
64275
|
+
}
|
|
64276
|
+
],
|
|
64277
|
+
"produces": [
|
|
64278
|
+
"application/json"
|
|
64279
|
+
],
|
|
64280
|
+
"responses": {
|
|
64281
|
+
"200": {
|
|
64282
|
+
"description": "OK",
|
|
64283
|
+
"schema": {
|
|
64284
|
+
"$ref": "#/definitions/reddit.multiSubredditPostsResponseDoc"
|
|
64285
|
+
}
|
|
64286
|
+
},
|
|
64287
|
+
"400": {
|
|
64288
|
+
"description": "Bad Request",
|
|
64289
|
+
"schema": {
|
|
64290
|
+
"$ref": "#/definitions/app.Response"
|
|
64291
|
+
}
|
|
64292
|
+
},
|
|
64293
|
+
"404": {
|
|
64294
|
+
"description": "Not Found",
|
|
64295
|
+
"schema": {
|
|
64296
|
+
"$ref": "#/definitions/app.Response"
|
|
64297
|
+
}
|
|
64298
|
+
},
|
|
64299
|
+
"429": {
|
|
64300
|
+
"description": "Too Many Requests",
|
|
64301
|
+
"schema": {
|
|
64302
|
+
"$ref": "#/definitions/app.Response"
|
|
64303
|
+
}
|
|
64304
|
+
},
|
|
64305
|
+
"503": {
|
|
64306
|
+
"description": "Service Unavailable",
|
|
64307
|
+
"schema": {
|
|
64308
|
+
"$ref": "#/definitions/app.Response"
|
|
64309
|
+
}
|
|
64310
|
+
}
|
|
64311
|
+
},
|
|
64312
|
+
"security": [
|
|
64313
|
+
{
|
|
64314
|
+
"ApiKeyAuth": []
|
|
64315
|
+
}
|
|
64316
|
+
],
|
|
64317
|
+
"summary": "List Reddit multi-subreddit posts",
|
|
64318
|
+
"tags": [
|
|
64319
|
+
"Reddit"
|
|
64320
|
+
]
|
|
64321
|
+
}
|
|
64322
|
+
},
|
|
64323
|
+
"/reddit/trends": {
|
|
64324
|
+
"get": {
|
|
64325
|
+
"consumes": [
|
|
64326
|
+
"application/json"
|
|
64327
|
+
],
|
|
64328
|
+
"description": "Returns normalized public posts from broad Reddit hot, new, rising, or top feeds. For subreddit-specific trends, use `/reddit/subreddit/{subreddit}/posts` with `sort=hot`, `sort=new`, `sort=rising`, or `sort=top`.",
|
|
64329
|
+
"operationId": "reddit-trends",
|
|
64330
|
+
"parameters": [
|
|
64331
|
+
{
|
|
64332
|
+
"default": "hot",
|
|
64333
|
+
"description": "Sort: hot, new, rising, or top",
|
|
64334
|
+
"enum": [
|
|
64335
|
+
"hot",
|
|
64336
|
+
"new",
|
|
64337
|
+
"rising",
|
|
64338
|
+
"top"
|
|
64339
|
+
],
|
|
64340
|
+
"in": "query",
|
|
64341
|
+
"name": "sort",
|
|
64342
|
+
"type": "string"
|
|
64343
|
+
},
|
|
64344
|
+
{
|
|
64345
|
+
"description": "Time window for top sort: hour, day, week, month, year, or all",
|
|
64346
|
+
"enum": [
|
|
64347
|
+
"hour",
|
|
64348
|
+
"day",
|
|
64349
|
+
"week",
|
|
64350
|
+
"month",
|
|
64351
|
+
"year",
|
|
64352
|
+
"all"
|
|
64353
|
+
],
|
|
64354
|
+
"in": "query",
|
|
64355
|
+
"name": "time",
|
|
64356
|
+
"type": "string"
|
|
64357
|
+
},
|
|
64358
|
+
{
|
|
64359
|
+
"description": "Maximum posts, defaults to 25 and clamps to 100",
|
|
64360
|
+
"in": "query",
|
|
64361
|
+
"name": "limit",
|
|
64362
|
+
"type": "integer"
|
|
64363
|
+
},
|
|
64364
|
+
{
|
|
64365
|
+
"description": "Reddit pagination token",
|
|
64366
|
+
"in": "query",
|
|
64367
|
+
"name": "after",
|
|
64368
|
+
"type": "string"
|
|
64369
|
+
}
|
|
64370
|
+
],
|
|
64371
|
+
"produces": [
|
|
64372
|
+
"application/json"
|
|
64373
|
+
],
|
|
64374
|
+
"responses": {
|
|
64375
|
+
"200": {
|
|
64376
|
+
"description": "OK",
|
|
64377
|
+
"schema": {
|
|
64378
|
+
"$ref": "#/definitions/reddit.trendsResponseDoc"
|
|
64379
|
+
}
|
|
64380
|
+
},
|
|
64381
|
+
"400": {
|
|
64382
|
+
"description": "Bad Request",
|
|
64383
|
+
"schema": {
|
|
64384
|
+
"$ref": "#/definitions/app.Response"
|
|
64385
|
+
}
|
|
64386
|
+
},
|
|
64387
|
+
"404": {
|
|
64388
|
+
"description": "Not Found",
|
|
64389
|
+
"schema": {
|
|
64390
|
+
"$ref": "#/definitions/app.Response"
|
|
64391
|
+
}
|
|
64392
|
+
},
|
|
64393
|
+
"429": {
|
|
64394
|
+
"description": "Too Many Requests",
|
|
64395
|
+
"schema": {
|
|
64396
|
+
"$ref": "#/definitions/app.Response"
|
|
64397
|
+
}
|
|
64398
|
+
},
|
|
64399
|
+
"503": {
|
|
64400
|
+
"description": "Service Unavailable",
|
|
64401
|
+
"schema": {
|
|
64402
|
+
"$ref": "#/definitions/app.Response"
|
|
64403
|
+
}
|
|
64404
|
+
}
|
|
64405
|
+
},
|
|
64406
|
+
"security": [
|
|
64407
|
+
{
|
|
64408
|
+
"ApiKeyAuth": []
|
|
64409
|
+
}
|
|
64410
|
+
],
|
|
64411
|
+
"summary": "List Reddit trends",
|
|
64412
|
+
"tags": [
|
|
64413
|
+
"Reddit"
|
|
64414
|
+
]
|
|
64415
|
+
}
|
|
64416
|
+
},
|
|
64417
|
+
"/reddit/user/{username}/comments": {
|
|
64418
|
+
"get": {
|
|
64419
|
+
"consumes": [
|
|
64420
|
+
"application/json"
|
|
64421
|
+
],
|
|
64422
|
+
"description": "Returns flat public comment entries from a public Reddit user's comments feed.",
|
|
64423
|
+
"operationId": "reddit-user-comments",
|
|
64424
|
+
"parameters": [
|
|
64425
|
+
{
|
|
64426
|
+
"description": "Public Reddit username, without u/",
|
|
64427
|
+
"in": "path",
|
|
64428
|
+
"name": "username",
|
|
64429
|
+
"required": true,
|
|
64430
|
+
"type": "string"
|
|
64431
|
+
},
|
|
64432
|
+
{
|
|
64433
|
+
"description": "Maximum comments, defaults to 25 and clamps to 100",
|
|
64434
|
+
"in": "query",
|
|
64435
|
+
"name": "limit",
|
|
64436
|
+
"type": "integer"
|
|
64437
|
+
},
|
|
64438
|
+
{
|
|
64439
|
+
"description": "Reddit pagination token",
|
|
64440
|
+
"in": "query",
|
|
64441
|
+
"name": "after",
|
|
64442
|
+
"type": "string"
|
|
64443
|
+
}
|
|
64444
|
+
],
|
|
64445
|
+
"produces": [
|
|
64446
|
+
"application/json"
|
|
64447
|
+
],
|
|
64448
|
+
"responses": {
|
|
64449
|
+
"200": {
|
|
64450
|
+
"description": "OK",
|
|
64451
|
+
"schema": {
|
|
64452
|
+
"$ref": "#/definitions/reddit.userCommentsResponseDoc"
|
|
64453
|
+
}
|
|
64454
|
+
},
|
|
64455
|
+
"400": {
|
|
64456
|
+
"description": "Bad Request",
|
|
64457
|
+
"schema": {
|
|
64458
|
+
"$ref": "#/definitions/app.Response"
|
|
64459
|
+
}
|
|
64460
|
+
},
|
|
64461
|
+
"404": {
|
|
64462
|
+
"description": "Not Found",
|
|
64463
|
+
"schema": {
|
|
64464
|
+
"$ref": "#/definitions/app.Response"
|
|
64465
|
+
}
|
|
64466
|
+
},
|
|
64467
|
+
"429": {
|
|
64468
|
+
"description": "Too Many Requests",
|
|
64469
|
+
"schema": {
|
|
64470
|
+
"$ref": "#/definitions/app.Response"
|
|
64471
|
+
}
|
|
64472
|
+
},
|
|
64473
|
+
"503": {
|
|
64474
|
+
"description": "Service Unavailable",
|
|
64475
|
+
"schema": {
|
|
64476
|
+
"$ref": "#/definitions/app.Response"
|
|
64477
|
+
}
|
|
64478
|
+
}
|
|
64479
|
+
},
|
|
64480
|
+
"security": [
|
|
64481
|
+
{
|
|
64482
|
+
"ApiKeyAuth": []
|
|
64483
|
+
}
|
|
64484
|
+
],
|
|
64485
|
+
"summary": "List Reddit user comments",
|
|
64486
|
+
"tags": [
|
|
64487
|
+
"Reddit"
|
|
64488
|
+
]
|
|
64489
|
+
}
|
|
64490
|
+
},
|
|
64491
|
+
"/reddit/user/{username}/posts": {
|
|
64492
|
+
"get": {
|
|
64493
|
+
"consumes": [
|
|
64494
|
+
"application/json"
|
|
64495
|
+
],
|
|
64496
|
+
"description": "Returns normalized public posts from a public Reddit user's submitted feed.",
|
|
64497
|
+
"operationId": "reddit-user-posts",
|
|
64498
|
+
"parameters": [
|
|
64499
|
+
{
|
|
64500
|
+
"description": "Public Reddit username, without u/",
|
|
64501
|
+
"in": "path",
|
|
64502
|
+
"name": "username",
|
|
64503
|
+
"required": true,
|
|
64504
|
+
"type": "string"
|
|
64505
|
+
},
|
|
64506
|
+
{
|
|
64507
|
+
"description": "Maximum posts, defaults to 25 and clamps to 100",
|
|
64508
|
+
"in": "query",
|
|
64509
|
+
"name": "limit",
|
|
64510
|
+
"type": "integer"
|
|
64511
|
+
},
|
|
64512
|
+
{
|
|
64513
|
+
"description": "Reddit pagination token",
|
|
64514
|
+
"in": "query",
|
|
64515
|
+
"name": "after",
|
|
64516
|
+
"type": "string"
|
|
64517
|
+
}
|
|
64518
|
+
],
|
|
64519
|
+
"produces": [
|
|
64520
|
+
"application/json"
|
|
64521
|
+
],
|
|
64522
|
+
"responses": {
|
|
64523
|
+
"200": {
|
|
64524
|
+
"description": "OK",
|
|
64525
|
+
"schema": {
|
|
64526
|
+
"$ref": "#/definitions/reddit.userPostsResponseDoc"
|
|
64527
|
+
}
|
|
64528
|
+
},
|
|
64529
|
+
"400": {
|
|
64530
|
+
"description": "Bad Request",
|
|
64531
|
+
"schema": {
|
|
64532
|
+
"$ref": "#/definitions/app.Response"
|
|
64533
|
+
}
|
|
64534
|
+
},
|
|
64535
|
+
"404": {
|
|
64536
|
+
"description": "Not Found",
|
|
64537
|
+
"schema": {
|
|
64538
|
+
"$ref": "#/definitions/app.Response"
|
|
64539
|
+
}
|
|
64540
|
+
},
|
|
64541
|
+
"429": {
|
|
64542
|
+
"description": "Too Many Requests",
|
|
64543
|
+
"schema": {
|
|
64544
|
+
"$ref": "#/definitions/app.Response"
|
|
64545
|
+
}
|
|
64546
|
+
},
|
|
64547
|
+
"503": {
|
|
64548
|
+
"description": "Service Unavailable",
|
|
64549
|
+
"schema": {
|
|
64550
|
+
"$ref": "#/definitions/app.Response"
|
|
64551
|
+
}
|
|
64552
|
+
}
|
|
64553
|
+
},
|
|
64554
|
+
"security": [
|
|
64555
|
+
{
|
|
64556
|
+
"ApiKeyAuth": []
|
|
64557
|
+
}
|
|
64558
|
+
],
|
|
64559
|
+
"summary": "List Reddit user posts",
|
|
63213
64560
|
"tags": [
|
|
63214
64561
|
"Reddit"
|
|
63215
64562
|
]
|
|
63216
64563
|
}
|
|
63217
64564
|
},
|
|
63218
|
-
"/
|
|
64565
|
+
"/redfin/estimate": {
|
|
63219
64566
|
"get": {
|
|
63220
64567
|
"consumes": [
|
|
63221
64568
|
"application/json"
|
|
63222
64569
|
],
|
|
63223
|
-
"description": "Returns
|
|
63224
|
-
"operationId": "
|
|
64570
|
+
"description": "Returns the Redfin Estimate for a property, including the current estimate, property facts, and the monthly estimate history with city/county/postal comparatives. Faithful pass-through of Redfin's public avm + avmHistoricalData resources.",
|
|
64571
|
+
"operationId": "redfin-estimate",
|
|
63225
64572
|
"parameters": [
|
|
63226
64573
|
{
|
|
63227
|
-
"description": "
|
|
64574
|
+
"description": "Redfin property id",
|
|
63228
64575
|
"in": "query",
|
|
63229
|
-
"name": "
|
|
64576
|
+
"name": "property_id",
|
|
63230
64577
|
"required": true,
|
|
63231
64578
|
"type": "string"
|
|
63232
|
-
},
|
|
63233
|
-
{
|
|
63234
|
-
"default": "hot",
|
|
63235
|
-
"description": "Sort: hot, new, top, or rising",
|
|
63236
|
-
"enum": [
|
|
63237
|
-
"hot",
|
|
63238
|
-
"new",
|
|
63239
|
-
"top",
|
|
63240
|
-
"rising"
|
|
63241
|
-
],
|
|
63242
|
-
"in": "query",
|
|
63243
|
-
"name": "sort",
|
|
63244
|
-
"type": "string"
|
|
63245
|
-
},
|
|
63246
|
-
{
|
|
63247
|
-
"description": "Time window for top sort: hour, day, week, month, year, or all",
|
|
63248
|
-
"enum": [
|
|
63249
|
-
"hour",
|
|
63250
|
-
"day",
|
|
63251
|
-
"week",
|
|
63252
|
-
"month",
|
|
63253
|
-
"year",
|
|
63254
|
-
"all"
|
|
63255
|
-
],
|
|
63256
|
-
"in": "query",
|
|
63257
|
-
"name": "time",
|
|
63258
|
-
"type": "string"
|
|
63259
|
-
},
|
|
63260
|
-
{
|
|
63261
|
-
"description": "Maximum posts, defaults to 25 and clamps to 100",
|
|
63262
|
-
"in": "query",
|
|
63263
|
-
"name": "limit",
|
|
63264
|
-
"type": "integer"
|
|
63265
|
-
},
|
|
63266
|
-
{
|
|
63267
|
-
"description": "Reddit pagination token",
|
|
63268
|
-
"in": "query",
|
|
63269
|
-
"name": "after",
|
|
63270
|
-
"type": "string"
|
|
63271
64579
|
}
|
|
63272
64580
|
],
|
|
63273
64581
|
"produces": [
|
|
@@ -63277,7 +64585,7 @@
|
|
|
63277
64585
|
"200": {
|
|
63278
64586
|
"description": "OK",
|
|
63279
64587
|
"schema": {
|
|
63280
|
-
"$ref": "#/definitions/
|
|
64588
|
+
"$ref": "#/definitions/redfin.EstimateResponse"
|
|
63281
64589
|
}
|
|
63282
64590
|
},
|
|
63283
64591
|
"400": {
|
|
@@ -63286,12 +64594,6 @@
|
|
|
63286
64594
|
"$ref": "#/definitions/app.Response"
|
|
63287
64595
|
}
|
|
63288
64596
|
},
|
|
63289
|
-
"404": {
|
|
63290
|
-
"description": "Not Found",
|
|
63291
|
-
"schema": {
|
|
63292
|
-
"$ref": "#/definitions/app.Response"
|
|
63293
|
-
}
|
|
63294
|
-
},
|
|
63295
64597
|
"429": {
|
|
63296
64598
|
"description": "Too Many Requests",
|
|
63297
64599
|
"schema": {
|
|
@@ -63310,57 +64612,36 @@
|
|
|
63310
64612
|
"ApiKeyAuth": []
|
|
63311
64613
|
}
|
|
63312
64614
|
],
|
|
63313
|
-
"summary": "
|
|
64615
|
+
"summary": "Get Redfin Estimate",
|
|
63314
64616
|
"tags": [
|
|
63315
|
-
"
|
|
64617
|
+
"Redfin"
|
|
63316
64618
|
]
|
|
63317
64619
|
}
|
|
63318
64620
|
},
|
|
63319
|
-
"/
|
|
64621
|
+
"/redfin/property": {
|
|
63320
64622
|
"get": {
|
|
63321
64623
|
"consumes": [
|
|
63322
64624
|
"application/json"
|
|
63323
64625
|
],
|
|
63324
|
-
"description": "Returns normalized public
|
|
63325
|
-
"operationId": "
|
|
64626
|
+
"description": "Returns normalized Redfin public property details. Provide a listing url, or a property_id (optionally with listing_id) to use Redfin's public stingray detail API.",
|
|
64627
|
+
"operationId": "redfin-property",
|
|
63326
64628
|
"parameters": [
|
|
63327
64629
|
{
|
|
63328
|
-
"
|
|
63329
|
-
"description": "Sort: hot, new, rising, or top",
|
|
63330
|
-
"enum": [
|
|
63331
|
-
"hot",
|
|
63332
|
-
"new",
|
|
63333
|
-
"rising",
|
|
63334
|
-
"top"
|
|
63335
|
-
],
|
|
64630
|
+
"description": "Redfin listing URL (primary key)",
|
|
63336
64631
|
"in": "query",
|
|
63337
|
-
"name": "
|
|
64632
|
+
"name": "url",
|
|
63338
64633
|
"type": "string"
|
|
63339
64634
|
},
|
|
63340
64635
|
{
|
|
63341
|
-
"description": "
|
|
63342
|
-
"enum": [
|
|
63343
|
-
"hour",
|
|
63344
|
-
"day",
|
|
63345
|
-
"week",
|
|
63346
|
-
"month",
|
|
63347
|
-
"year",
|
|
63348
|
-
"all"
|
|
63349
|
-
],
|
|
64636
|
+
"description": "Redfin property id, used when url is not provided",
|
|
63350
64637
|
"in": "query",
|
|
63351
|
-
"name": "
|
|
64638
|
+
"name": "property_id",
|
|
63352
64639
|
"type": "string"
|
|
63353
64640
|
},
|
|
63354
64641
|
{
|
|
63355
|
-
"description": "
|
|
63356
|
-
"in": "query",
|
|
63357
|
-
"name": "limit",
|
|
63358
|
-
"type": "integer"
|
|
63359
|
-
},
|
|
63360
|
-
{
|
|
63361
|
-
"description": "Reddit pagination token",
|
|
64642
|
+
"description": "Redfin listing id, improves completeness with property_id",
|
|
63362
64643
|
"in": "query",
|
|
63363
|
-
"name": "
|
|
64644
|
+
"name": "listing_id",
|
|
63364
64645
|
"type": "string"
|
|
63365
64646
|
}
|
|
63366
64647
|
],
|
|
@@ -63371,7 +64652,7 @@
|
|
|
63371
64652
|
"200": {
|
|
63372
64653
|
"description": "OK",
|
|
63373
64654
|
"schema": {
|
|
63374
|
-
"$ref": "#/definitions/
|
|
64655
|
+
"$ref": "#/definitions/redfin.PropertyResponse"
|
|
63375
64656
|
}
|
|
63376
64657
|
},
|
|
63377
64658
|
"400": {
|
|
@@ -63404,38 +64685,32 @@
|
|
|
63404
64685
|
"ApiKeyAuth": []
|
|
63405
64686
|
}
|
|
63406
64687
|
],
|
|
63407
|
-
"summary": "
|
|
64688
|
+
"summary": "Get Redfin property",
|
|
63408
64689
|
"tags": [
|
|
63409
|
-
"
|
|
64690
|
+
"Redfin"
|
|
63410
64691
|
]
|
|
63411
64692
|
}
|
|
63412
64693
|
},
|
|
63413
|
-
"/
|
|
64694
|
+
"/redfin/region-trends": {
|
|
63414
64695
|
"get": {
|
|
63415
64696
|
"consumes": [
|
|
63416
64697
|
"application/json"
|
|
63417
64698
|
],
|
|
63418
|
-
"description": "Returns
|
|
63419
|
-
"operationId": "
|
|
64699
|
+
"description": "Returns Redfin's aggregate market trends for a region (median list/sale price, sale-to-list, offers, days on market, inventory, year-over-year). Faithful pass-through of Redfin's public aggregate-trends resource.",
|
|
64700
|
+
"operationId": "redfin-region-trends",
|
|
63420
64701
|
"parameters": [
|
|
63421
64702
|
{
|
|
63422
|
-
"description": "
|
|
63423
|
-
"in": "path",
|
|
63424
|
-
"name": "username",
|
|
63425
|
-
"required": true,
|
|
63426
|
-
"type": "string"
|
|
63427
|
-
},
|
|
63428
|
-
{
|
|
63429
|
-
"description": "Maximum comments, defaults to 25 and clamps to 100",
|
|
64703
|
+
"description": "Redfin region id from autocomplete",
|
|
63430
64704
|
"in": "query",
|
|
63431
|
-
"name": "
|
|
64705
|
+
"name": "region_id",
|
|
64706
|
+
"required": true,
|
|
63432
64707
|
"type": "integer"
|
|
63433
64708
|
},
|
|
63434
64709
|
{
|
|
63435
|
-
"description": "
|
|
64710
|
+
"description": "Redfin region type from autocomplete (defaults to 6, city)",
|
|
63436
64711
|
"in": "query",
|
|
63437
|
-
"name": "
|
|
63438
|
-
"type": "
|
|
64712
|
+
"name": "region_type",
|
|
64713
|
+
"type": "integer"
|
|
63439
64714
|
}
|
|
63440
64715
|
],
|
|
63441
64716
|
"produces": [
|
|
@@ -63445,7 +64720,7 @@
|
|
|
63445
64720
|
"200": {
|
|
63446
64721
|
"description": "OK",
|
|
63447
64722
|
"schema": {
|
|
63448
|
-
"$ref": "#/definitions/
|
|
64723
|
+
"$ref": "#/definitions/redfin.RegionTrendsResponse"
|
|
63449
64724
|
}
|
|
63450
64725
|
},
|
|
63451
64726
|
"400": {
|
|
@@ -63454,12 +64729,6 @@
|
|
|
63454
64729
|
"$ref": "#/definitions/app.Response"
|
|
63455
64730
|
}
|
|
63456
64731
|
},
|
|
63457
|
-
"404": {
|
|
63458
|
-
"description": "Not Found",
|
|
63459
|
-
"schema": {
|
|
63460
|
-
"$ref": "#/definitions/app.Response"
|
|
63461
|
-
}
|
|
63462
|
-
},
|
|
63463
64732
|
"429": {
|
|
63464
64733
|
"description": "Too Many Requests",
|
|
63465
64734
|
"schema": {
|
|
@@ -63478,38 +64747,73 @@
|
|
|
63478
64747
|
"ApiKeyAuth": []
|
|
63479
64748
|
}
|
|
63480
64749
|
],
|
|
63481
|
-
"summary": "
|
|
64750
|
+
"summary": "Get Redfin region market trends",
|
|
63482
64751
|
"tags": [
|
|
63483
|
-
"
|
|
64752
|
+
"Redfin"
|
|
63484
64753
|
]
|
|
63485
64754
|
}
|
|
63486
64755
|
},
|
|
63487
|
-
"/
|
|
64756
|
+
"/redfin/search": {
|
|
63488
64757
|
"get": {
|
|
63489
64758
|
"consumes": [
|
|
63490
64759
|
"application/json"
|
|
63491
64760
|
],
|
|
63492
|
-
"description": "Returns normalized public
|
|
63493
|
-
"operationId": "
|
|
64761
|
+
"description": "Returns normalized Redfin public listing search results from Redfin's credential-free region CSV endpoint. Pass region_id/region_type from autocomplete to skip location resolution.",
|
|
64762
|
+
"operationId": "redfin-search",
|
|
63494
64763
|
"parameters": [
|
|
63495
64764
|
{
|
|
63496
|
-
"description": "
|
|
63497
|
-
"in": "
|
|
63498
|
-
"name": "
|
|
63499
|
-
"required": true,
|
|
64765
|
+
"description": "Display location; resolved via autocomplete when region_id is omitted",
|
|
64766
|
+
"in": "query",
|
|
64767
|
+
"name": "location",
|
|
63500
64768
|
"type": "string"
|
|
63501
64769
|
},
|
|
63502
64770
|
{
|
|
63503
|
-
"description": "
|
|
64771
|
+
"description": "1-based page",
|
|
63504
64772
|
"in": "query",
|
|
63505
|
-
"name": "
|
|
64773
|
+
"name": "page",
|
|
63506
64774
|
"type": "integer"
|
|
63507
64775
|
},
|
|
63508
64776
|
{
|
|
63509
|
-
"description": "
|
|
64777
|
+
"description": "Redfin region id from autocomplete",
|
|
63510
64778
|
"in": "query",
|
|
63511
|
-
"name": "
|
|
64779
|
+
"name": "region_id",
|
|
64780
|
+
"type": "integer"
|
|
64781
|
+
},
|
|
64782
|
+
{
|
|
64783
|
+
"description": "Redfin region type from autocomplete (defaults to 6, city)",
|
|
64784
|
+
"in": "query",
|
|
64785
|
+
"name": "region_type",
|
|
64786
|
+
"type": "integer"
|
|
64787
|
+
},
|
|
64788
|
+
{
|
|
64789
|
+
"description": "Listing status: for_sale or sold",
|
|
64790
|
+
"in": "query",
|
|
64791
|
+
"name": "status",
|
|
63512
64792
|
"type": "string"
|
|
64793
|
+
},
|
|
64794
|
+
{
|
|
64795
|
+
"description": "Minimum price filter",
|
|
64796
|
+
"in": "query",
|
|
64797
|
+
"name": "min_price",
|
|
64798
|
+
"type": "integer"
|
|
64799
|
+
},
|
|
64800
|
+
{
|
|
64801
|
+
"description": "Maximum price filter",
|
|
64802
|
+
"in": "query",
|
|
64803
|
+
"name": "max_price",
|
|
64804
|
+
"type": "integer"
|
|
64805
|
+
},
|
|
64806
|
+
{
|
|
64807
|
+
"description": "Minimum bedrooms filter",
|
|
64808
|
+
"in": "query",
|
|
64809
|
+
"name": "min_beds",
|
|
64810
|
+
"type": "integer"
|
|
64811
|
+
},
|
|
64812
|
+
{
|
|
64813
|
+
"description": "Minimum bathrooms filter",
|
|
64814
|
+
"in": "query",
|
|
64815
|
+
"name": "min_baths",
|
|
64816
|
+
"type": "number"
|
|
63513
64817
|
}
|
|
63514
64818
|
],
|
|
63515
64819
|
"produces": [
|
|
@@ -63519,7 +64823,7 @@
|
|
|
63519
64823
|
"200": {
|
|
63520
64824
|
"description": "OK",
|
|
63521
64825
|
"schema": {
|
|
63522
|
-
"$ref": "#/definitions/
|
|
64826
|
+
"$ref": "#/definitions/redfin.SearchResponse"
|
|
63523
64827
|
}
|
|
63524
64828
|
},
|
|
63525
64829
|
"400": {
|
|
@@ -63528,8 +64832,58 @@
|
|
|
63528
64832
|
"$ref": "#/definitions/app.Response"
|
|
63529
64833
|
}
|
|
63530
64834
|
},
|
|
63531
|
-
"
|
|
63532
|
-
"description": "
|
|
64835
|
+
"429": {
|
|
64836
|
+
"description": "Too Many Requests",
|
|
64837
|
+
"schema": {
|
|
64838
|
+
"$ref": "#/definitions/app.Response"
|
|
64839
|
+
}
|
|
64840
|
+
},
|
|
64841
|
+
"503": {
|
|
64842
|
+
"description": "Service Unavailable",
|
|
64843
|
+
"schema": {
|
|
64844
|
+
"$ref": "#/definitions/app.Response"
|
|
64845
|
+
}
|
|
64846
|
+
}
|
|
64847
|
+
},
|
|
64848
|
+
"security": [
|
|
64849
|
+
{
|
|
64850
|
+
"ApiKeyAuth": []
|
|
64851
|
+
}
|
|
64852
|
+
],
|
|
64853
|
+
"summary": "Search Redfin listings",
|
|
64854
|
+
"tags": [
|
|
64855
|
+
"Redfin"
|
|
64856
|
+
]
|
|
64857
|
+
}
|
|
64858
|
+
},
|
|
64859
|
+
"/redfin/similar": {
|
|
64860
|
+
"get": {
|
|
64861
|
+
"consumes": [
|
|
64862
|
+
"application/json"
|
|
64863
|
+
],
|
|
64864
|
+
"description": "Returns Redfin's comparable (\"similar\") listings for a property as normalized listing rows. Faithful pass-through of Redfin's public similars resource.",
|
|
64865
|
+
"operationId": "redfin-similar",
|
|
64866
|
+
"parameters": [
|
|
64867
|
+
{
|
|
64868
|
+
"description": "Redfin property id",
|
|
64869
|
+
"in": "query",
|
|
64870
|
+
"name": "property_id",
|
|
64871
|
+
"required": true,
|
|
64872
|
+
"type": "string"
|
|
64873
|
+
}
|
|
64874
|
+
],
|
|
64875
|
+
"produces": [
|
|
64876
|
+
"application/json"
|
|
64877
|
+
],
|
|
64878
|
+
"responses": {
|
|
64879
|
+
"200": {
|
|
64880
|
+
"description": "OK",
|
|
64881
|
+
"schema": {
|
|
64882
|
+
"$ref": "#/definitions/redfin.SimilarResponse"
|
|
64883
|
+
}
|
|
64884
|
+
},
|
|
64885
|
+
"400": {
|
|
64886
|
+
"description": "Bad Request",
|
|
63533
64887
|
"schema": {
|
|
63534
64888
|
"$ref": "#/definitions/app.Response"
|
|
63535
64889
|
}
|
|
@@ -63552,9 +64906,9 @@
|
|
|
63552
64906
|
"ApiKeyAuth": []
|
|
63553
64907
|
}
|
|
63554
64908
|
],
|
|
63555
|
-
"summary": "
|
|
64909
|
+
"summary": "Get Redfin comparable listings",
|
|
63556
64910
|
"tags": [
|
|
63557
|
-
"
|
|
64911
|
+
"Redfin"
|
|
63558
64912
|
]
|
|
63559
64913
|
}
|
|
63560
64914
|
},
|
|
@@ -73051,6 +74405,64 @@
|
|
|
73051
74405
|
]
|
|
73052
74406
|
}
|
|
73053
74407
|
},
|
|
74408
|
+
"/web/scrape": {
|
|
74409
|
+
"post": {
|
|
74410
|
+
"consumes": [
|
|
74411
|
+
"application/json"
|
|
74412
|
+
],
|
|
74413
|
+
"description": "Fetches a single public URL and returns clean content in the requested formats (markdown, html, raw_html, links, metadata). With render=auto the request starts as a fast HTTP fetch and escalates to a real browser when the page is blocked or rendered with JavaScript. only_main_content (default true) strips navigation, headers, footers and other boilerplate before conversion. Only public pages are supported; respect each site's terms of use and robots directives.",
|
|
74414
|
+
"operationId": "web-scrape",
|
|
74415
|
+
"parameters": [
|
|
74416
|
+
{
|
|
74417
|
+
"description": "Scrape options",
|
|
74418
|
+
"in": "body",
|
|
74419
|
+
"name": "scrapeOption",
|
|
74420
|
+
"required": true,
|
|
74421
|
+
"schema": {
|
|
74422
|
+
"$ref": "#/definitions/web.ScrapeOption"
|
|
74423
|
+
}
|
|
74424
|
+
}
|
|
74425
|
+
],
|
|
74426
|
+
"produces": [
|
|
74427
|
+
"application/json"
|
|
74428
|
+
],
|
|
74429
|
+
"responses": {
|
|
74430
|
+
"200": {
|
|
74431
|
+
"description": "OK",
|
|
74432
|
+
"schema": {
|
|
74433
|
+
"$ref": "#/definitions/web.scrapeResponseDoc"
|
|
74434
|
+
}
|
|
74435
|
+
},
|
|
74436
|
+
"400": {
|
|
74437
|
+
"description": "Invalid input",
|
|
74438
|
+
"schema": {
|
|
74439
|
+
"$ref": "#/definitions/app.Response"
|
|
74440
|
+
}
|
|
74441
|
+
},
|
|
74442
|
+
"500": {
|
|
74443
|
+
"description": "Internal server error",
|
|
74444
|
+
"schema": {
|
|
74445
|
+
"$ref": "#/definitions/app.Response"
|
|
74446
|
+
}
|
|
74447
|
+
},
|
|
74448
|
+
"502": {
|
|
74449
|
+
"description": "Upstream fetch failed",
|
|
74450
|
+
"schema": {
|
|
74451
|
+
"$ref": "#/definitions/app.Response"
|
|
74452
|
+
}
|
|
74453
|
+
}
|
|
74454
|
+
},
|
|
74455
|
+
"security": [
|
|
74456
|
+
{
|
|
74457
|
+
"ApiKeyAuth": []
|
|
74458
|
+
}
|
|
74459
|
+
],
|
|
74460
|
+
"summary": "Scrape a URL into markdown, HTML, links or metadata",
|
|
74461
|
+
"tags": [
|
|
74462
|
+
"Web"
|
|
74463
|
+
]
|
|
74464
|
+
}
|
|
74465
|
+
},
|
|
73054
74466
|
"/yahoo-finance/calendars": {
|
|
73055
74467
|
"get": {
|
|
73056
74468
|
"consumes": [
|