{"openapi":"3.1.0","info":{"title":"PrismCrawl API","version":"1.0.0","summary":"Live Google, Google Maps, Bing, and Amazon results as structured data.","description":"Search Google, Google Maps, Bing, and Amazon and get normalized JSON; search endpoints can also return source HTML. Each successful search consumes one credit; failed searches do not consume credits.","contact":{"name":"PrismCrawl support","email":"support@prismcrawl.com"}},"servers":[{"url":"https://api.prismcrawl.com","description":"PrismCrawl API"}],"tags":[{"name":"Search","description":"Retrieve a live Google, Bing, or Amazon search results page."},{"name":"Maps","description":"Retrieve live Google Maps places from coordinate-centered searches."},{"name":"History","description":"Inspect request metadata and retrieve archived search artifacts."}],"externalDocs":{"description":"PrismCrawl website","url":"https://www.prismcrawl.com"},"paths":{"/v1/google/search":{"post":{"tags":["Search"],"summary":"Search Google","description":"Returns normalized Google results, or encoded source HTML.","operationId":"searchGoogle","security":[{"ApiToken":[]}],"requestBody":{"required":true,"description":"**Successful query:** 1 credit. Errors are free. Optional parameters may be omitted or set to `null` to use the endpoint default. Only parameters documented for this endpoint are used; other top-level fields are ignored.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleSearchRequest"},"examples":{"json":{"summary":"Normalized JSON results","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null}},"domain":{"summary":"Search a specific Google domain","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.co.uk","gl":"gb","hl":"en-GB","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null}},"location":{"summary":"Search from a named location","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":"Austin,Texas,United States","coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null}},"coordinates":{"summary":"Search from precise coordinates","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":{"latitude":30.2672,"longitude":-97.7431},"radius":null,"tbs":null,"tbm":null,"udm":null}},"timeRange":{"summary":"Limit results by time range","value":{"query":"artificial intelligence","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":"qdr:w","tbm":null,"udm":null}},"news":{"summary":"Search the Google News tab","value":{"query":"artificial intelligence","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":"nws","udm":null}},"webOnly":{"summary":"Search Google's Web tab","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":14}},"radius":{"summary":"Bias results around coordinates","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":{"latitude":30.2672,"longitude":-97.7431},"radius":150,"tbs":null,"tbm":null,"udm":null}},"controls":{"summary":"Restrict country and result language","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":"active","color_scheme":"dark","nfpr":1,"filter":0,"lr":"lang_fr","cr":"countryFR","start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null}},"html":{"summary":"Source HTML","value":{"query":"best espresso machines","html":true,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null}},"zeroTrace":{"summary":"Do not archive HTML or JSON","value":{"query":"best espresso machines","html":false,"zero_trace":true,"device":null,"safe":null,"color_scheme":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"start":0,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null}}}}}},"responses":{"200":{"description":"Search completed.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/GoogleJsonSearchResponse"},{"$ref":"#/components/schemas/GoogleHtmlSearchResponse"}]},"examples":{"json":{"summary":"Normalized JSON results","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"json","content":{"search_parameters":{"q":"best espresso machines","type":"search","engine":"google","device":null,"start":null,"google_domain":"google.com","gl":"us","hl":"en-US","location":null,"coordinates":null,"radius":null,"tbs":null,"tbm":null,"udm":null,"safe":null,"nfpr":null,"filter":null,"lr":null,"cr":null,"color_scheme":null},"has_next_page":true,"results":[{"id":"s_972c538a8734a8b7","rank":1,"type":"organic","title":"The 14 Best Espresso Machines, Tested & Reviewed","url":"https://www.seriouseats.com/best-espresso-machines-5185482","display_url":"seriouseats.com › best-espresso-machines-5185482","snippet":"Our favorite espresso machine is the Breville Bambino Plus.","domain":"seriouseats.com","favicon":"https://seriouseats.com/favicon.ico","source_name":"Serious Eats","position":{"absolute":1},"engine":"google","domain_info":{"tld":"com","sld":"seriouseats","category":null},"classification":null}],"serp_features":[{"id":"f_5236e4e73b2337d4","engine":"google","type":"people_also_ask","title":"People also ask","text":null,"items":[{"title":"Which espresso machine brand is most reliable?","text":"Which espresso machine brand is most reliable?","link":null}],"links":[],"source_result_ids":["s_972c538a8734a8b7"],"position":{"absolute":1},"confidence":0.8,"extracted_at":"2026-07-01T16:45:24Z"}]}}}},"html":{"summary":"Encoded source HTML","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"html+br+base64","content":"G+4AAETbN..."}}}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"The API token has no credits remaining.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"credits_exhausted","message":"no credits remaining"}}}}},"405":{"description":"Only POST is supported for this endpoint.","headers":{"Allow":{"schema":{"type":"string","const":"POST"}},"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"The JSON request body exceeds 64 KiB.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"quota_exceeded","message":"rate limit exceeded","rule":"10s","reset_at":"2026-07-15T18:42:10Z"}}}}},"500":{"$ref":"#/components/responses/ServiceFailure"}}}},"/v1/google/maps/search":{"post":{"tags":["Maps"],"summary":"Search Google Maps","description":"Returns up to 20 normalized Google Maps places from a coordinate-centered viewport.","operationId":"searchGoogleMaps","security":[{"ApiToken":[]}],"requestBody":{"required":true,"description":"**Successful query:** 1 credit. Errors are free. Optional parameters may be omitted or set to `null` to use the endpoint default. Only parameters documented for this endpoint are used; other top-level fields are ignored.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsSearchRequest"},"examples":{"nearby":{"summary":"Search a map viewport","value":{"query":"coffee shop","zero_trace":false,"coordinates":{"latitude":30.2672,"longitude":-97.7431},"zoom":13.1,"start":0,"gl":"us","hl":"en-US"}},"nextPage":{"summary":"Retrieve the next 20 places","value":{"query":"coffee shop","zero_trace":false,"coordinates":{"latitude":30.2672,"longitude":-97.7431},"zoom":13.1,"start":20,"gl":"us","hl":"en-US"}},"zeroTrace":{"summary":"Do not archive the JSON response","value":{"query":"coffee shop","zero_trace":true,"coordinates":{"latitude":30.2672,"longitude":-97.7431},"zoom":13.1,"start":0,"gl":"us","hl":"en-US"}}}}}},"responses":{"200":{"description":"Google Maps search completed.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsSearchResponse"},"examples":{"json":{"summary":"Normalized Google Maps results","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"json","content":{"search_parameters":{"q":"coffee shop","type":"maps","engine":"google_maps","start":0,"gl":"us","hl":"en-US","coordinates":{"latitude":30.2672,"longitude":-97.7431},"zoom":13.1},"has_next_page":true,"results":[{"id":"m_a7d14f4d349d5971","rank":1,"type":"place","title":"Terrible Love","place_id":"ChIJP8p2kJC1RIYR2qrGoXZtZCk","data_id":"0x8644b5909076ca3f:0x29646d76a1c6aada","data_cid":"2982629209513831130","kgmid":"/g/11ng70tdrd","google_maps_url":"https://www.google.com/maps/search/?api=1&query=coffee+shop&query_place_id=ChIJP8p2kJC1RIYR2qrGoXZtZCk","reviews_link":"https://search.google.com/local/reviews?placeid=ChIJP8p2kJC1RIYR2qrGoXZtZCk&q=coffee+shop&hl=en-US&gl=US","address":"3908 Avenue B, Austin, TX 78751","structured_address":{"neighborhood":"Hyde Park","street":"3908 Avenue B","city":"Austin","postal_code":"78751","state":"Texas","country":"US"},"phone":null,"phone_international":null,"website":"http://terriblelovecoffee.com/","domain":"terriblelovecoffee.com","category":"Coffee shop","category_id":"coffee","categories":["Coffee shop","Coffee stand"],"rating":4.9,"reviews":328,"price":null,"gps_coordinates":{"latitude":30.3045132,"longitude":-97.735632},"service_area":false,"plus_code":{"global_code":"8642F62R+38","compound_code":"F62R+38 Austin, Texas"},"open_state":"Closed","hours":"Closed · Opens 7:30 AM Fri","operating_hours":{"thursday":["7:30 AM–2 PM"]},"secondary_operating_hours":{},"description":null,"snippet":"Dogs allowed","review_snippets":[{"text":"Great coffee and a welcoming patio.","rating":5}],"popular_times":{"thursday":[{"hour":9,"busyness_percent":75,"description":"Usually a little busy","time":"9 AM"}]},"thumbnail":"https://lh3.googleusercontent.com/example=w408-h544-k-no","timezone":"America/Chicago","claimed":true,"order_online_link":null,"reservations_link":null,"booking_link":null,"hotel_class":null,"check_in_time":null,"check_out_time":null,"amenities":[],"highlights":["LGBTQ+ friendly"],"attributes":[{"id":"accessibility","name":"Accessibility","options":[{"name":"Wheelchair accessible entrance","enabled":true}]}]}],"serp_features":[]}}}}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"The API token has no credits remaining.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"credits_exhausted","message":"no credits remaining"}}}}},"405":{"description":"Only POST is supported for this endpoint.","headers":{"Allow":{"schema":{"type":"string","const":"POST"}},"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"The JSON request body exceeds 64 KiB.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"quota_exceeded","message":"rate limit exceeded","rule":"10s","reset_at":"2026-07-15T18:42:10Z"}}}}},"500":{"$ref":"#/components/responses/ServiceFailure"}}}},"/v1/microsoft/search":{"post":{"tags":["Search"],"summary":"Search Bing","description":"Returns normalized Bing results, or encoded source HTML.","operationId":"searchMicrosoft","security":[{"ApiToken":[]}],"requestBody":{"required":true,"description":"**Successful query:** 1 credit. Errors are free. Optional parameters may be omitted or set to `null` to use the endpoint default. Only parameters documented for this endpoint are used; other top-level fields are ignored.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MicrosoftSearchRequest"},"examples":{"json":{"summary":"Normalized Bing JSON results","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"sp":null,"first":1,"next_page_token":null,"cc":"us","setlang":"en-US","tbs":null}},"site":{"summary":"Limit results with a Bing operator","value":{"query":"surface laptop site:microsoft.com","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"sp":null,"first":1,"next_page_token":null,"cc":"us","setlang":"en-US","tbs":null}},"timeRange":{"summary":"Limit Bing results by time range","value":{"query":"artificial intelligence","html":false,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"sp":null,"first":1,"next_page_token":null,"cc":"us","setlang":"en-US","tbs":"qdr:w"}},"controls":{"summary":"Configure safe search and page theme","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"safe":"active","color_scheme":"dark","sp":-1,"first":1,"next_page_token":null,"cc":"us","setlang":"en-US","tbs":null}},"html":{"summary":"Source HTML","value":{"query":"best espresso machines","html":true,"zero_trace":false,"device":null,"safe":null,"color_scheme":null,"sp":null,"first":1,"next_page_token":null,"cc":"us","setlang":"en-US","tbs":null}},"zeroTrace":{"summary":"Do not archive HTML or JSON","value":{"query":"best espresso machines","html":false,"zero_trace":true,"device":null,"safe":null,"color_scheme":null,"sp":null,"first":1,"next_page_token":null,"cc":"us","setlang":"en-US","tbs":null}},"nextPage":{"summary":"Continue to Bing's next native page","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":"mobile","safe":null,"color_scheme":null,"sp":null,"first":6,"next_page_token":"{\"version\":1,\"url\":\"https://www.bing.com/search?q=best%20espresso%20machines&first=6\",\"referer\":\"https://www.bing.com/search?q=best%20espresso%20machines\",\"first\":6,\"progressive\":false,\"query\":\"best espresso machines\",\"device\":\"mobile\",\"cc\":\"us\",\"setlang\":\"en-US\"}","cc":"us","setlang":"en-US","tbs":null}}}}}},"responses":{"200":{"description":"Search completed.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/MicrosoftJsonSearchResponse"},{"$ref":"#/components/schemas/MicrosoftHtmlSearchResponse"}]},"examples":{"json":{"summary":"Normalized Bing JSON results","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"json","next_page_token":"{\"version\":1,\"url\":\"https://www.bing.com/search?q=best%20espresso%20machines&first=6\",\"referer\":\"https://www.bing.com/search?q=best%20espresso%20machines\",\"first\":6,\"progressive\":false,\"query\":\"best espresso machines\",\"device\":\"mobile\",\"cc\":\"us\",\"setlang\":\"en-US\"}","content":{"search_parameters":{"q":"best espresso machines","type":"search","engine":"bing","device":null,"first":null,"cc":"us","setlang":"en-US","tbs":null,"safe":null,"sp":null,"color_scheme":null},"has_next_page":true,"results":[{"id":"s_129cad18eb11c90a","rank":1,"type":"organic","title":"The Best Espresso Machines","url":"https://example.com/best-espresso-machines","display_url":"example.com › best-espresso-machines","snippet":"Independent reviews of leading espresso machines.","domain":"example.com","favicon":"https://example.com/favicon.ico","source_name":"Example","position":{"absolute":1},"engine":"bing","domain_info":{"tld":"com","sld":"example","category":null},"classification":null}],"serp_features":[]}}}},"html":{"summary":"Encoded source HTML","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"html+br+base64","content":"G+4AAETbN...","next_page_token":"{\"version\":1,\"url\":\"https://www.bing.com/search?q=best%20espresso%20machines&first=6\",\"referer\":\"https://www.bing.com/search?q=best%20espresso%20machines\",\"first\":6,\"progressive\":false,\"query\":\"best espresso machines\",\"device\":\"mobile\",\"cc\":\"us\",\"setlang\":\"en-US\"}"}}}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"The API token has no credits remaining.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"credits_exhausted","message":"no credits remaining"}}}}},"405":{"description":"Only POST is supported for this endpoint.","headers":{"Allow":{"schema":{"type":"string","const":"POST"}},"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"The JSON request body exceeds 64 KiB.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"quota_exceeded","message":"rate limit exceeded","rule":"10s","reset_at":"2026-07-15T18:42:10Z"}}}}},"500":{"$ref":"#/components/responses/ServiceFailure"}}}},"/v1/amazon/search":{"post":{"tags":["Search"],"summary":"Search Amazon","description":"Returns normalized Amazon product results, a typed navigation or empty-results surface, or encoded source HTML.","operationId":"searchAmazon","security":[{"ApiToken":[]}],"requestBody":{"required":true,"description":"**Successful query:** 1 credit. Errors are free. Optional parameters may be omitted or set to `null` to use the endpoint default. Only parameters documented for this endpoint are used; other top-level fields are ignored.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmazonSearchRequest"},"examples":{"json":{"summary":"Normalized Amazon product results","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"amazon_domain":"amazon.com","language":null,"page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false}},"marketplace":{"summary":"Search another Amazon marketplace","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"amazon_domain":"amazon.co.uk","language":"en_GB","page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false}},"refinements":{"summary":"Apply category, sort, and refinement controls","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"amazon_domain":"amazon.com","language":null,"page":1,"category_id":"16310101","sort_by":"average_review","rh":"p_72:1248897011,p_123:660401","merchant_id":null,"direct_search":false}},"merchant":{"summary":"Restrict results to a merchant","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"amazon_domain":"amazon.com","language":null,"page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":"A1SELLER","direct_search":true}},"nextPage":{"summary":"Retrieve another results page","value":{"query":"best espresso machines","html":false,"zero_trace":false,"device":null,"amazon_domain":"amazon.com","language":null,"page":2,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false}},"html":{"summary":"Source HTML","value":{"query":"best espresso machines","html":true,"zero_trace":false,"device":null,"amazon_domain":"amazon.com","language":null,"page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false}},"zeroTrace":{"summary":"Do not archive HTML or JSON","value":{"query":"best espresso machines","html":false,"zero_trace":true,"device":null,"amazon_domain":"amazon.com","language":null,"page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false}}}}}},"responses":{"200":{"description":"Search completed.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AmazonJsonSearchResponse"},{"$ref":"#/components/schemas/AmazonHtmlSearchResponse"}]},"examples":{"json":{"summary":"Normalized Amazon product results","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"json","content":{"search_parameters":{"q":"best espresso machines","type":"search","engine":"amazon","device":"desktop","amazon_domain":"amazon.com","language":"en_US","page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false},"search_information":{"surface":"product_results","page_title":"Amazon.com : best espresso machines","total_results":1247,"results_text":"1-48 of 1,247 results","query_displayed":"best espresso machines","original_query":null,"page":1,"total_pages":7,"store":"aps"},"results":[{"asin":"B0D1234567","rank":1,"type":"organic","sponsored":false,"title":"Compact Espresso Machine","url":"https://www.amazon.com/example/dp/B0D1234567","clean_url":"https://www.amazon.com/dp/B0D1234567","image":"https://m.media-amazon.com/images/example.jpg","price":{"raw":"$199.99","value":199.99,"currency":"USD"},"old_price":null,"unit_price":null,"rating":4.6,"reviews":2318,"prime":true,"best_seller":true,"amazon_choice":false,"limited_time_deal":false,"amazon_brand":false,"kindle_unlimited":false,"prime_video":false,"exclusive_to_amazon":false,"small_business":false,"amazon_fresh":false,"whole_foods_market":false,"climate_pledge_friendly":false,"badges":["Best Seller"],"bought_last_month":"1K+ bought in past month","coupon":null,"offers":[],"delivery":"FREE delivery Tomorrow","availability":null,"variations":null,"tags":[],"position":{"absolute":1}}],"filters":[],"categories":[],"related_searches":[],"has_next_page":true,"serp_features":[]}}}},"navigation":{"summary":"Amazon navigation page","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"json","content":{"search_parameters":{"q":"prime video","type":"search","engine":"amazon","device":"desktop","amazon_domain":"amazon.com","language":"en_US","page":1,"category_id":null,"sort_by":null,"rh":null,"merchant_id":null,"direct_search":false},"search_information":{"surface":"navigation","page_title":"Amazon.com : prime video","total_results":null,"results_text":null,"query_displayed":"prime video","original_query":null,"page":1,"total_pages":null,"store":null},"results":[],"filters":[],"categories":[],"related_searches":[],"has_next_page":false,"serp_features":[]}}}},"html":{"summary":"Encoded Amazon source HTML","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"format":"html+br+base64","content":"G+4AAETbN..."}}}}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"The API token has no credits remaining.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"credits_exhausted","message":"no credits remaining"}}}}},"405":{"description":"Only POST is supported for this endpoint.","headers":{"Allow":{"schema":{"type":"string","const":"POST"}},"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"The JSON request body exceeds 64 KiB.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"X-Credits-Remaining":{"$ref":"#/components/headers/CreditsRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"quota_exceeded","message":"rate limit exceeded","rule":"10s","reset_at":"2026-07-15T18:42:10Z"}}}}},"500":{"$ref":"#/components/responses/ServiceFailure"}}}},"/v1/google/search/{request_id}":{"get":{"tags":["History"],"summary":"Retrieve a Google request","description":"Returns request metadata by default. Set `artifact=json` to download the parsed response or `artifact=html` to download the Brotli-compressed source HTML. For a `zero_trace` request, no artifacts exist and the metadata response contains only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged.","operationId":"getGoogleRequest","security":[{"ApiToken":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"artifact","in":"query","required":false,"schema":{"type":"string","enum":["html","json"]}}],"responses":{"200":{"description":"Request metadata or the selected archived artifact.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"$ref":"#/components/schemas/ZeroTraceHistoryResponse"}]},"examples":{"zeroTrace":{"summary":"Zero-trace request metadata","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"type":"ZERO_TRACE","status_code":200,"credits_charged":true}}}}},"text/html":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"The request or selected archive does not belong to this API key or is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"The request-history rate limit was exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/google/maps/search/{request_id}":{"get":{"tags":["History"],"summary":"Retrieve a Google Maps request","description":"Returns request metadata by default. Set `artifact=json` to download the normalized response. For a `zero_trace` request, no artifacts exist and the metadata response contains only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged.","operationId":"getGoogleMapsRequest","security":[{"ApiToken":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"artifact","in":"query","required":false,"schema":{"type":"string","enum":["json"]}}],"responses":{"200":{"description":"Request metadata or the selected archived artifact.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"$ref":"#/components/schemas/ZeroTraceHistoryResponse"}]},"examples":{"zeroTrace":{"summary":"Zero-trace request metadata","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"type":"ZERO_TRACE","status_code":200,"credits_charged":true}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"The request or selected archive does not belong to this API key or is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"The request-history rate limit was exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/microsoft/search/{request_id}":{"get":{"tags":["History"],"summary":"Retrieve a Bing request","description":"Returns request metadata by default. Set `artifact=json` to download the parsed response or `artifact=html` to download the Brotli-compressed source HTML. For a `zero_trace` request, no artifacts exist and the metadata response contains only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged.","operationId":"getBingRequest","security":[{"ApiToken":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"artifact","in":"query","required":false,"schema":{"type":"string","enum":["html","json"]}}],"responses":{"200":{"description":"Request metadata or the selected archived artifact.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"$ref":"#/components/schemas/ZeroTraceHistoryResponse"}]},"examples":{"zeroTrace":{"summary":"Zero-trace request metadata","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"type":"ZERO_TRACE","status_code":200,"credits_charged":true}}}}},"text/html":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"The request or selected archive does not belong to this API key or is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"The request-history rate limit was exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/amazon/search/{request_id}":{"get":{"tags":["History"],"summary":"Retrieve a Amazon request","description":"Returns request metadata by default. Set `artifact=json` to download the parsed response or `artifact=html` to download the Brotli-compressed source HTML. For a `zero_trace` request, no artifacts exist and the metadata response contains only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged.","operationId":"getAmazonRequest","security":[{"ApiToken":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"artifact","in":"query","required":false,"schema":{"type":"string","enum":["html","json"]}}],"responses":{"200":{"description":"Request metadata or the selected archived artifact.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"$ref":"#/components/schemas/ZeroTraceHistoryResponse"}]},"examples":{"zeroTrace":{"summary":"Zero-trace request metadata","value":{"success":true,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":{"type":"ZERO_TRACE","status_code":200,"credits_charged":true}}}}},"text/html":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"The request or selected archive does not belong to this API key or is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"The request-history rate limit was exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"securitySchemes":{"ApiToken":{"type":"apiKey","in":"header","name":"x-api-key","description":"Create or rotate your API token in the PrismCrawl dashboard."}},"headers":{"RequestId":{"description":"Unique request identifier. Include it when contacting support.","schema":{"type":"string","format":"uuid"}},"CreditsRemaining":{"description":"Search credits remaining after this request.","schema":{"type":"integer","minimum":0}}},"responses":{"InvalidRequest":{"description":"The JSON body is invalid or a field has the wrong type.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"invalid_request","message":"query is required"}}}}},"Unauthorized":{"description":"The API token is missing, invalid, expired, or revoked.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"missing":{"summary":"Missing API token","value":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"missing_api_key","message":"missing x-api-key"}}},"invalid":{"summary":"Invalid API token","value":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"invalid_api_key","message":"invalid api key"}}}}}}},"ServiceFailure":{"description":"The search could not be completed. No quota has been deducted; retry the request or contact support with the request ID.","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"success":false,"request_id":"66ca8deb-1dc2-4017-865f-c4fb0e3c7c0d","data":null,"error":{"code":"internal_failure","message":"request failed. no quota has been deducted, please try again or contact support with the request ID."}}}}}},"schemas":{"GoogleMapsSearchRequest":{"type":"object","required":["query","coordinates"],"properties":{"query":{"type":"string","minLength":1,"maxLength":8192,"x-max-utf8-bytes":8192,"description":"A place, business, product, or category query to search on Google Maps.","examples":["coffee shop"]},"zero_trace":{"type":["boolean","null"],"default":false,"description":"When true, PrismCrawl does not store the normalized JSON response. Audit and billing metadata is retained, but all other data is permanently discarded. Request history exposes only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged."},"coordinates":{"allOf":[{"$ref":"#/components/schemas/Coordinates"}],"description":"Required map center."},"zoom":{"type":["number","null"],"format":"double","minimum":3,"maximum":21,"default":13.1,"examples":[13.1],"description":"Google Maps viewport zoom. Lower values cover a wider area; higher values focus more tightly around coordinates."},"start":{"type":["integer","null"],"minimum":0,"multipleOf":20,"default":0,"examples":[20],"description":"Zero-based Maps result offset. Use multiples of 20 for successive 20-place pages."},"gl":{"type":["string","null"],"default":"us","enum":["ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bl","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cs","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mf","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw",null],"description":"Two-letter Google country hint. Case-insensitive."},"hl":{"type":["string","null"],"default":"en-US","enum":["af","sq","am","ar","hy","az","bn","bg","my","ca","zh-CN","zh-TW","hr","cs","da","nl","en-GB","en","en-US","et","fil","fi","fr-CA","fr","ka","de","el","gu","iw","he","hi","hu","is","id","it","ja","kn","kk","km","ko","ky","lo","lv","lt","mk","ms","ml","mr","mn","ne","no","fa","pl","pt-BR","pt-PT","pa","ro","ru","sr-Latn","sr","si","sk","sl","es-419","es","sw","sv","ta","te","th","tr","uk","ur","uz","vi","cy",null],"description":"Google Maps interface language. Case-insensitive."}}},"GoogleSearchRequest":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":8192,"x-max-utf8-bytes":8192,"description":"The search query. The UTF-8 representation must not exceed 8,192 bytes; non-ASCII characters may use more than one byte.","examples":["best espresso machines"]},"html":{"type":["boolean","null"],"default":false,"description":"Return Brotli-compressed, Base64-encoded source HTML instead of normalized JSON."},"zero_trace":{"type":["boolean","null"],"default":false,"description":"When true, PrismCrawl does not store the source HTML or parsed JSON. Audit and billing metadata is retained, but all other data is permanently discarded. Request history exposes only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged."},"device":{"type":["string","null"],"enum":["mobile","tablet","desktop",null],"description":"Search as a mobile, tablet, or desktop device."},"safe":{"type":["string","null"],"enum":["active","off",null],"description":"Safe-search mode. `active` enables Google's filtering and Bing Strict SafeSearch; `off` requests unfiltered results. Search providers may still suppress content required by law or policy."},"color_scheme":{"type":["string","null"],"enum":["light","dark",null],"description":"Request the provider's light or dark result-page theme. This affects source-page presentation, not ranking, and providers may ignore it."},"nfpr":{"type":["integer","null"],"enum":[0,1,null],"description":"Controls Google query correction. `1` asks Google to search the submitted query without automatic spelling correction; `0` keeps normal correction behavior."},"filter":{"type":["integer","null"],"enum":[0,1,null],"description":"Requests Google duplicate-result filtering (`1`) or disables it (`0`). Google documents this behavior for Programmable Search, but does not guarantee it for the consumer HTML endpoint used here."},"lr":{"type":["string","null"],"pattern":"^lang_[a-z]{2,3}(\\|lang_[a-z]{2,3})*$","examples":["lang_fr","lang_fr|lang_de"],"description":"Restrict Google result documents by language using `lang_<code>` syntax. Join alternatives with `|`, for example `lang_fr|lang_de`."},"cr":{"type":["string","null"],"pattern":"^country[A-Za-z]{2}(\\|country[A-Za-z]{2})*$","examples":["countryFR","countryUS|countryCA"],"description":"Restrict Google result documents by country using `country<CC>` syntax. Join alternatives with `|`, for example `countryUS|countryCA`."},"start":{"type":["integer","null"],"minimum":0,"examples":[10],"description":"Zero-based result offset. Off-grid values are accepted."},"google_domain":{"type":["string","null"],"default":"google.com","enum":["google.com","google.ad","google.ae","google.com.af","google.com.ag","google.al","google.am","google.co.ao","google.com.ar","google.as","google.at","google.com.au","google.az","google.ba","google.com.bd","google.be","google.bf","google.bg","google.com.bh","google.bi","google.bj","google.com.bn","google.com.bo","google.com.br","google.bs","google.bt","google.co.bw","google.by","google.com.bz","google.ca","google.cd","google.cf","google.cg","google.ch","google.ci","google.co.ck","google.cl","google.cm","google.com.co","google.co.cr","google.com.cu","google.cv","google.com.cy","google.cz","google.de","google.dj","google.dk","google.dm","google.com.do","google.dz","google.com.ec","google.ee","google.com.eg","google.es","google.com.et","google.fi","google.com.fj","google.fm","google.fr","google.ga","google.ge","google.gg","google.com.gh","google.com.gi","google.gl","google.gm","google.gr","google.com.gt","google.gy","google.com.hk","google.hn","google.hr","google.ht","google.hu","google.co.id","google.ie","google.co.il","google.im","google.co.in","google.iq","google.is","google.it","google.je","google.com.jm","google.jo","google.co.jp","google.co.ke","google.com.kh","google.ki","google.kg","google.co.kr","google.com.kw","google.kz","google.la","google.com.lb","google.li","google.lk","google.co.ls","google.lt","google.lu","google.lv","google.com.ly","google.co.ma","google.md","google.me","google.mg","google.mk","google.ml","google.com.mm","google.mn","google.com.mt","google.mu","google.mv","google.mw","google.com.mx","google.com.my","google.co.mz","google.com.na","google.com.ng","google.com.ni","google.ne","google.nl","google.no","google.com.np","google.nr","google.nu","google.co.nz","google.com.om","google.com.pa","google.com.pe","google.com.pg","google.com.ph","google.com.pk","google.pl","google.pn","google.com.pr","google.ps","google.pt","google.com.py","google.com.qa","google.ro","google.ru","google.rw","google.com.sa","google.com.sb","google.sc","google.se","google.com.sg","google.sh","google.si","google.sk","google.com.sl","google.sn","google.so","google.sm","google.sr","google.st","google.com.sv","google.td","google.tg","google.co.th","google.com.tj","google.tl","google.tm","google.tn","google.to","google.com.tr","google.tt","google.com.tw","google.co.tz","google.com.ua","google.co.ug","google.co.uk","google.com.uy","google.co.uz","google.com.vc","google.co.ve","google.co.vi","google.com.vn","google.vu","google.ws","google.rs","google.co.za","google.co.zm","google.co.zw","google.cat",null],"examples":["google.co.uk"],"description":"Google domain used for the search, written without a scheme or `www.` prefix. This is independent of `gl`, `hl`, `location`, and `coordinates`. Supported values follow the search-capable entries in [Google's current domain list](https://www.google.com/supported_domains); `google.cn` is excluded. Case-insensitive.","x-enum-source":"https://www.google.com/supported_domains"},"gl":{"type":["string","null"],"default":"us","enum":["ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bl","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cs","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mf","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw",null],"description":"Two-letter Google result-country code. Matching results are boosted rather than strictly filtered. Case-insensitive."},"hl":{"type":["string","null"],"default":"en-US","enum":["af","sq","am","ar","hy","az","bn","bg","my","ca","zh-CN","zh-TW","hr","cs","da","nl","en-GB","en","en-US","et","fil","fi","fr-CA","fr","ka","de","el","gu","iw","he","hi","hu","is","id","it","ja","kn","kk","km","ko","ky","lo","lv","lt","mk","ms","ml","mr","mn","ne","no","fa","pl","pt-BR","pt-PT","pa","ro","ru","sr-Latn","sr","si","sk","sl","es-419","es","sw","sv","ta","te","th","tr","uk","ur","uz","vi","cy",null],"description":"Google interface language. This can also influence result selection for international queries. Case-insensitive."},"location":{"type":["string","null"],"minLength":1,"examples":["Austin,Texas,United States"],"description":"An Active Google `Canonical Name` from the [pinned geo-target dataset](https://developers.google.com/static/google-ads/api/data/geo/geotargets-2026-07-16.csv.zip). Mutually exclusive with `coordinates`.","x-enum-source":"https://developers.google.com/static/google-ads/api/data/geo/geotargets-2026-07-16.csv.zip","x-enum-source-page":"https://developers.google.com/google-ads/api/data/geotargets","x-enum-source-version":"2026-07-16","x-enum-source-field":"Canonical Name","x-enum-source-status":"Active"},"coordinates":{"anyOf":[{"$ref":"#/components/schemas/Coordinates"},{"type":"null"}],"description":"The searcher's latitude and longitude. Mutually exclusive with `location`."},"radius":{"type":["integer","null"],"minimum":1,"maximum":1000,"examples":[150],"description":"Radius in meters used to bias results around `coordinates`; results outside it may still appear. Requires `coordinates`. The maximum is 199 for desktop or an omitted device, and 1,000 for mobile or tablet."},"tbs":{"type":["string","null"],"examples":["qdr:h","qdr:d","qdr:w2","qdr:m6","qdr:y","cdr:1,cd_min:8/1/2026,cd_max:8/12/2026","sbd:1","sbd:1,nsd:1"],"description":"Google's native comma-separated `key:value` advanced-filter container, up to 512 characters. It supports time filters, sorting, and filters associated with a selected search tab. Relative time ranges use `qdr:<unit>[amount]`; custom inclusive ranges use `cdr:1,cd_min:M/D/YYYY,cd_max:M/D/YYYY`. Native filters may vary by search vertical and Google market. The unreliable `li` verbatim filter is not supported."},"tbm":{"type":["string","null"],"enum":["nws","vid","isch","shop","lcl","bks",null],"examples":["nws","isch","vid"],"description":"Select a supported Google search vertical using its native `tbm` code. Mutually exclusive with `udm`."},"udm":{"type":["integer","null"],"enum":[1,2,6,7,12,14,28,36,null],"examples":[2,7,12,14,28],"description":"Select a supported Google search tab using its native numeric `udm` value: 1 (Local), 2 (Images), 6 (Forums), 7 (Videos), 12 (News), 14 (Web), 28 (Shopping), or 36 (Books). Availability may vary by market. Mutually exclusive with `tbm`."}}},"AmazonSearchRequest":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":8192,"x-max-utf8-bytes":8192,"description":"The search query. The UTF-8 representation must not exceed 8,192 bytes; non-ASCII characters may use more than one byte.","examples":["best espresso machines"]},"html":{"type":["boolean","null"],"default":false,"description":"Return Brotli-compressed, Base64-encoded source HTML instead of normalized JSON."},"zero_trace":{"type":["boolean","null"],"default":false,"description":"When true, PrismCrawl does not store the source HTML or parsed JSON. Audit and billing metadata is retained, but all other data is permanently discarded. Request history exposes only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged."},"device":{"type":["string","null"],"enum":["desktop","mobile",null],"default":"desktop","description":"Device profile used for the Amazon request."},"amazon_domain":{"type":["string","null"],"enum":["amazon.com","amazon.ca","amazon.com.mx","amazon.com.br","amazon.co.uk","amazon.ie","amazon.de","amazon.es","amazon.fr","amazon.it","amazon.nl","amazon.se","amazon.pl","amazon.com.be","amazon.com.tr","amazon.ae","amazon.sa","amazon.eg","amazon.in","amazon.co.jp","amazon.com.au","amazon.sg",null],"default":"amazon.com","description":"Amazon marketplace domain, without a scheme or `www.` prefix."},"language":{"type":["string","null"],"enum":["en_US","es_US","ar_AE","de_US","he_IL","ko_KR","pt_BR","zh_CN","zh_TW","en_CA","fr_CA","es_MX","en_GB","en_IE","de_DE","cs_CZ","nl_NL","pl_PL","tr_TR","da_DK","es_ES","pt_PT","fr_FR","it_IT","sv_SE","nl_BE","fr_BE","en_AE","en_IN","hi_IN","ta_IN","te_IN","kn_IN","ml_IN","bn_IN","mr_IN","ja_JP","en_AU","en_SG",null],"examples":["en_US","en_GB","de_DE"],"description":"Amazon locale supported by the selected marketplace. Omit it to use the marketplace default (the first locale shown): amazon.com: en_US, es_US, ar_AE, de_US, he_IL, ko_KR, pt_BR, zh_CN, zh_TW; amazon.ca: en_CA, fr_CA; amazon.com.mx: es_MX; amazon.com.br: pt_BR; amazon.co.uk: en_GB; amazon.ie: en_IE; amazon.de: de_DE, en_GB, cs_CZ, nl_NL, pl_PL, tr_TR, da_DK; amazon.es: es_ES, pt_PT, en_GB; amazon.fr: fr_FR, en_GB; amazon.it: it_IT, en_GB; amazon.nl: nl_NL, en_GB; amazon.se: sv_SE, en_GB; amazon.pl: pl_PL; amazon.com.be: nl_BE, fr_BE, en_GB; amazon.com.tr: tr_TR; amazon.ae: en_AE, ar_AE; amazon.sa: ar_AE, en_AE; amazon.eg: ar_AE, en_AE; amazon.in: en_IN, hi_IN, ta_IN, te_IN, kn_IN, ml_IN, bn_IN, mr_IN; amazon.co.jp: ja_JP, en_US, zh_CN; amazon.com.au: en_AU; amazon.sg: en_SG."},"page":{"type":["integer","null"],"minimum":1,"maximum":1000,"default":1,"description":"One-based Amazon results page."},"category_id":{"type":["string","null"],"pattern":"^[A-Za-z0-9_-]+$","maxLength":40,"examples":["16310101"],"description":"Amazon category or browse-node identifier."},"sort_by":{"type":["string","null"],"enum":["featured","price_low_to_high","price_high_to_low","average_review","most_recent","bestsellers","bestseller_rankings",null],"description":"Amazon-native result ordering."},"rh":{"type":["string","null"],"maxLength":2000,"pattern":"^[A-Za-z0-9_-]+:[A-Za-z0-9_-]+(?:,[A-Za-z0-9_-]+:[A-Za-z0-9_-]+)*$","examples":["p_72:1248897011,p_123:660401"],"description":"Comma-separated Amazon `key:value` refinements."},"merchant_id":{"type":["string","null"],"pattern":"^[A-Za-z0-9_-]+$","maxLength":64,"description":"Restrict results to an Amazon merchant ID."},"direct_search":{"type":["boolean","null"],"default":false,"description":"Use Amazon's direct category-search mode."}}},"Coordinates":{"type":"object","additionalProperties":false,"required":["latitude","longitude"],"properties":{"latitude":{"type":"number","format":"double","minimum":-90,"maximum":90,"examples":[30.2672]},"longitude":{"type":"number","format":"double","minimum":-180,"maximum":180,"examples":[-97.7431]}}},"MicrosoftSearchRequest":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":8192,"x-max-utf8-bytes":8192,"description":"The search query. The UTF-8 representation must not exceed 8,192 bytes; non-ASCII characters may use more than one byte.","examples":["best espresso machines"]},"html":{"type":["boolean","null"],"default":false,"description":"Return Brotli-compressed, Base64-encoded source HTML instead of normalized JSON."},"zero_trace":{"type":["boolean","null"],"default":false,"description":"When true, PrismCrawl does not store the source HTML or parsed JSON. Audit and billing metadata is retained, but all other data is permanently discarded. Request history exposes only type `ZERO_TRACE`, the request HTTP status code, and whether the account was charged."},"device":{"type":["string","null"],"enum":["mobile","tablet","desktop",null],"description":"Search as a mobile, tablet, or desktop device."},"safe":{"type":["string","null"],"enum":["active","off",null],"description":"Safe-search mode. `active` enables Google's filtering and Bing Strict SafeSearch; `off` requests unfiltered results. Search providers may still suppress content required by law or policy."},"color_scheme":{"type":["string","null"],"enum":["light","dark",null],"description":"Request the provider's light or dark result-page theme. This affects source-page presentation, not ranking, and providers may ignore it."},"sp":{"type":["integer","null"],"enum":[-1,null],"description":"Bing-native spelling hint. The supported value is `-1`, an undocumented field observed in Bing-generated search URLs. Its behavior is best-effort and may change upstream."},"first":{"type":["integer","null"],"minimum":1,"default":1,"examples":[1],"description":"Bing's one-based native page position. Omit it or use `1` for the front page. Values greater than `1` require the `next_page_token` returned by the preceding response and must match that token; arbitrary offsets are rejected."},"next_page_token":{"type":["string","null"],"minLength":1,"description":"Bing continuation token from the preceding response. When supplied, `first` may be omitted. Resend the same `tbs` and search-control values used by the original request."},"cc":{"type":["string","null"],"default":"us","enum":["ar","au","at","be","br","ca","cl","dk","fi","fr","de","hk","in","id","it","jp","kr","my","mx","nl","nz","no","cn","pl","pt","ph","ru","sa","za","es","se","ch","tw","tr","gb","us",null],"description":"Two-letter Bing result-country code. Case-insensitive. The supported values follow Bing's published country-code list."},"setlang":{"type":["string","null"],"default":"en-US","examples":["en-US","fr","id-ID","fa-IR","zh-Hans"],"description":"Bing interface-language hint. It affects Bing-generated interface strings, such as related-search labels; it does not restrict search results to that language. Bing may fall back to English when it cannot localize a value. See Microsoft's current [`set_lang` guidance](https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/bing-tools#optional-parameters)."},"tbs":{"type":["string","null"],"examples":["qdr:d","qdr:w","qdr:w2","qdr:m6","qdr:y","cdr:1,cd_min:8/1/2026,cd_max:8/12/2026"],"description":"Google-compatible time-range input translated to Bing's native date filter. Relative ranges use `qdr:<unit>[amount]`, where the unit is `d` (day), `w` (week), `m` (month), or `y` (year), and the optional positive amount is at most 10,000. Custom inclusive ranges use `cdr:1,cd_min:M/D/YYYY,cd_max:M/D/YYYY`. Bing has day-level precision, so hour ranges (`qdr:h`) are rejected. Resend the same value with a filtered search's `next_page_token`."}}},"GoogleMapsSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/GoogleMapsSearchData"}}},"GoogleMapsSearchData":{"type":"object","required":["format","content"],"properties":{"format":{"type":"string","const":"json"},"content":{"$ref":"#/components/schemas/GoogleMapsSearchContent"}}},"GoogleMapsSearchContent":{"type":"object","required":["search_parameters","results","has_next_page","serp_features"],"properties":{"search_parameters":{"$ref":"#/components/schemas/GoogleMapsSearchParameters"},"results":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsResult"}},"has_next_page":{"type":"boolean","description":"True when Google returned a full 20-place page."},"serp_features":{"type":"array","maxItems":0,"description":"Reserved for response-shape consistency; Maps currently returns an empty array."}}},"GoogleJsonSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/GoogleJsonSearchData"}}},"GoogleHtmlSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/GoogleHtmlSearchData"}}},"MicrosoftJsonSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/MicrosoftJsonSearchData"}}},"MicrosoftHtmlSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/MicrosoftHtmlSearchData"}}},"AmazonJsonSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/AmazonJsonSearchData"}}},"AmazonHtmlSearchResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/AmazonHtmlSearchData"}}},"GoogleJsonSearchData":{"type":"object","required":["format","content"],"properties":{"format":{"type":"string","const":"json"},"content":{"$ref":"#/components/schemas/GoogleSearchContent"}}},"GoogleHtmlSearchData":{"type":"object","required":["format","content"],"properties":{"format":{"type":"string","const":"html+br+base64"},"content":{"type":"string","contentEncoding":"base64","description":"Base64-encoded bytes. Decode Base64 first, then decompress the result with Brotli."}}},"MicrosoftJsonSearchData":{"type":"object","required":["format","content","next_page_token"],"properties":{"format":{"type":"string","const":"json"},"content":{"$ref":"#/components/schemas/MicrosoftSearchContent"},"next_page_token":{"type":["string","null"],"description":"Bing-only plaintext JSON continuation token, or null when Bing does not advertise another native page."}}},"MicrosoftHtmlSearchData":{"type":"object","required":["format","content","next_page_token"],"properties":{"format":{"type":"string","const":"html+br+base64"},"content":{"type":"string","contentEncoding":"base64","description":"Base64-encoded bytes. Decode Base64 first, then decompress the result with Brotli."},"next_page_token":{"type":["string","null"],"description":"Bing-only plaintext JSON continuation token, or null when Bing does not advertise another native page."}}},"AmazonJsonSearchData":{"type":"object","required":["format","content"],"properties":{"format":{"type":"string","const":"json"},"content":{"$ref":"#/components/schemas/AmazonSearchContent"}}},"AmazonHtmlSearchData":{"type":"object","required":["format","content"],"properties":{"format":{"type":"string","const":"html+br+base64"},"content":{"type":"string","contentEncoding":"base64","description":"Base64-encoded bytes. Decode Base64 first, then decompress the result with Brotli."}}},"GoogleSearchContent":{"type":"object","required":["search_parameters","results","has_next_page","serp_features"],"properties":{"search_parameters":{"$ref":"#/components/schemas/GoogleSearchParameters"},"results":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"has_next_page":{"type":"boolean","description":"Whether the returned provider HTML advertises another results page."},"serp_features":{"type":"array","items":{"$ref":"#/components/schemas/SerpFeature"}}}},"MicrosoftSearchContent":{"type":"object","required":["search_parameters","results","has_next_page","serp_features"],"properties":{"search_parameters":{"$ref":"#/components/schemas/MicrosoftSearchParameters"},"results":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"has_next_page":{"type":"boolean","description":"Whether the returned provider HTML advertises another results page."},"serp_features":{"type":"array","items":{"$ref":"#/components/schemas/SerpFeature"}}}},"AmazonSearchContent":{"type":"object","required":["search_parameters","search_information","results","filters","categories","related_searches","has_next_page","serp_features"],"properties":{"search_parameters":{"$ref":"#/components/schemas/AmazonSearchParameters"},"search_information":{"$ref":"#/components/schemas/AmazonSearchInformation"},"results":{"type":"array","items":{"$ref":"#/components/schemas/AmazonResult"}},"filters":{"type":"array","items":{"$ref":"#/components/schemas/AmazonFilter"}},"categories":{"type":"array","items":{"$ref":"#/components/schemas/AmazonCategory"}},"related_searches":{"type":"array","items":{"$ref":"#/components/schemas/AmazonRelatedSearch"}},"has_next_page":{"type":"boolean"},"serp_features":{"type":"array","maxItems":0}}},"GoogleMapsSearchParameters":{"type":"object","required":["q","type","engine","start","gl","hl","coordinates","zoom"],"properties":{"q":{"type":"string"},"type":{"type":"string","const":"maps"},"engine":{"type":"string","const":"google_maps"},"start":{"type":"integer","minimum":0,"multipleOf":20},"gl":{"type":"string","enum":["ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bl","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cs","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mf","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},"hl":{"type":"string","enum":["af","sq","am","ar","hy","az","bn","bg","my","ca","zh-CN","zh-TW","hr","cs","da","nl","en-GB","en","en-US","et","fil","fi","fr-CA","fr","ka","de","el","gu","iw","he","hi","hu","is","id","it","ja","kn","kk","km","ko","ky","lo","lv","lt","mk","ms","ml","mr","mn","ne","no","fa","pl","pt-BR","pt-PT","pa","ro","ru","sr-Latn","sr","si","sk","sl","es-419","es","sw","sv","ta","te","th","tr","uk","ur","uz","vi","cy"]},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"zoom":{"type":"number","minimum":3,"maximum":21}}},"GoogleMapsResult":{"type":"object","required":["id","rank","type","title","place_id","data_id","data_cid","kgmid","google_maps_url","reviews_link","address","structured_address","phone","phone_international","website","domain","category","category_id","categories","rating","reviews","price","gps_coordinates","service_area","plus_code","open_state","hours","operating_hours","secondary_operating_hours","description","snippet","review_snippets","popular_times","thumbnail","timezone","claimed","order_online_link","reservations_link","booking_link","hotel_class","check_in_time","check_out_time","amenities","highlights","attributes"],"properties":{"id":{"type":"string","description":"Stable PrismCrawl result identifier."},"rank":{"type":"integer","minimum":1,"description":"Absolute Maps rank including start."},"type":{"type":"string","const":"place"},"title":{"type":"string"},"place_id":{"type":["string","null"]},"data_id":{"type":"string"},"data_cid":{"type":["string","null"],"description":"Decimal Google CID/ludocid derived from data_id."},"kgmid":{"type":["string","null"]},"google_maps_url":{"type":"string","format":"uri"},"reviews_link":{"type":["string","null"],"format":"uri"},"address":{"type":["string","null"]},"structured_address":{"oneOf":[{"$ref":"#/components/schemas/GoogleMapsStructuredAddress"},{"type":"null"}]},"phone":{"type":["string","null"]},"phone_international":{"type":["string","null"],"description":"International-format phone number when Maps provides one."},"website":{"type":["string","null"],"format":"uri"},"domain":{"type":["string","null"]},"category":{"type":["string","null"]},"category_id":{"type":["string","null"],"description":"Language-independent identifier for the primary Maps category."},"categories":{"type":"array","items":{"type":"string"}},"rating":{"type":["number","null"],"minimum":0,"maximum":5},"reviews":{"type":["integer","null"],"minimum":0},"price":{"type":["string","null"]},"gps_coordinates":{"oneOf":[{"$ref":"#/components/schemas/Coordinates"},{"type":"null"}],"description":"Place coordinates, or null when a service-area listing does not publish a location."},"service_area":{"type":"boolean","description":"Whether the business serves an area without displaying a public street location."},"plus_code":{"oneOf":[{"$ref":"#/components/schemas/GoogleMapsPlusCode"},{"type":"null"}]},"open_state":{"type":["string","null"],"examples":["Open","Closed"]},"hours":{"type":["string","null"],"description":"Google's current localized open/close summary."},"operating_hours":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Localized day names mapped to available operating-hour ranges."},"secondary_operating_hours":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"description":"Additional named schedules such as online service, delivery, pharmacy, or meal hours."},"description":{"type":["string","null"]},"snippet":{"type":["string","null"],"description":"Localized detail highlighted for the place in Maps results."},"review_snippets":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsReviewSnippet"},"description":"Review excerpts highlighted by Maps for the result."},"popular_times":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsPopularTime"}},"description":"Localized weekday keys mapped to hourly relative-busyness observations."},"thumbnail":{"type":["string","null"],"format":"uri"},"timezone":{"type":["string","null"],"examples":["America/Chicago"]},"claimed":{"type":["boolean","null"],"description":"Whether the listing is claimed, or null when Maps does not expose its claim state."},"order_online_link":{"type":["string","null"],"format":"uri"},"reservations_link":{"type":["string","null"],"format":"uri","description":"Reservation or appointment link offered for the place."},"booking_link":{"type":["string","null"],"format":"uri","description":"Hotel booking link when available."},"hotel_class":{"type":["integer","null"],"minimum":1,"maximum":5,"description":"Hotel class in stars when available."},"check_in_time":{"type":["string","null"],"description":"Localized hotel check-in time."},"check_out_time":{"type":["string","null"],"description":"Localized hotel check-out time."},"amenities":{"type":"array","items":{"type":"string"},"description":"Available hotel amenities reported by Maps."},"highlights":{"type":"array","items":{"type":"string"},"description":"Localized place highlights reported by Maps."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsAttributeGroup"}}}},"GoogleMapsStructuredAddress":{"type":"object","required":["neighborhood","street","city","postal_code","state","country"],"properties":{"neighborhood":{"type":["string","null"]},"street":{"type":["string","null"]},"city":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"state":{"type":["string","null"]},"country":{"type":["string","null"]}}},"GoogleMapsPlusCode":{"type":"object","required":["global_code","compound_code"],"properties":{"global_code":{"type":["string","null"],"examples":["8642F62R+38"]},"compound_code":{"type":["string","null"],"examples":["F62R+38 Austin, Texas"]}}},"GoogleMapsReviewSnippet":{"type":"object","required":["text","rating"],"properties":{"text":{"type":"string"},"rating":{"type":["number","null"],"minimum":0,"maximum":5}}},"GoogleMapsPopularTime":{"type":"object","required":["hour","busyness_percent","description","time"],"properties":{"hour":{"type":"integer","minimum":0,"maximum":23},"busyness_percent":{"type":"number","minimum":0,"maximum":100,"description":"Relative busyness for the place at this hour."},"description":{"type":["string","null"]},"time":{"type":["string","null"],"description":"Localized hour label."}}},"GoogleMapsAttributeGroup":{"type":"object","required":["id","name","options"],"properties":{"id":{"type":["string","null"]},"name":{"type":"string"},"options":{"type":"array","items":{"$ref":"#/components/schemas/GoogleMapsAttribute"}}}},"GoogleMapsAttribute":{"type":"object","required":["name","enabled"],"properties":{"name":{"type":"string"},"enabled":{"type":["boolean","null"]}}},"GoogleSearchParameters":{"type":"object","required":["q","type","engine","device","start","google_domain","gl","hl","location","coordinates","radius","tbs","tbm","udm","safe","nfpr","filter","lr","cr","color_scheme"],"properties":{"q":{"type":"string"},"type":{"type":"string","const":"search"},"engine":{"type":"string","const":"google"},"device":{"type":["string","null"],"enum":["mobile","tablet","desktop",null]},"start":{"type":["integer","null"],"minimum":0},"google_domain":{"type":"string","enum":["google.com","google.ad","google.ae","google.com.af","google.com.ag","google.al","google.am","google.co.ao","google.com.ar","google.as","google.at","google.com.au","google.az","google.ba","google.com.bd","google.be","google.bf","google.bg","google.com.bh","google.bi","google.bj","google.com.bn","google.com.bo","google.com.br","google.bs","google.bt","google.co.bw","google.by","google.com.bz","google.ca","google.cd","google.cf","google.cg","google.ch","google.ci","google.co.ck","google.cl","google.cm","google.com.co","google.co.cr","google.com.cu","google.cv","google.com.cy","google.cz","google.de","google.dj","google.dk","google.dm","google.com.do","google.dz","google.com.ec","google.ee","google.com.eg","google.es","google.com.et","google.fi","google.com.fj","google.fm","google.fr","google.ga","google.ge","google.gg","google.com.gh","google.com.gi","google.gl","google.gm","google.gr","google.com.gt","google.gy","google.com.hk","google.hn","google.hr","google.ht","google.hu","google.co.id","google.ie","google.co.il","google.im","google.co.in","google.iq","google.is","google.it","google.je","google.com.jm","google.jo","google.co.jp","google.co.ke","google.com.kh","google.ki","google.kg","google.co.kr","google.com.kw","google.kz","google.la","google.com.lb","google.li","google.lk","google.co.ls","google.lt","google.lu","google.lv","google.com.ly","google.co.ma","google.md","google.me","google.mg","google.mk","google.ml","google.com.mm","google.mn","google.com.mt","google.mu","google.mv","google.mw","google.com.mx","google.com.my","google.co.mz","google.com.na","google.com.ng","google.com.ni","google.ne","google.nl","google.no","google.com.np","google.nr","google.nu","google.co.nz","google.com.om","google.com.pa","google.com.pe","google.com.pg","google.com.ph","google.com.pk","google.pl","google.pn","google.com.pr","google.ps","google.pt","google.com.py","google.com.qa","google.ro","google.ru","google.rw","google.com.sa","google.com.sb","google.sc","google.se","google.com.sg","google.sh","google.si","google.sk","google.com.sl","google.sn","google.so","google.sm","google.sr","google.st","google.com.sv","google.td","google.tg","google.co.th","google.com.tj","google.tl","google.tm","google.tn","google.to","google.com.tr","google.tt","google.com.tw","google.co.tz","google.com.ua","google.co.ug","google.co.uk","google.com.uy","google.co.uz","google.com.vc","google.co.ve","google.co.vi","google.com.vn","google.vu","google.ws","google.rs","google.co.za","google.co.zm","google.co.zw","google.cat"]},"gl":{"type":"string","enum":["ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bl","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cs","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mf","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},"hl":{"type":"string","enum":["af","sq","am","ar","hy","az","bn","bg","my","ca","zh-CN","zh-TW","hr","cs","da","nl","en-GB","en","en-US","et","fil","fi","fr-CA","fr","ka","de","el","gu","iw","he","hi","hu","is","id","it","ja","kn","kk","km","ko","ky","lo","lv","lt","mk","ms","ml","mr","mn","ne","no","fa","pl","pt-BR","pt-PT","pa","ro","ru","sr-Latn","sr","si","sk","sl","es-419","es","sw","sv","ta","te","th","tr","uk","ur","uz","vi","cy"]},"location":{"type":["string","null"],"description":"The canonical named location used for this search, or null when none was requested."},"coordinates":{"oneOf":[{"$ref":"#/components/schemas/Coordinates"},{"type":"null"}],"description":"The coordinates used for this search, or null when none were requested."},"radius":{"type":["integer","null"],"minimum":1,"maximum":1000,"description":"The coordinate radius in meters, or null when none was requested."},"tbs":{"type":["string","null"],"description":"The Google advanced-filter container used for this search, or null when none was requested."},"tbm":{"type":["string","null"],"enum":["nws","vid","isch","shop","lcl","bks",null],"description":"The selected Google `tbm` vertical, or null."},"udm":{"type":["integer","null"],"enum":[1,2,6,7,12,14,28,36,null],"description":"The selected Google `udm` tab, or null."},"safe":{"type":["string","null"],"enum":["active","off",null],"description":"Safe-search mode. `active` enables Google's filtering and Bing Strict SafeSearch; `off` requests unfiltered results. Search providers may still suppress content required by law or policy."},"color_scheme":{"type":["string","null"],"enum":["light","dark",null],"description":"Request the provider's light or dark result-page theme. This affects source-page presentation, not ranking, and providers may ignore it."},"nfpr":{"type":["integer","null"],"enum":[0,1,null],"description":"Controls Google query correction. `1` asks Google to search the submitted query without automatic spelling correction; `0` keeps normal correction behavior."},"filter":{"type":["integer","null"],"enum":[0,1,null],"description":"Requests Google duplicate-result filtering (`1`) or disables it (`0`). Google documents this behavior for Programmable Search, but does not guarantee it for the consumer HTML endpoint used here."},"lr":{"type":["string","null"],"pattern":"^lang_[a-z]{2,3}(\\|lang_[a-z]{2,3})*$","examples":["lang_fr","lang_fr|lang_de"],"description":"Restrict Google result documents by language using `lang_<code>` syntax. Join alternatives with `|`, for example `lang_fr|lang_de`."},"cr":{"type":["string","null"],"pattern":"^country[A-Za-z]{2}(\\|country[A-Za-z]{2})*$","examples":["countryFR","countryUS|countryCA"],"description":"Restrict Google result documents by country using `country<CC>` syntax. Join alternatives with `|`, for example `countryUS|countryCA`."}}},"MicrosoftSearchParameters":{"type":"object","required":["q","type","engine","device","first","cc","setlang","tbs","safe","sp","color_scheme"],"properties":{"q":{"type":"string"},"type":{"type":"string","const":"search"},"engine":{"type":"string","const":"bing"},"device":{"type":["string","null"],"enum":["mobile","tablet","desktop",null]},"first":{"type":["integer","null"],"minimum":1},"cc":{"type":"string","enum":["ar","au","at","be","br","ca","cl","dk","fi","fr","de","hk","in","id","it","jp","kr","my","mx","nl","nz","no","cn","pl","pt","ph","ru","sa","za","es","se","ch","tw","tr","gb","us"]},"setlang":{"type":"string","description":"The normalized interface-language hint sent to Bing. This is the requested hint, not a guarantee that Bing localized every interface string."},"tbs":{"type":["string","null"],"description":"The Google-compatible time range translated to Bing's native date filter, or null when none was requested."},"safe":{"type":["string","null"],"enum":["active","off",null],"description":"Safe-search mode. `active` enables Google's filtering and Bing Strict SafeSearch; `off` requests unfiltered results. Search providers may still suppress content required by law or policy."},"color_scheme":{"type":["string","null"],"enum":["light","dark",null],"description":"Request the provider's light or dark result-page theme. This affects source-page presentation, not ranking, and providers may ignore it."},"sp":{"type":["integer","null"],"enum":[-1,null],"description":"Bing-native spelling hint. The supported value is `-1`, an undocumented field observed in Bing-generated search URLs. Its behavior is best-effort and may change upstream."}}},"AmazonSearchParameters":{"type":"object","required":["q","type","engine","device","amazon_domain","language","page","category_id","sort_by","rh","merchant_id","direct_search"],"properties":{"q":{"type":"string"},"type":{"type":"string","const":"search"},"engine":{"type":"string","const":"amazon"},"device":{"type":"string","enum":["mobile","desktop"]},"amazon_domain":{"type":"string","enum":["amazon.com","amazon.ca","amazon.com.mx","amazon.com.br","amazon.co.uk","amazon.ie","amazon.de","amazon.es","amazon.fr","amazon.it","amazon.nl","amazon.se","amazon.pl","amazon.com.be","amazon.com.tr","amazon.ae","amazon.sa","amazon.eg","amazon.in","amazon.co.jp","amazon.com.au","amazon.sg"]},"language":{"type":"string","pattern":"^[a-z]{2}_[A-Z]{2}$"},"page":{"type":"integer","minimum":1,"maximum":1000},"category_id":{"type":["string","null"]},"sort_by":{"type":["string","null"],"enum":["featured","price_low_to_high","price_high_to_low","average_review","most_recent","bestsellers","bestseller_rankings",null]},"rh":{"type":["string","null"]},"merchant_id":{"type":["string","null"]},"direct_search":{"type":"boolean"}}},"AmazonSearchInformation":{"type":"object","required":["surface","page_title","total_results","results_text","query_displayed","original_query","page","total_pages","store"],"properties":{"surface":{"type":"string","enum":["product_results","empty_results","navigation"],"description":"Semantic Amazon page classification. Navigation pages are valid Amazon search shells without server-rendered product results."},"page_title":{"type":["string","null"],"description":"Amazon's normalized HTML page title when present."},"total_results":{"type":["integer","null"],"minimum":0},"results_text":{"type":["string","null"]},"query_displayed":{"type":"string"},"original_query":{"type":["string","null"]},"page":{"type":"integer","minimum":1},"total_pages":{"type":["integer","null"],"minimum":1},"store":{"type":["string","null"]}}},"AmazonPrice":{"type":"object","required":["raw","value","currency"],"properties":{"raw":{"type":"string"},"value":{"type":"number","minimum":0},"currency":{"type":["string","null"]}}},"AmazonResult":{"type":"object","required":["asin","rank","type","sponsored","title","url","clean_url","image","price","old_price","unit_price","rating","reviews","prime","best_seller","amazon_choice","limited_time_deal","amazon_brand","kindle_unlimited","prime_video","exclusive_to_amazon","small_business","amazon_fresh","whole_foods_market","climate_pledge_friendly","badges","bought_last_month","coupon","offers","delivery","availability","variations","tags","position"],"properties":{"asin":{"type":"string","pattern":"^[A-Z0-9]{10}$"},"rank":{"type":"integer","minimum":1,"description":"One-based rank within the result type (`organic` or `ad`). Use `position.absolute` for the result's position in the overall mixed stream."},"type":{"type":"string","enum":["organic","ad"]},"sponsored":{"type":"boolean"},"title":{"type":"string"},"url":{"type":"string","format":"uri"},"clean_url":{"type":"string","format":"uri"},"image":{"type":["string","null"],"format":"uri"},"price":{"oneOf":[{"$ref":"#/components/schemas/AmazonPrice"},{"type":"null"}]},"old_price":{"oneOf":[{"$ref":"#/components/schemas/AmazonPrice"},{"type":"null"}]},"unit_price":{"type":["string","null"]},"rating":{"type":["number","null"],"minimum":0,"maximum":5},"reviews":{"type":["integer","null"],"minimum":0},"prime":{"type":"boolean"},"best_seller":{"type":"boolean"},"amazon_choice":{"type":"boolean"},"limited_time_deal":{"type":"boolean"},"amazon_brand":{"type":"boolean"},"kindle_unlimited":{"type":"boolean"},"prime_video":{"type":"boolean"},"exclusive_to_amazon":{"type":"boolean"},"small_business":{"type":"boolean"},"amazon_fresh":{"type":"boolean"},"whole_foods_market":{"type":"boolean"},"climate_pledge_friendly":{"type":"boolean"},"badges":{"type":"array","items":{"type":"string"}},"bought_last_month":{"type":["string","null"]},"coupon":{"type":["string","null"]},"offers":{"type":"array","items":{"type":"string"}},"delivery":{"type":["string","null"]},"availability":{"type":["string","null"]},"variations":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"position":{"$ref":"#/components/schemas/Position"}}},"AmazonFilterOption":{"type":"object","required":["name","rh","selected","url"],"properties":{"name":{"type":"string"},"rh":{"type":"string"},"selected":{"type":"boolean"},"url":{"type":"string","format":"uri"}}},"AmazonFilter":{"type":"object","required":["id","name","options"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"options":{"type":"array","items":{"$ref":"#/components/schemas/AmazonFilterOption"}}}},"AmazonCategory":{"type":"object","required":["name","node","url"],"properties":{"name":{"type":"string"},"node":{"type":"string"},"url":{"type":"string","format":"uri"}}},"AmazonRelatedSearch":{"type":"object","required":["query","url"],"properties":{"query":{"type":"string"},"url":{"type":"string","format":"uri"}}},"SearchResult":{"type":"object","required":["id","rank","type","title","url","display_url","snippet","domain","favicon","source_name","position","engine","domain_info","classification"],"properties":{"id":{"type":"string","description":"Stable identifier within this response."},"rank":{"type":"integer","minimum":1},"type":{"$ref":"#/components/schemas/ResultType"},"title":{"type":"string"},"url":{"type":"string","format":"uri"},"display_url":{"type":"string"},"snippet":{"type":["string","null"]},"domain":{"type":"string"},"favicon":{"type":"string","format":"uri"},"source_name":{"type":["string","null"],"description":"The site/source label displayed by the search engine, or null when the upstream result does not provide one."},"position":{"oneOf":[{"$ref":"#/components/schemas/Position"},{"type":"null"}]},"engine":{"type":"string","enum":["google","bing"]},"domain_info":{"oneOf":[{"$ref":"#/components/schemas/DomainInfo"},{"type":"null"}]},"classification":{"oneOf":[{"$ref":"#/components/schemas/Classification"},{"type":"null"}]}}},"Position":{"type":"object","required":["absolute"],"properties":{"absolute":{"type":"integer","minimum":1,"description":"One-based position in the overall result stream."}}},"DomainInfo":{"type":"object","required":["tld","sld","category"],"properties":{"tld":{"type":["string","null"]},"sld":{"type":["string","null"]},"category":{"type":["string","null"],"enum":[null,"gov","edu","mil","news","forum","marketplace","social"]}}},"Classification":{"type":"object","required":["content_type","source_hint"],"properties":{"content_type":{"type":["string","null"]},"source_hint":{"type":["string","null"]}}},"SerpFeature":{"type":"object","required":["id","engine","type","title","text","items","links","source_result_ids","position","confidence","extracted_at"],"properties":{"id":{"type":"string"},"engine":{"type":"string","enum":["google","bing"]},"type":{"$ref":"#/components/schemas/ResultType"},"title":{"type":["string","null"]},"text":{"type":["string","null"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/FeatureItem"}},"links":{"type":"array","items":{"$ref":"#/components/schemas/FeatureLink"}},"source_result_ids":{"type":"array","items":{"type":"string"}},"position":{"oneOf":[{"$ref":"#/components/schemas/Position"},{"type":"null"}]},"confidence":{"type":["number","null"],"minimum":0,"maximum":1},"extracted_at":{"type":"string","format":"date-time"}}},"FeatureItem":{"type":"object","required":["title","text","link"],"properties":{"title":{"type":["string","null"]},"text":{"type":["string","null"]},"link":{"type":["string","null"],"format":"uri"}}},"FeatureLink":{"type":"object","required":["title","url"],"properties":{"title":{"type":["string","null"]},"url":{"type":["string","null"],"format":"uri"}}},"ResultType":{"type":"string","enum":["organic","ad","featured_snippet","knowledge_panel","people_also_ask","video","image","news","shopping","local","answer_box","ai_summary","related_questions","related_searches","sitelinks","videos","images_inline","calculator","weather","dictionary"]},"ErrorResponse":{"type":"object","required":["success","request_id","data","error"],"properties":{"success":{"type":"boolean","const":false},"request_id":{"type":"string","format":"uuid"},"data":{"type":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"rule":{"type":"string"},"reset_at":{"type":"string","format":"date-time"}}}}},"ZeroTraceHistoryResponse":{"type":"object","required":["success","request_id","data"],"properties":{"success":{"type":"boolean","const":true},"request_id":{"type":"string","format":"uuid"},"data":{"type":"object","required":["type","status_code","credits_charged"],"additionalProperties":false,"properties":{"type":{"type":"string","const":"ZERO_TRACE"},"status_code":{"type":"integer","minimum":100,"maximum":599},"credits_charged":{"type":"boolean"}}}}}}}}