scrapebadger 0.2.0

Async Rust SDK and CLI for the ScrapeBadger web-scraping API (Amazon, Google, Twitter/X, Reddit, Vinted, Web Scraping).
Documentation
// @generated by `cargo run -p xtask -- gen` from specs/*.json — do not edit by hand.
#![allow(clippy::all)]

use super::{Endpoint, Param, Ty};

/// Every ScrapeBadger endpoint as a nested CLI command (137 total).
pub static ENDPOINTS: &[Endpoint] = &[
    Endpoint{platform:"account",path_cmd:&["account","me"],leaf_alias:None,method:"GET",path:"/v1/account/me",path_params:&[],query:&[],body:&[],has_body:false,summary:"Get Account Info"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","autocomplete"],leaf_alias:None,method:"GET",path:"/v1/amazon/autocomplete",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Partial search term to expand into suggestions."},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},],body:&[],has_body:false,summary:"Keyword Suggestions"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","bestsellers"],leaf_alias:None,method:"GET",path:"/v1/amazon/bestsellers",path_params:&[],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"category",flag:"category",ty:Ty::Str,required:false,help:"Bestsellers node id or category slug (e.g. electronics)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number (each page covers 50 ranks; max 2)."},],body:&[],has_body:false,summary:"Bestsellers"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","categories"],leaf_alias:None,method:"GET",path:"/v1/amazon/categories",path_params:&[],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code. Category aliases are scoped per marketplace."},],body:&[],has_body:false,summary:"List Categories"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","category"],leaf_alias:None,method:"GET",path:"/v1/amazon/category",path_params:&[],query:&[Param{name:"node",flag:"node",ty:Ty::Str,required:true,help:"Amazon browse-node id to list products from."},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated results."},Param{name:"sort_by",flag:"sort-by",ty:Ty::Str,required:false,help:"Sort order for results."},],body:&[],has_body:false,summary:"Browse Category"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","deals"],leaf_alias:None,method:"GET",path:"/v1/amazon/deals",path_params:&[],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"category",flag:"category",ty:Ty::Str,required:false,help:"Category alias to scope the deals feed."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated deals."},],body:&[],has_body:false,summary:"Today's Deals"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","markets"],leaf_alias:None,method:"GET",path:"/v1/amazon/markets",path_params:&[],query:&[],body:&[],has_body:false,summary:"List Markets"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","new-releases"],leaf_alias:None,method:"GET",path:"/v1/amazon/new-releases",path_params:&[],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"category",flag:"category",ty:Ty::Str,required:false,help:"New-releases node id or category slug."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number (each page covers 50 ranks; max 2)."},],body:&[],has_body:false,summary:"New Releases"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","products","get"],leaf_alias:None,method:"GET",path:"/v1/amazon/products/{asin}",path_params:&["asin"],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"zip",flag:"zip",ty:Ty::Str,required:false,help:"Delivery postal/zip code for a localized buybox."},Param{name:"language",flag:"language",ty:Ty::Str,required:false,help:"Locale for the product page, e.g. en_US, de_DE."},],body:&[],has_body:false,summary:"Get Product Detail"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","products","offers"],leaf_alias:None,method:"GET",path:"/v1/amazon/products/{asin}/offers",path_params:&["asin"],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"zip",flag:"zip",ty:Ty::Str,required:false,help:"Delivery postal/zip code for localized offers and delivery estimates."},],body:&[],has_body:false,summary:"Get Offers"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","products","reviews"],leaf_alias:None,method:"GET",path:"/v1/amazon/products/{asin}/reviews",path_params:&["asin"],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated reviews."},Param{name:"sort_by",flag:"sort-by",ty:Ty::Str,required:false,help:"Sort order for reviews."},Param{name:"star",flag:"star",ty:Ty::Str,required:false,help:"Filter reviews by star rating or sentiment."},Param{name:"verified_only",flag:"verified-only",ty:Ty::Bool,required:false,help:"Only return reviews from verified purchases."},Param{name:"media_only",flag:"media-only",ty:Ty::Bool,required:false,help:"Only return reviews that include images or video."},],body:&[],has_body:false,summary:"Get Reviews"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","search"],leaf_alias:None,method:"GET",path:"/v1/amazon/search",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Search keywords."},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, fr, ...)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated results."},Param{name:"sort_by",flag:"sort-by",ty:Ty::Str,required:false,help:"Sort order for results."},Param{name:"category",flag:"category",ty:Ty::Str,required:false,help:"Department/category alias to scope the search (the i= parameter)."},Param{name:"min_price",flag:"min-price",ty:Ty::Num,required:false,help:"Minimum price filter in the marketplace's local currency."},Param{name:"max_price",flag:"max-price",ty:Ty::Num,required:false,help:"Maximum price filter in the marketplace's local currency."},Param{name:"zip",flag:"zip",ty:Ty::Str,required:false,help:"Delivery postal/zip code for localized pricing."},Param{name:"language",flag:"language",ty:Ty::Str,required:false,help:"Locale for results, e.g. en_US, fr_FR."},],body:&[],has_body:false,summary:"Search Products"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","sellers","feedback"],leaf_alias:None,method:"GET",path:"/v1/amazon/sellers/{seller_id}/feedback",path_params:&["seller_id"],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated feedback entries."},],body:&[],has_body:false,summary:"Seller Feedback"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","sellers","get"],leaf_alias:None,method:"GET",path:"/v1/amazon/sellers/{seller_id}",path_params:&["seller_id"],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},],body:&[],has_body:false,summary:"Get Seller"},
    Endpoint{platform:"amazon",path_cmd:&["amazon","sellers","products"],leaf_alias:None,method:"GET",path:"/v1/amazon/sellers/{seller_id}/products",path_params:&["seller_id"],query:&[Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Amazon marketplace TLD or code (com, co.uk, de, ...)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated storefront results."},],body:&[],has_body:false,summary:"Seller Products"},
    Endpoint{platform:"google",path_cmd:&["google","ai-mode","search"],leaf_alias:None,method:"GET",path:"/api/v1/ai-mode/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query for AI-generated response"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},],body:&[],has_body:false,summary:"Google AI Mode search"},
    Endpoint{platform:"google",path_cmd:&["google","autocomplete"],leaf_alias:None,method:"GET",path:"/api/v1/autocomplete/",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query to get suggestions for"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},],body:&[],has_body:false,summary:"Google search suggestions"},
    Endpoint{platform:"google",path_cmd:&["google","finance","quote"],leaf_alias:None,method:"GET",path:"/api/v1/finance/quote",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Stock ticker and exchange (e.g. \"AAPL:NASDAQ\", \"GOOGL:NASDAQ\", \"BTC-USD\")"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},],body:&[],has_body:false,summary:"Get Google Finance stock quote"},
    Endpoint{platform:"google",path_cmd:&["google","flights","search"],leaf_alias:None,method:"GET",path:"/api/v1/flights/search",path_params:&[],query:&[Param{name:"departure_id",flag:"departure-id",ty:Ty::Str,required:true,help:"Departure airport IATA code (e.g. JFK) or location ID"},Param{name:"arrival_id",flag:"arrival-id",ty:Ty::Str,required:true,help:"Arrival airport IATA code (e.g. LHR) or location ID"},Param{name:"outbound_date",flag:"outbound-date",ty:Ty::Str,required:true,help:"Outbound date (YYYY-MM-DD)"},Param{name:"return_date",flag:"return-date",ty:Ty::Str,required:false,help:"Return date (YYYY-MM-DD, round-trip only)"},Param{name:"trip_type",flag:"trip-type",ty:Ty::Str,required:false,help:"Trip type: round_trip | one_way | multi_city"},Param{name:"adults",flag:"adults",ty:Ty::Int,required:false,help:"Adult passengers"},Param{name:"children",flag:"children",ty:Ty::Int,required:false,help:"Children passengers"},Param{name:"infants_in_seat",flag:"infants-in-seat",ty:Ty::Int,required:false,help:""},Param{name:"infants_on_lap",flag:"infants-on-lap",ty:Ty::Int,required:false,help:""},Param{name:"travel_class",flag:"travel-class",ty:Ty::Str,required:false,help:"Cabin class"},Param{name:"currency",flag:"currency",ty:Ty::Str,required:false,help:"ISO-4217 currency code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"stops",flag:"stops",ty:Ty::Str,required:false,help:"Max stops filter"},Param{name:"max_price",flag:"max-price",ty:Ty::Int,required:false,help:"Max price filter"},],body:&[],has_body:false,summary:"Google Flights search"},
    Endpoint{platform:"google",path_cmd:&["google","hotels","details"],leaf_alias:None,method:"GET",path:"/api/v1/hotels/details",path_params:&[],query:&[Param{name:"property_token",flag:"property-token",ty:Ty::Str,required:true,help:"Property token from search results"},Param{name:"check_in",flag:"check-in",ty:Ty::Str,required:true,help:"Check-in date (YYYY-MM-DD)"},Param{name:"check_out",flag:"check-out",ty:Ty::Str,required:true,help:"Check-out date (YYYY-MM-DD)"},Param{name:"adults",flag:"adults",ty:Ty::Int,required:false,help:""},Param{name:"currency",flag:"currency",ty:Ty::Str,required:false,help:""},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:""},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Hotel details"},
    Endpoint{platform:"google",path_cmd:&["google","hotels","search"],leaf_alias:None,method:"GET",path:"/api/v1/hotels/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Location or hotel name"},Param{name:"check_in",flag:"check-in",ty:Ty::Str,required:true,help:"Check-in date (YYYY-MM-DD)"},Param{name:"check_out",flag:"check-out",ty:Ty::Str,required:true,help:"Check-out date (YYYY-MM-DD)"},Param{name:"adults",flag:"adults",ty:Ty::Int,required:false,help:"Number of adults"},Param{name:"children",flag:"children",ty:Ty::Int,required:false,help:"Number of children"},Param{name:"currency",flag:"currency",ty:Ty::Str,required:false,help:"Currency code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"sort_by",flag:"sort-by",ty:Ty::Str,required:false,help:"Sort: price_low, rating_high, most_reviewed"},Param{name:"min_price",flag:"min-price",ty:Ty::Int,required:false,help:"Minimum price"},Param{name:"max_price",flag:"max-price",ty:Ty::Int,required:false,help:"Maximum price"},Param{name:"hotel_class",flag:"hotel-class",ty:Ty::Int,required:false,help:"Star rating"},Param{name:"next_page_token",flag:"next-page-token",ty:Ty::Str,required:false,help:"Pagination token"},],body:&[],has_body:false,summary:"Search Google Hotels"},
    Endpoint{platform:"google",path_cmd:&["google","images","search"],leaf_alias:None,method:"GET",path:"/api/v1/images/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Image search query"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"tbs",flag:"tbs",ty:Ty::Str,required:false,help:"Time/filter string (e.g. qdr:d)"},Param{name:"imgsz",flag:"imgsz",ty:Ty::Str,required:false,help:"Image size: l=large, m=medium, i=icon, xXl, etc."},Param{name:"imgcolor",flag:"imgcolor",ty:Ty::Str,required:false,help:"Image color: color, gray, transparent, red, orange, etc."},Param{name:"imgtype",flag:"imgtype",ty:Ty::Str,required:false,help:"Image type: face, photo, clipart, lineart, animated"},Param{name:"safe",flag:"safe",ty:Ty::Str,required:false,help:"Safe search: off, active"},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number (0-based, each page = 20 results)"},],body:&[],has_body:false,summary:"Search Google Images"},
    Endpoint{platform:"google",path_cmd:&["google","jobs","search"],leaf_alias:None,method:"GET",path:"/api/v1/jobs/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Job title / keywords / combined query."},Param{name:"location",flag:"location",ty:Ty::Str,required:false,help:"City / state / region — concatenated with `q` before sending to Google."},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code (ISO 3166 alpha-2)."},Param{name:"country",flag:"country",ty:Ty::Str,required:false,help:"Alias for `gl`; when present overrides it."},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code."},Param{name:"language",flag:"language",ty:Ty::Str,required:false,help:"Alias for `hl`; when present overrides it."},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Google domain for locale-specific results (`google.com`, `google.co.uk`, `google.co.in`, …)."},Param{name:"job_type",flag:"job-type",ty:Ty::Str,required:false,help:"Employment type — translated into a `chips` filter."},Param{name:"date_posted",flag:"date-posted",ty:Ty::Str,required:false,help:"Posted-date window — translated into a `chips` filter."},Param{name:"ltype",flag:"ltype",ty:Ty::Str,required:false,help:"Work arrangement — maps onto Google's remote/hybrid/onsite chips."},Param{name:"chips",flag:"chips",ty:Ty::Str,required:false,help:"Raw Google chip-filter string (comma-separated). Merged with any structured filters (`job_type`, `date_posted`, `ltype`)."},Param{name:"uds",flag:"uds",ty:Ty::Str,required:false,help:"Opaque Google filter token harvested from a prior Jobs search URL."},Param{name:"uule",flag:"uule",ty:Ty::Str,required:false,help:"Google's UULE-encoded location (e.g. `w+CAIQIFJlbGF5IFN0YXRlcw==`)."},Param{name:"lrad",flag:"lrad",ty:Ty::Str,required:false,help:"Search radius around the location (Google accepts a distance in miles)."},Param{name:"next_page_token",flag:"next-page-token",ty:Ty::Str,required:false,help:"Opaque token from the previous response's `pagination.next`."},Param{name:"mode",flag:"mode",ty:Ty::Str,required:false,help:"Data source. ``rpc`` (default, ~300 ms) replays Google's own ``r06xKb`` batchexecute RPC on the Google Careers portal — clean JSON, 20 roles per page, scope = Google's internal openings. ``serp`` uses the public Jobs search vertical (``udm=8``, SERP-embedded, 3rd-party aggregator) and costs more latency because Google gates it behind JS."},],body:&[],has_body:false,summary:"Search Google Jobs"},
    Endpoint{platform:"google",path_cmd:&["google","lens","search"],leaf_alias:None,method:"GET",path:"/api/v1/lens/search",path_params:&[],query:&[Param{name:"url",flag:"url",ty:Ty::Str,required:true,help:"Public URL of the image to search visually"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},],body:&[],has_body:false,summary:"Google Lens visual search"},
    Endpoint{platform:"google",path_cmd:&["google","local","search"],leaf_alias:None,method:"GET",path:"/api/v1/local/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query (e.g. 'pizza in New York')"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Google domain"},Param{name:"location",flag:"location",ty:Ty::Str,required:false,help:"City-level geo-targeting (e.g. 'New York, USA')"},Param{name:"uule",flag:"uule",ty:Ty::Str,required:false,help:"UULE encoded location"},Param{name:"num",flag:"num",ty:Ty::Int,required:false,help:"Results per page"},Param{name:"start",flag:"start",ty:Ty::Int,required:false,help:"Pagination offset"},],body:&[],has_body:false,summary:"Google Local Pack search"},
    Endpoint{platform:"google",path_cmd:&["google","maps","photos"],leaf_alias:None,method:"GET",path:"/api/v1/maps/photos",path_params:&[],query:&[Param{name:"data_id",flag:"data-id",ty:Ty::Str,required:true,help:"Google Maps data ID (0x...:0x...)"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},],body:&[],has_body:false,summary:"Get place photos"},
    Endpoint{platform:"google",path_cmd:&["google","maps","place"],leaf_alias:None,method:"GET",path:"/api/v1/maps/place",path_params:&[],query:&[Param{name:"place_id",flag:"place-id",ty:Ty::Str,required:false,help:"Google place ID (ChIJ...)"},Param{name:"data_id",flag:"data-id",ty:Ty::Str,required:false,help:"Google Maps data ID (0x...:0x...)"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},],body:&[],has_body:false,summary:"Get place details"},
    Endpoint{platform:"google",path_cmd:&["google","maps","posts"],leaf_alias:None,method:"GET",path:"/api/v1/maps/posts",path_params:&[],query:&[Param{name:"data_id",flag:"data-id",ty:Ty::Str,required:false,help:"Google Maps data ID (0x...:0x...) — from /maps/search results"},Param{name:"place_id",flag:"place-id",ty:Ty::Str,required:false,help:"Google place ID (ChIJ...)"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},],body:&[],has_body:false,summary:"Get business posts"},
    Endpoint{platform:"google",path_cmd:&["google","maps","reviews"],leaf_alias:None,method:"GET",path:"/api/v1/maps/reviews",path_params:&[],query:&[Param{name:"data_id",flag:"data-id",ty:Ty::Str,required:true,help:"Google Maps data ID (0x...:0x...)"},Param{name:"sort_by",flag:"sort-by",ty:Ty::Str,required:false,help:"Sort order"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"next_page_token",flag:"next-page-token",ty:Ty::Str,required:false,help:"Pagination token from previous response"},Param{name:"offset",flag:"offset",ty:Ty::Int,required:false,help:"Review offset (0-based)"},Param{name:"results",flag:"results",ty:Ty::Int,required:false,help:"Reviews per page"},],body:&[],has_body:false,summary:"Get place reviews"},
    Endpoint{platform:"google",path_cmd:&["google","maps","search"],leaf_alias:None,method:"GET",path:"/api/v1/maps/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query (e.g. 'pizza in New York')"},Param{name:"ll",flag:"ll",ty:Ty::Str,required:false,help:"GPS coords @lat,lng,zoom"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"start",flag:"start",ty:Ty::Int,required:false,help:"Pagination offset (increments of 20)"},],body:&[],has_body:false,summary:"Search Google Maps places"},
    Endpoint{platform:"google",path_cmd:&["google","news","search"],leaf_alias:None,method:"GET",path:"/api/v1/news/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"max_results",flag:"max-results",ty:Ty::Int,required:false,help:"Maximum articles"},],body:&[],has_body:false,summary:"Search Google News"},
    Endpoint{platform:"google",path_cmd:&["google","news","topics"],leaf_alias:None,method:"GET",path:"/api/v1/news/topics",path_params:&[],query:&[Param{name:"topic",flag:"topic",ty:Ty::Str,required:true,help:"Topic name"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"max_results",flag:"max-results",ty:Ty::Int,required:false,help:""},],body:&[],has_body:false,summary:"News by topic"},
    Endpoint{platform:"google",path_cmd:&["google","news","trending"],leaf_alias:None,method:"GET",path:"/api/v1/news/trending",path_params:&[],query:&[Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"max_results",flag:"max-results",ty:Ty::Int,required:false,help:""},],body:&[],has_body:false,summary:"Trending news"},
    Endpoint{platform:"google",path_cmd:&["google","patents","detail"],leaf_alias:None,method:"GET",path:"/api/v1/patents/detail",path_params:&[],query:&[Param{name:"patent_id",flag:"patent-id",ty:Ty::Str,required:true,help:"Patent/publication number (e.g. US10000000B2)"},],body:&[],has_body:false,summary:"Get patent details"},
    Endpoint{platform:"google",path_cmd:&["google","patents","search"],leaf_alias:None,method:"GET",path:"/api/v1/patents/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query (supports Boolean logic)"},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number"},Param{name:"num",flag:"num",ty:Ty::Int,required:false,help:"Results per page"},Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort order"},Param{name:"inventor",flag:"inventor",ty:Ty::Str,required:false,help:"Inventor name(s)"},Param{name:"assignee",flag:"assignee",ty:Ty::Str,required:false,help:"Assignee name(s)"},Param{name:"country",flag:"country",ty:Ty::Str,required:false,help:"Country code(s)"},Param{name:"language",flag:"language",ty:Ty::Str,required:false,help:"Patent language"},Param{name:"status",flag:"status",ty:Ty::Str,required:false,help:""},Param{name:"patent_type",flag:"patent-type",ty:Ty::Str,required:false,help:""},Param{name:"before",flag:"before",ty:Ty::Str,required:false,help:"Before date (YYYYMMDD)"},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:"After date (YYYYMMDD)"},],body:&[],has_body:false,summary:"Search Google Patents"},
    Endpoint{platform:"google",path_cmd:&["google","products","detail"],leaf_alias:None,method:"GET",path:"/api/v1/products/detail",path_params:&[],query:&[Param{name:"product_id",flag:"product-id",ty:Ty::Str,required:true,help:"Google Shopping product identifier (``gpcid``). Returned as ``product_id``/``gpcid`` on ``/shopping/search`` tiles."},Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Original search query that surfaced the product. Required by Google's ``/async/oapv`` RPC — the page-level ``ei``/``xsrf`` and per-tile ``oapvfc`` tokens are extracted from the SERP Google renders for this exact query, so the product must be discoverable via this query."},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code (ISO 3166 alpha-2). Defaults to the country implied by ``domain`` (e.g. ``google.com.au`` → ``au``), falling back to ``us`` when domain doesn't carry a country hint."},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code."},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Google domain (\"google.com\" / \"google.co.uk\" / …) — used to localise the SERP render that produces the session tokens."},Param{name:"include_offers",flag:"include-offers",ty:Ty::Bool,required:false,help:"When true, return the full merchant-offer list with deep product URLs for every merchant Google ships an offer-block for. Offers come from the primary oapv response (top ~5 panel merchants: DICK'S, Kohl's, Zappos, etc.) plus a parallel paginated fan-out of ``/async/oapv`` with ``async_context=MORE_STORES`` at offsets sori=5..60 — which surfaces an additional ~50 sellers including GOAT, eBay sub-sellers, Macy's, StockX, Poshmark, Flight Club, etc. (+5 parallel RPCs, ~1 s wall-clock)."},Param{name:"include_variants",flag:"include-variants",ty:Ty::Bool,required:false,help:"When true, also fetch size/colour variants via ``/async/toy_v`` (+1 secondary RPC, ~1 s)."},Param{name:"resolve_deep_urls",flag:"resolve-deep-urls",ty:Ty::Bool,required:false,help:"When true (only meaningful with ``include_offers=true``), browser-render the Shopping SERP so additional merchant deep URLs surface from the rendered HTML. Best-effort: catalog-feed retailers (DSW / Famous Footwear / Shoe Carnival / Myer / rebel) get deep URLs; paid-Shopping-Ads merchants (Zappos, GOAT, Academy, etc.) still get their homepage because their click-through URLs are signed by Google's aclk redirect and can't be reproduced server-side. Adds ~5–8 s latency."},],body:&[],has_body:false,summary:"Google immersive product detail"},
    Endpoint{platform:"google",path_cmd:&["google","scholar","author","citation"],leaf_alias:None,method:"GET",path:"/api/v1/scholar/author/citation",path_params:&[],query:&[Param{name:"author_id",flag:"author-id",ty:Ty::Str,required:true,help:"Scholar user ID"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},],body:&[],has_body:false,summary:"Get citation chart data for a Scholar author"},
    Endpoint{platform:"google",path_cmd:&["google","scholar","author","get"],leaf_alias:None,method:"GET",path:"/api/v1/scholar/author",path_params:&[],query:&[Param{name:"author_id",flag:"author-id",ty:Ty::Str,required:true,help:"Scholar user ID (the `user` query parameter)"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"cstart",flag:"cstart",ty:Ty::Int,required:false,help:"Articles pagination offset"},Param{name:"pagesize",flag:"pagesize",ty:Ty::Int,required:false,help:"Articles per page"},],body:&[],has_body:false,summary:"Get Google Scholar author profile"},
    Endpoint{platform:"google",path_cmd:&["google","scholar","cite"],leaf_alias:None,method:"GET",path:"/api/v1/scholar/cite",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Cluster ID from a search result (e.g. '5Gohgn6QFikJ')"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},],body:&[],has_body:false,summary:"Get citation formats for a Scholar paper"},
    Endpoint{platform:"google",path_cmd:&["google","scholar","profiles"],leaf_alias:None,method:"GET",path:"/api/v1/scholar/profiles",path_params:&[],query:&[Param{name:"mauthors",flag:"mauthors",ty:Ty::Str,required:true,help:"Author name query (e.g. 'Geoffrey Hinton')"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"after_author",flag:"after-author",ty:Ty::Str,required:false,help:"Pagination token for the next page"},Param{name:"before_author",flag:"before-author",ty:Ty::Str,required:false,help:"Pagination token for the previous page"},],body:&[],has_body:false,summary:"Search Google Scholar author profiles"},
    Endpoint{platform:"google",path_cmd:&["google","scholar","search"],leaf_alias:None,method:"GET",path:"/api/v1/scholar/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query for scholarly articles"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"as_ylo",flag:"as-ylo",ty:Ty::Int,required:false,help:"Year from (e.g. 2020)"},Param{name:"as_yhi",flag:"as-yhi",ty:Ty::Int,required:false,help:"Year to (e.g. 2024)"},Param{name:"as_sdt",flag:"as-sdt",ty:Ty::Str,required:false,help:"Search type: 0=exclude patents, 7=include patents"},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number (0-based)"},Param{name:"num",flag:"num",ty:Ty::Int,required:false,help:"Results per page (max 20)"},],body:&[],has_body:false,summary:"Search Google Scholar"},
    Endpoint{platform:"google",path_cmd:&["google","search"],leaf_alias:None,method:"GET",path:"/api/v1/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query (supports Google operators like site:, inurl:, intitle:)"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code (e.g. us, gb, de, fr)"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code (e.g. en, es, fr)"},Param{name:"num",flag:"num",ty:Ty::Int,required:false,help:"Results per page"},Param{name:"start",flag:"start",ty:Ty::Int,required:false,help:"Pagination offset (0, 10, 20...)"},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Google domain (e.g. google.com, google.co.uk)"},Param{name:"device",flag:"device",ty:Ty::Str,required:false,help:"desktop or mobile"},Param{name:"location",flag:"location",ty:Ty::Str,required:false,help:"City-level geo-targeting (e.g. 'New York, USA')"},Param{name:"lr",flag:"lr",ty:Ty::Str,required:false,help:"Language restrict (e.g. lang_en)"},Param{name:"tbs",flag:"tbs",ty:Ty::Str,required:false,help:"Time-based search filter (e.g. qdr:d for past 24h)"},Param{name:"safe",flag:"safe",ty:Ty::Str,required:false,help:"Safe search (active/off)"},Param{name:"uule",flag:"uule",ty:Ty::Str,required:false,help:"Encoded location parameter (UULE)"},Param{name:"filter",flag:"filter",ty:Ty::Int,required:false,help:"Include omitted results (0=show all, 1=filter)"},Param{name:"nfpr",flag:"nfpr",ty:Ty::Int,required:false,help:"Disable auto-correction (1=exact match)"},Param{name:"cr",flag:"cr",ty:Ty::Str,required:false,help:"Country restrict (e.g. countryUS|countryGB)"},Param{name:"ludocid",flag:"ludocid",ty:Ty::Str,required:false,help:"Google My Business CID (place ID)"},Param{name:"lsig",flag:"lsig",ty:Ty::Str,required:false,help:"Knowledge Graph map view ID"},Param{name:"kgmid",flag:"kgmid",ty:Ty::Str,required:false,help:"Knowledge Graph entity ID"},Param{name:"si",flag:"si",ty:Ty::Str,required:false,help:"Cached search parameters"},Param{name:"ibp",flag:"ibp",ty:Ty::Str,required:false,help:"Layout control (e.g. gwp;0,7)"},Param{name:"uds",flag:"uds",ty:Ty::Str,required:false,help:"Google filter string"},Param{name:"ai_overview",flag:"ai-overview",ty:Ty::Bool,required:false,help:"When true, chase Google's deferred AI Overview page_token with a follow-up fetch and merge the result into ai_overview. Adds ~1s and 1 credit when the SERP actually defers the overview."},Param{name:"mode",flag:"mode",ty:Ty::Str,required:false,help:"Response mode. **full** (default): complete SERP with all blocks (organic, ads, knowledge graph, local pack, AI overview, news, related questions, etc). **fast**: lite endpoint via `gbv=1` that returns ONLY organic results + related searches in ~0.6-1s cold (vs 1.5-2s full). Use when you only need organic results and can skip rich features."},],body:&[],has_body:false,summary:"Google web search"},
    Endpoint{platform:"google",path_cmd:&["google","shopping","product","click"],leaf_alias:None,method:"GET",path:"/api/v1/shopping/product/click",path_params:&[],query:&[Param{name:"title",flag:"title",ty:Ty::Str,required:true,help:"Exact product title from a search result"},Param{name:"source",flag:"source",ty:Ty::Str,required:false,help:"Merchant source name from the shopping card (e.g. 'Walmart', 'Best Buy'). Forces the resolved URL to that merchant via site: operator."},Param{name:"q",flag:"q",ty:Ty::Str,required:false,help:"Original search query (optional, improves disambiguation)"},Param{name:"product_id",flag:"product-id",ty:Ty::Str,required:false,help:"Stable product_id from the /shopping/search result"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},],body:&[],has_body:false,summary:"Resolve merchant URL for a Google Shopping product"},
    Endpoint{platform:"google",path_cmd:&["google","shopping","product","get"],leaf_alias:None,method:"GET",path:"/api/v1/shopping/product",path_params:&[],query:&[Param{name:"product_id",flag:"product-id",ty:Ty::Str,required:true,help:"Product ID from search results"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:""},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Product details"},
    Endpoint{platform:"google",path_cmd:&["google","shopping","search"],leaf_alias:None,method:"GET",path:"/api/v1/shopping/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Product search query"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"min_price",flag:"min-price",ty:Ty::Int,required:false,help:"Minimum price"},Param{name:"max_price",flag:"max-price",ty:Ty::Int,required:false,help:"Maximum price"},Param{name:"sort_by",flag:"sort-by",ty:Ty::Str,required:false,help:"Sort: price_low, price_high, rating, reviews"},Param{name:"free_shipping",flag:"free-shipping",ty:Ty::Bool,required:false,help:"Free shipping filter"},Param{name:"on_sale",flag:"on-sale",ty:Ty::Bool,required:false,help:"On sale filter"},Param{name:"start",flag:"start",ty:Ty::Int,required:false,help:"Pagination offset"},],body:&[],has_body:false,summary:"Search Google Shopping"},
    Endpoint{platform:"google",path_cmd:&["google","shorts","search"],leaf_alias:None,method:"GET",path:"/api/v1/shorts/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"domain",flag:"domain",ty:Ty::Str,required:false,help:"Google domain"},Param{name:"num",flag:"num",ty:Ty::Int,required:false,help:"Results per page"},Param{name:"start",flag:"start",ty:Ty::Int,required:false,help:"Pagination offset"},],body:&[],has_body:false,summary:"Google Shorts search"},
    Endpoint{platform:"google",path_cmd:&["google","trends","autocomplete"],leaf_alias:None,method:"GET",path:"/api/v1/trends/autocomplete",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Query prefix to resolve into Trends topics"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"tz",flag:"tz",ty:Ty::Str,required:false,help:"Timezone offset in minutes (Google format)"},],body:&[],has_body:false,summary:"Trends topic autocomplete"},
    Endpoint{platform:"google",path_cmd:&["google","trends","interest"],leaf_alias:None,method:"GET",path:"/api/v1/trends/interest",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search term(s), comma-separated (max 5)"},Param{name:"geo",flag:"geo",ty:Ty::Str,required:false,help:"Geographic location (e.g. US, GB)"},Param{name:"date",flag:"date",ty:Ty::Str,required:false,help:"Time range (e.g. 'now 1-H', 'today 12-m', 'all', or 'YYYY-MM-DD YYYY-MM-DD')"},Param{name:"category",flag:"category",ty:Ty::Int,required:false,help:"Category filter (0 = all)"},Param{name:"gprop",flag:"gprop",ty:Ty::Str,required:false,help:"Property: web, images, news, froogle, youtube"},],body:&[],has_body:false,summary:"Interest over time"},
    Endpoint{platform:"google",path_cmd:&["google","trends","regions"],leaf_alias:None,method:"GET",path:"/api/v1/trends/regions",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search term"},Param{name:"geo",flag:"geo",ty:Ty::Str,required:false,help:"Geographic location"},Param{name:"date",flag:"date",ty:Ty::Str,required:false,help:""},Param{name:"resolution",flag:"resolution",ty:Ty::Str,required:false,help:"Region granularity. `auto` (default) uses Google's widget default, which is `COUNTRY` for worldwide queries and `REGION` (state/province) for single-country queries. Overriding to `COUNTRY` when `geo` is set returns HTTP 400 from Google — use `REGION`, `DMA`, or `CITY` in that case."},],body:&[],has_body:false,summary:"Interest by region"},
    Endpoint{platform:"google",path_cmd:&["google","trends","related"],leaf_alias:None,method:"GET",path:"/api/v1/trends/related",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search term"},Param{name:"geo",flag:"geo",ty:Ty::Str,required:false,help:""},Param{name:"date",flag:"date",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Related topics & queries"},
    Endpoint{platform:"google",path_cmd:&["google","trends","search"],leaf_alias:None,method:"GET",path:"/api/v1/trends/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search term(s). Up to 5 comma-separated terms for TIMESERIES / GEO_MAP; single term for GEO_MAP_0 / RELATED_TOPICS / RELATED_QUERIES. Also accepts a topic MID."},Param{name:"data_type",flag:"data-type",ty:Ty::Str,required:false,help:"Dispatch on: TIMESERIES (interest over time), GEO_MAP (compared breakdown, multi-query), GEO_MAP_0 (interest by region, single query), RELATED_TOPICS (top + rising topics), RELATED_QUERIES (top + rising queries)."},Param{name:"geo",flag:"geo",ty:Ty::Str,required:false,help:"Country / region code (e.g. US, GB, US-CA)."},Param{name:"date",flag:"date",ty:Ty::Str,required:false,help:"Time range."},Param{name:"cat",flag:"cat",ty:Ty::Int,required:false,help:"Category filter ID (0 = all)."},Param{name:"gprop",flag:"gprop",ty:Ty::Str,required:false,help:"Property filter: \"\" (web), \"images\", \"news\", \"froogle\", \"youtube\"."},Param{name:"region",flag:"region",ty:Ty::Str,required:false,help:"Geo resolution for GEO_MAP / GEO_MAP_0: COUNTRY / REGION / DMA / CITY. Omit to use the widget's own default."},Param{name:"language",flag:"language",ty:Ty::Str,required:false,help:"Alias for `hl`. Defaults to en-US."},Param{name:"tz",flag:"tz",ty:Ty::Str,required:false,help:"Timezone offset in minutes."},],body:&[],has_body:false,summary:"Google Trends — unified search"},
    Endpoint{platform:"google",path_cmd:&["google","trends","trending"],leaf_alias:None,method:"GET",path:"/api/v1/trends/trending",path_params:&[],query:&[Param{name:"geo",flag:"geo",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:""},Param{name:"hours",flag:"hours",ty:Ty::Int,required:false,help:"Hours-back window for the trending list. Google supports 24, 48, 168 (= 1 week)."},],body:&[],has_body:false,summary:"Trending searches"},
    Endpoint{platform:"google",path_cmd:&["google","trends","trending-now"],leaf_alias:None,method:"GET",path:"/api/v1/trends/trending-now",path_params:&[],query:&[Param{name:"geo",flag:"geo",ty:Ty::Str,required:false,help:"Country code (e.g. ``US``, ``LT``, ``GB``)."},Param{name:"hours",flag:"hours",ty:Ty::Int,required:false,help:"Look-back window in hours. Google's UI supports 4, 24, 48, 168. Passed through to the upstream feed; the public RSS currently ignores this filter."},Param{name:"category",flag:"category",ty:Ty::Str,required:false,help:"Category filter. Accepts Google's letter codes (``b`` business, ``e`` entertainment, ``m`` health, ``t`` sci/tech, ``s`` sports, ``h`` top stories) or the friendly aliases (``business``, ``entertainment``, ``health``, ``sci_tech``/``technology``, ``sports``, ``top_stories``). ``all`` (default) returns every category."},Param{name:"status",flag:"status",ty:Ty::Str,required:false,help:"Trend state. ``active`` keeps only entries with a non-zero search volume (still surging); ``all`` (default) returns every entry including ended ones."},Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort order. ``relevance`` (default) keeps Google's ordering; ``search_volume`` orders by parsed traffic descending; ``title`` sorts alphabetically; ``recency`` falls back to relevance when the feed omits publication timestamps."},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code."},],body:&[],has_body:false,summary:"Google Trends — current trending searches"},
    Endpoint{platform:"google",path_cmd:&["google","videos","search"],leaf_alias:None,method:"GET",path:"/api/v1/videos/search",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Video search query"},Param{name:"gl",flag:"gl",ty:Ty::Str,required:false,help:"Country code"},Param{name:"hl",flag:"hl",ty:Ty::Str,required:false,help:"Language code"},Param{name:"tbs",flag:"tbs",ty:Ty::Str,required:false,help:"Time filter (e.g. qdr:d=past day, qdr:w=past week, qdr:m=past month)"},Param{name:"safe",flag:"safe",ty:Ty::Str,required:false,help:"Safe search: off, active"},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number (0-based, each page = 10 results)"},],body:&[],has_body:false,summary:"Search Google Videos"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","domains","posts"],leaf_alias:None,method:"GET",path:"/v1/reddit/domains/{domain}/posts",path_params:&["domain"],query:&[Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:""},Param{name:"t",flag:"t",ty:Ty::Str,required:false,help:""},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Get posts by domain"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","posts","comments"],leaf_alias:None,method:"GET",path:"/v1/reddit/posts/{post_id}/comments",path_params:&["post_id"],query:&[Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort: confidence, top, new, controversial, old, qa"},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"depth",flag:"depth",ty:Ty::Int,required:false,help:""},],body:&[],has_body:false,summary:"Get post comments"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","posts","duplicates"],leaf_alias:None,method:"GET",path:"/v1/reddit/posts/{post_id}/duplicates",path_params:&["post_id"],query:&[Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Get cross-posts"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","posts","get"],leaf_alias:None,method:"GET",path:"/v1/reddit/posts/{post_id}",path_params:&["post_id"],query:&[],body:&[],has_body:false,summary:"Get post detail"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","posts","trending"],leaf_alias:None,method:"GET",path:"/v1/reddit/posts/trending",path_params:&[],query:&[Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort: hot, new, top, rising, controversial, best"},Param{name:"t",flag:"t",ty:Ty::Str,required:false,help:"Time filter"},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Get trending posts"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","search","posts"],leaf_alias:None,method:"GET",path:"/v1/reddit/search/posts",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query"},Param{name:"subreddit",flag:"subreddit",ty:Ty::Str,required:false,help:"Restrict to subreddit"},Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort: relevance, hot, top, new, comments"},Param{name:"t",flag:"t",ty:Ty::Str,required:false,help:"Time: hour, day, week, month, year, all"},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Search Reddit posts"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","search","subreddits"],leaf_alias:None,method:"GET",path:"/v1/reddit/search/subreddits",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query"},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Search subreddits"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","search","users"],leaf_alias:None,method:"GET",path:"/v1/reddit/search/users",path_params:&[],query:&[Param{name:"q",flag:"q",ty:Ty::Str,required:true,help:"Search query"},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Search users"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","get"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/{subreddit}",path_params:&["subreddit"],query:&[],body:&[],has_body:false,summary:"Get subreddit info"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","new"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/new",path_params:&[],query:&[Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"New subreddits"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","popular"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/popular",path_params:&[],query:&[Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Popular subreddits"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","posts"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/{subreddit}/posts",path_params:&["subreddit"],query:&[Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort: hot, new, top, rising, controversial"},Param{name:"t",flag:"t",ty:Ty::Str,required:false,help:"Time filter"},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Get subreddit posts"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","rules"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/{subreddit}/rules",path_params:&["subreddit"],query:&[],body:&[],has_body:false,summary:"Get subreddit rules"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","wiki","get"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/{subreddit}/wiki/{page}",path_params:&["subreddit","page"],query:&[],body:&[],has_body:false,summary:"Get wiki page content"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","subreddits","wiki","list"],leaf_alias:None,method:"GET",path:"/v1/reddit/subreddits/{subreddit}/wiki",path_params:&["subreddit"],query:&[],body:&[],has_body:false,summary:"List wiki pages"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","users","comments"],leaf_alias:None,method:"GET",path:"/v1/reddit/users/{username}/comments",path_params:&["username"],query:&[Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:""},Param{name:"t",flag:"t",ty:Ty::Str,required:false,help:""},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Get user's comments"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","users","get"],leaf_alias:None,method:"GET",path:"/v1/reddit/users/{username}",path_params:&["username"],query:&[],body:&[],has_body:false,summary:"Get user profile"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","users","moderated"],leaf_alias:None,method:"GET",path:"/v1/reddit/users/{username}/moderated",path_params:&["username"],query:&[],body:&[],has_body:false,summary:"Get user's moderated subreddits"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","users","posts"],leaf_alias:None,method:"GET",path:"/v1/reddit/users/{username}/posts",path_params:&["username"],query:&[Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:""},Param{name:"t",flag:"t",ty:Ty::Str,required:false,help:""},Param{name:"limit",flag:"limit",ty:Ty::Int,required:false,help:""},Param{name:"after",flag:"after",ty:Ty::Str,required:false,help:""},],body:&[],has_body:false,summary:"Get user's posts"},
    Endpoint{platform:"reddit",path_cmd:&["reddit","users","trophies"],leaf_alias:None,method:"GET",path:"/v1/reddit/users/{username}/trophies",path_params:&["username"],query:&[],body:&[],has_body:false,summary:"Get user's trophies"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","communities","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/communities/{community_id}",path_params:&["community_id"],query:&[],body:&[],has_body:false,summary:"Get community details"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","communities","search"],leaf_alias:None,method:"GET",path:"/v1/twitter/communities/search",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Search query to match against community names and descriptions."},Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Search communities"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","communities","tweets"],leaf_alias:None,method:"GET",path:"/v1/twitter/communities/{community_id}/tweets",path_params:&["community_id"],query:&[Param{name:"tweet_type",flag:"tweet-type",ty:Ty::Str,required:false,help:"Type of tweets to return from the community."},Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get community tweets"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","geo","places","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/geo/places/{place_id}",path_params:&["place_id"],query:&[],body:&[],has_body:false,summary:"Get place details"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","geo","search"],leaf_alias:None,method:"GET",path:"/v1/twitter/geo/search",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:false,help:"Free-form text search for place names."},Param{name:"lat",flag:"lat",ty:Ty::Num,required:false,help:"Latitude coordinate for location-based search."},Param{name:"long",flag:"long",ty:Ty::Num,required:false,help:"Longitude coordinate for location-based search."},],body:&[],has_body:false,summary:"Search places"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","lists","detail"],leaf_alias:None,method:"GET",path:"/v1/twitter/lists/{list_id}/detail",path_params:&["list_id"],query:&[],body:&[],has_body:false,summary:"Get list details"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","lists","search-tweets"],leaf_alias:Some("search_tweets"),method:"GET",path:"/v1/twitter/lists/{list_id}/search_tweets",path_params:&["list_id"],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Search query to filter tweets within the list."},Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Search list tweets"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","lists","tweets"],leaf_alias:None,method:"GET",path:"/v1/twitter/lists/{list_id}/tweets",path_params:&["list_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get list tweets"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","spaces","broadcast","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/spaces/broadcast/{broadcast_id}",path_params:&["broadcast_id"],query:&[],body:&[],has_body:false,summary:"Get broadcast details"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","spaces","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/spaces/{space_id}",path_params:&["space_id"],query:&[],body:&[],has_body:false,summary:"Get Space details"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","billing-logs"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/billing-logs",path_params:&[],query:&[Param{name:"monitor_id",flag:"monitor-id",ty:Ty::Str,required:false,help:"Filter logs by stream monitor ID."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for pagination."},Param{name:"page_size",flag:"page-size",ty:Ty::Int,required:false,help:"Number of logs per page."},],body:&[],has_body:false,summary:"List billing logs"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","create"],leaf_alias:None,method:"POST",path:"/v1/twitter/stream/filter-rules",path_params:&[],query:&[],body:&[Param{name:"interval_seconds",flag:"interval-seconds",ty:Ty::Num,required:true,help:"Polling interval in seconds. Lower intervals detect tweets faster but cost more credits per day."},Param{name:"max_results_per_poll",flag:"max-results-per-poll",ty:Ty::Int,required:false,help:"Maximum number of tweets to return per poll cycle."},Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Twitter Advanced Search query. Supports operators like from:, to:, min_faves:, lang:, etc."},Param{name:"tag",flag:"tag",ty:Ty::Str,required:true,help:"Human-readable label for the filter rule."},Param{name:"webhook_secret",flag:"webhook-secret",ty:Ty::Str,required:false,help:"Secret used to sign webhook payloads with HMAC-SHA256."},Param{name:"webhook_url",flag:"webhook-url",ty:Ty::Str,required:false,help:"HTTPS URL to receive webhook deliveries. Must use HTTPS."},],has_body:true,summary:"Create filter rule"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","delete"],leaf_alias:None,method:"DELETE",path:"/v1/twitter/stream/filter-rules/{rule_id}",path_params:&["rule_id"],query:&[],body:&[],has_body:false,summary:"Delete filter rule"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/filter-rules/{rule_id}",path_params:&["rule_id"],query:&[],body:&[],has_body:false,summary:"Get filter rule"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","list"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/filter-rules",path_params:&[],query:&[Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for pagination."},Param{name:"page_size",flag:"page-size",ty:Ty::Int,required:false,help:"Number of rules per page."},Param{name:"status",flag:"status",ty:Ty::Str,required:false,help:"Filter rules by status."},],body:&[],has_body:false,summary:"List filter rules"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","logs"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/filter-rules/{rule_id}/logs",path_params:&["rule_id"],query:&[Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for pagination."},Param{name:"page_size",flag:"page-size",ty:Ty::Int,required:false,help:"Number of logs per page."},Param{name:"author_username",flag:"author-username",ty:Ty::Str,required:false,help:"Filter delivery logs by the tweet author's username."},Param{name:"delivery_status",flag:"delivery-status",ty:Ty::Str,required:false,help:"Filter delivery logs by delivery status."},Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort order for delivery logs by time."},],body:&[],has_body:false,summary:"Get filter rule delivery logs"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","update"],leaf_alias:None,method:"PATCH",path:"/v1/twitter/stream/filter-rules/{rule_id}",path_params:&["rule_id"],query:&[],body:&[Param{name:"interval_seconds",flag:"interval-seconds",ty:Ty::Num,required:false,help:"Updated polling interval in seconds."},Param{name:"max_results_per_poll",flag:"max-results-per-poll",ty:Ty::Int,required:false,help:"Updated maximum results per poll cycle."},Param{name:"query",flag:"query",ty:Ty::Str,required:false,help:"Updated Twitter Advanced Search query."},Param{name:"status",flag:"status",ty:Ty::Str,required:false,help:"Set rule status. Use \"paused\" to stop polling and \"active\" to resume."},Param{name:"tag",flag:"tag",ty:Ty::Str,required:false,help:"Updated label for the filter rule."},Param{name:"webhook_secret",flag:"webhook-secret",ty:Ty::Str,required:false,help:"Updated webhook secret. Set to null to remove."},Param{name:"webhook_url",flag:"webhook-url",ty:Ty::Str,required:false,help:"Updated webhook URL. Set to null to remove webhook delivery."},],has_body:true,summary:"Update filter rule"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules","validate"],leaf_alias:None,method:"POST",path:"/v1/twitter/stream/filter-rules/validate",path_params:&[],query:&[],body:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Twitter Advanced Search query to validate."},],has_body:true,summary:"Validate filter rule query"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","filter-rules-pricing"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/filter-rules-pricing",path_params:&[],query:&[],body:&[],has_body:false,summary:"Get filter rule pricing tiers"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","logs"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/logs",path_params:&[],query:&[Param{name:"monitor_id",flag:"monitor-id",ty:Ty::Str,required:false,help:"Filter logs by stream monitor ID."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for pagination."},Param{name:"page_size",flag:"page-size",ty:Ty::Int,required:false,help:"Number of logs per page."},Param{name:"author_username",flag:"author-username",ty:Ty::Str,required:false,help:"Filter delivery logs by the tweet author's username."},Param{name:"delivery_status",flag:"delivery-status",ty:Ty::Str,required:false,help:"Filter delivery logs by delivery status."},Param{name:"sort",flag:"sort",ty:Ty::Str,required:false,help:"Sort order for delivery logs by time."},],body:&[],has_body:false,summary:"List delivery logs"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","monitors","create"],leaf_alias:None,method:"POST",path:"/v1/twitter/stream/monitors",path_params:&[],query:&[],body:&[Param{name:"filter_types",flag:"filter-types",ty:Ty::Str,required:false,help:"Filter which tweet types to deliver. Null or omitted means all types."},Param{name:"name",flag:"name",ty:Ty::Str,required:true,help:"Human-readable name for the stream monitor."},Param{name:"usernames",flag:"usernames",ty:Ty::StrArray,required:true,help:"List of Twitter usernames to monitor (without @ symbol)."},Param{name:"webhook_secret",flag:"webhook-secret",ty:Ty::Str,required:false,help:"Secret used to sign webhook payloads with HMAC-SHA256."},Param{name:"webhook_url",flag:"webhook-url",ty:Ty::Str,required:false,help:"HTTPS URL to receive webhook deliveries. Must use HTTPS."},],has_body:true,summary:"Create stream monitor"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","monitors","delete"],leaf_alias:None,method:"DELETE",path:"/v1/twitter/stream/monitors/{monitor_id}",path_params:&["monitor_id"],query:&[],body:&[],has_body:false,summary:"Delete stream monitor"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","monitors","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/monitors/{monitor_id}",path_params:&["monitor_id"],query:&[],body:&[],has_body:false,summary:"Get stream monitor"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","monitors","list"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/monitors",path_params:&[],query:&[Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for pagination."},Param{name:"page_size",flag:"page-size",ty:Ty::Int,required:false,help:"Number of monitors per page."},Param{name:"status",flag:"status",ty:Ty::Str,required:false,help:"Filter monitors by status."},],body:&[],has_body:false,summary:"List stream monitors"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","monitors","update"],leaf_alias:None,method:"PATCH",path:"/v1/twitter/stream/monitors/{monitor_id}",path_params:&["monitor_id"],query:&[],body:&[Param{name:"filter_types",flag:"filter-types",ty:Ty::Str,required:false,help:"Updated tweet type filter. Set to null to deliver all types."},Param{name:"name",flag:"name",ty:Ty::Str,required:false,help:"Updated name for the stream monitor."},Param{name:"status",flag:"status",ty:Ty::Str,required:false,help:"Set monitor status. Use \"paused\" to stop monitoring and \"active\" to resume."},Param{name:"usernames",flag:"usernames",ty:Ty::StrArray,required:false,help:"Updated list of Twitter usernames to monitor."},Param{name:"webhook_secret",flag:"webhook-secret",ty:Ty::Str,required:false,help:"Updated webhook secret. Set to null to remove."},Param{name:"webhook_url",flag:"webhook-url",ty:Ty::Str,required:false,help:"Updated webhook URL. Set to null to remove webhook delivery."},],has_body:true,summary:"Update stream monitor"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","webhooks","create"],leaf_alias:None,method:"POST",path:"/v1/twitter/stream/webhooks",path_params:&[],query:&[],body:&[Param{name:"monitor_id",flag:"monitor-id",ty:Ty::Str,required:true,help:"The ID of the stream monitor to attach this webhook to."},Param{name:"secret",flag:"secret",ty:Ty::Str,required:false,help:"Secret used to sign webhook payloads with HMAC-SHA256."},Param{name:"url",flag:"url",ty:Ty::Str,required:true,help:"HTTPS URL to receive webhook deliveries. Must use HTTPS."},],has_body:true,summary:"Create webhook"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","webhooks","delete"],leaf_alias:None,method:"DELETE",path:"/v1/twitter/stream/webhooks/{webhook_id}",path_params:&["webhook_id"],query:&[],body:&[],has_body:false,summary:"Delete webhook"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","webhooks","list"],leaf_alias:None,method:"GET",path:"/v1/twitter/stream/webhooks",path_params:&[],query:&[Param{name:"monitor_id",flag:"monitor-id",ty:Ty::Str,required:false,help:"Filter webhooks by stream monitor ID."},],body:&[],has_body:false,summary:"List webhooks"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","stream","webhooks","test"],leaf_alias:None,method:"POST",path:"/v1/twitter/stream/webhooks/test",path_params:&[],query:&[],body:&[Param{name:"monitor_id",flag:"monitor-id",ty:Ty::Str,required:true,help:"The ID of the stream monitor whose webhook to test."},],has_body:true,summary:"Test webhook"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","trends","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/trends/",path_params:&[],query:&[Param{name:"category",flag:"category",ty:Ty::Str,required:false,help:"Category to filter trends by."},Param{name:"count",flag:"count",ty:Ty::Int,required:false,help:"Number of trends to return."},],body:&[],has_body:false,summary:"Get trending topics"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","trends","place","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/trends/place/{woeid}",path_params:&["woeid"],query:&[],body:&[],has_body:false,summary:"Get trends by location"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","advanced-search"],leaf_alias:Some("advanced_search"),method:"GET",path:"/v1/twitter/tweets/advanced_search",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Search query string. Supports Twitter advanced search operators like `from:`, `to:`, `since:`, `until:`, `min_faves:`, `min_retweets:`, `lang:`, etc."},Param{name:"query_type",flag:"query-type",ty:Ty::Str,required:false,help:"Type of search results to return."},Param{name:"count",flag:"count",ty:Ty::Int,required:false,help:"Number of tweets to return per page."},Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Advanced tweet search"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","article","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/article/{article_id}",path_params:&["article_id"],query:&[],body:&[],has_body:false,summary:"Get article by ID"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/",path_params:&[],query:&[Param{name:"tweets",flag:"tweets",ty:Ty::Str,required:true,help:"Comma-separated list of tweet IDs to retrieve."},],body:&[],has_body:false,summary:"Get tweets by IDs"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","community-notes"],leaf_alias:Some("community_notes"),method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/community_notes",path_params:&["tweet_id"],query:&[],body:&[],has_body:false,summary:"Get community notes"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","edit-history"],leaf_alias:Some("edit_history"),method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/edit_history",path_params:&["tweet_id"],query:&[],body:&[],has_body:false,summary:"Get tweet edit history"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","favoriters"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/favoriters",path_params:&["tweet_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get tweet favoriters"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","get"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}",path_params:&["tweet_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor from a previous response for fetching additional data."},],body:&[],has_body:false,summary:"Get tweet details"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","quotes"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/quotes",path_params:&["tweet_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get tweet quotes"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","replies"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/replies",path_params:&["tweet_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get tweet replies"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","retweeters"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/retweeters",path_params:&["tweet_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get tweet retweeters"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","tweets","tweet","similar"],leaf_alias:None,method:"GET",path:"/v1/twitter/tweets/tweet/{tweet_id}/similar",path_params:&["tweet_id"],query:&[],body:&[],has_body:false,summary:"Get similar tweets"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","articles"],leaf_alias:None,method:"GET",path:"/v1/twitter/users/{user_id}/articles",path_params:&["user_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get user articles"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","batch-by-ids"],leaf_alias:Some("batch_by_ids"),method:"GET",path:"/v1/twitter/users/batch_by_ids",path_params:&[],query:&[Param{name:"user_ids",flag:"user-ids",ty:Ty::Str,required:true,help:"Comma-separated list of numeric user IDs."},],body:&[],has_body:false,summary:"Batch get users by IDs"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","batch-by-usernames"],leaf_alias:Some("batch_by_usernames"),method:"GET",path:"/v1/twitter/users/batch_by_usernames",path_params:&[],query:&[Param{name:"usernames",flag:"usernames",ty:Ty::Str,required:true,help:"Comma-separated list of usernames (without the @ symbol)."},],body:&[],has_body:false,summary:"Batch get users by usernames"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","by-id"],leaf_alias:Some("by_id"),method:"GET",path:"/v1/twitter/users/{user_id}/by_id",path_params:&["user_id"],query:&[],body:&[],has_body:false,summary:"Get user by ID"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","by-username"],leaf_alias:Some("by_username"),method:"GET",path:"/v1/twitter/users/{username}/by_username",path_params:&["username"],query:&[],body:&[],has_body:false,summary:"Get user by username"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","followers"],leaf_alias:None,method:"GET",path:"/v1/twitter/users/{username}/followers",path_params:&["username"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get user followers"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","followings"],leaf_alias:None,method:"GET",path:"/v1/twitter/users/{username}/followings",path_params:&["username"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get user following"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","latest-tweets"],leaf_alias:Some("latest_tweets"),method:"GET",path:"/v1/twitter/users/{username}/latest_tweets",path_params:&["username"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get user tweets"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","mentions"],leaf_alias:None,method:"GET",path:"/v1/twitter/users/{username}/mentions",path_params:&["username"],query:&[Param{name:"count",flag:"count",ty:Ty::Int,required:false,help:"Number of tweets to return per page."},Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get user mentions"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","search-users"],leaf_alias:Some("search_users"),method:"GET",path:"/v1/twitter/users/search_users",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Search query to match against usernames, display names, and bios."},Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Search users"},
    Endpoint{platform:"twitter",path_cmd:&["twitter","users","subscriptions"],leaf_alias:None,method:"GET",path:"/v1/twitter/users/{user_id}/subscriptions",path_params:&["user_id"],query:&[Param{name:"cursor",flag:"cursor",ty:Ty::Str,required:false,help:"Pagination cursor for fetching the next page of results."},],body:&[],has_body:false,summary:"Get user subscriptions"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","brands"],leaf_alias:None,method:"GET",path:"/v1/vinted/brands",path_params:&[],query:&[Param{name:"keyword",flag:"keyword",ty:Ty::Str,required:true,help:"Brand name to search for. Partial matches are supported."},Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market to search brands in."},],body:&[],has_body:false,summary:"Search Brands"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","colors"],leaf_alias:None,method:"GET",path:"/v1/vinted/colors",path_params:&[],query:&[Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market. Color names are localized to the market language."},],body:&[],has_body:false,summary:"List Colors"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","items","get"],leaf_alias:None,method:"GET",path:"/v1/vinted/items/{item_id}",path_params:&["item_id"],query:&[Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market where the item is listed (e.g. fr, de, uk)."},],body:&[],has_body:false,summary:"Get Item Details"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","markets"],leaf_alias:None,method:"GET",path:"/v1/vinted/markets",path_params:&[],query:&[],body:&[],has_body:false,summary:"List Markets"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","search"],leaf_alias:None,method:"GET",path:"/v1/vinted/search",path_params:&[],query:&[Param{name:"query",flag:"query",ty:Ty::Str,required:true,help:"Search query string. Matches against item titles and descriptions."},Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market to search (e.g. fr, de, uk, it, es, pl, us)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated results."},Param{name:"per_page",flag:"per-page",ty:Ty::Int,required:false,help:"Number of items per page."},Param{name:"price_from",flag:"price-from",ty:Ty::Num,required:false,help:"Minimum price filter in the market's local currency."},Param{name:"price_to",flag:"price-to",ty:Ty::Num,required:false,help:"Maximum price filter in the market's local currency."},Param{name:"brand_ids",flag:"brand-ids",ty:Ty::Str,required:false,help:"Comma-separated list of brand IDs to filter by."},Param{name:"color_ids",flag:"color-ids",ty:Ty::Str,required:false,help:"Comma-separated list of color IDs to filter by."},Param{name:"status_ids",flag:"status-ids",ty:Ty::Str,required:false,help:"Comma-separated list of condition status IDs to filter by."},Param{name:"order",flag:"order",ty:Ty::Str,required:false,help:"Sort order for results."},],body:&[],has_body:false,summary:"Search Items"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","statuses"],leaf_alias:None,method:"GET",path:"/v1/vinted/statuses",path_params:&[],query:&[Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market. Status names are localized to the market language."},],body:&[],has_body:false,summary:"List Conditions"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","users","get"],leaf_alias:None,method:"GET",path:"/v1/vinted/users/{user_id}",path_params:&["user_id"],query:&[Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market where the user is registered (e.g. fr, de, uk)."},],body:&[],has_body:false,summary:"Get User Profile"},
    Endpoint{platform:"vinted",path_cmd:&["vinted","users","items"],leaf_alias:None,method:"GET",path:"/v1/vinted/users/{user_id}/items",path_params:&["user_id"],query:&[Param{name:"market",flag:"market",ty:Ty::Str,required:false,help:"Vinted market where the user is registered (e.g. fr, de, uk)."},Param{name:"page",flag:"page",ty:Ty::Int,required:false,help:"Page number for paginated results."},Param{name:"per_page",flag:"per-page",ty:Ty::Int,required:false,help:"Number of items per page."},],body:&[],has_body:false,summary:"Get User Items"},
    Endpoint{platform:"web",path_cmd:&["web","detect"],leaf_alias:None,method:"POST",path:"/v1/web/detect",path_params:&[],query:&[],body:&[Param{name:"country",flag:"country",ty:Ty::Str,required:false,help:"ISO 3166-1 alpha-2 country code for proxy geo-targeting."},Param{name:"timeout",flag:"timeout",ty:Ty::Int,required:false,help:"Request timeout in milliseconds."},Param{name:"url",flag:"url",ty:Ty::Str,required:true,help:"The URL to analyze."},],has_body:true,summary:"Detect Protection"},
    Endpoint{platform:"web",path_cmd:&["web","scrape"],leaf_alias:None,method:"POST",path:"/v1/web/scrape",path_params:&[],query:&[],body:&[Param{name:"ai_extract",flag:"ai-extract",ty:Ty::Bool,required:false,help:"Run AI extraction on scraped content."},Param{name:"ai_prompt",flag:"ai-prompt",ty:Ty::Str,required:false,help:"Natural language instruction for AI extraction."},Param{name:"anti_bot",flag:"anti-bot",ty:Ty::Bool,required:false,help:"Attempt anti-bot bypass when blocking detected."},Param{name:"country",flag:"country",ty:Ty::Str,required:false,help:"ISO 3166-1 alpha-2 country code for proxy geo-targeting."},Param{name:"engine",flag:"engine",ty:Ty::Str,required:false,help:"Scraping engine tier to use."},Param{name:"escalate",flag:"escalate",ty:Ty::Bool,required:false,help:"Allow auto-escalation to stronger engines."},Param{name:"format",flag:"format",ty:Ty::Str,required:false,help:"Output format for the scraped content."},Param{name:"max_cost",flag:"max-cost",ty:Ty::Int,required:false,help:"Maximum credits budget for this request."},Param{name:"render_js",flag:"render-js",ty:Ty::Bool,required:false,help:"Force JavaScript rendering."},Param{name:"retry_count",flag:"retry-count",ty:Ty::Int,required:false,help:"Max retry attempts on blocking detection."},Param{name:"retry_on_block",flag:"retry-on-block",ty:Ty::Bool,required:false,help:"Auto-retry on blocking page detection."},Param{name:"screenshot",flag:"screenshot",ty:Ty::Bool,required:false,help:"Capture a full-page PNG screenshot."},Param{name:"session_id",flag:"session-id",ty:Ty::Str,required:false,help:"Persist cookies and state across requests."},Param{name:"url",flag:"url",ty:Ty::Str,required:true,help:"The URL to scrape. Must be a valid HTTP or HTTPS URL."},Param{name:"video",flag:"video",ty:Ty::Bool,required:false,help:"Record browser session as animated GIF (+3 credits)."},Param{name:"wait_after_load",flag:"wait-after-load",ty:Ty::Int,required:false,help:"Additional ms to wait after page load."},Param{name:"wait_for",flag:"wait-for",ty:Ty::Str,required:false,help:"CSS selector or XPath to wait for before extracting."},Param{name:"wait_timeout",flag:"wait-timeout",ty:Ty::Int,required:false,help:"Max wait time in ms for wait_for selector."},],has_body:true,summary:"Scrape URL"},
];