Anti-Malware — entry 004 of 15

Google Safe Browsing

Verified Jul 2026

Google Safe Browsing lets clients check URLs against Google's continuously updated lists of malware, phishing, and unwanted-software sites via the v4 threatMatches:find endpoint, the same data that powers warnings in Chrome and Search. A live POST with a syntactically valid but bogus key returned a 400 "API key not valid" error from safebrowsing.googleapis.com, reconfirming API-key auth and HTTPS, and both that call and its OPTIONS preflight echoed the request Origin in Access-Control-Allow-Origin. The API is free for any Google Cloud project under its published quota.

url-scanningphishingmalwaregooglethreat-intelligence
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score84out of 100
Authentication15/25API key required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 84 on greatapis.com
<a href="https://greatapis.com/api/google-safe-browsing/"><img src="https://greatapis.com/badge/google-safe-browsing.svg" alt="Scored 84 on greatapis.com"></a>

Auth quickstart

  1. Get a key at the provider
  2. Send it on every request as a query param?key=<key>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://safebrowsing.googleapis.com/
encodedFullHashes1
GET/v4/encodedFullHashes/{encodedRequest}
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
encodedRequestpathyesstring
clientIdquerynostring
clientVersionquerynostring
Responses
StatusDescriptionSchema
200Successful responseGoogleSecuritySafebrowsingV4FindFullHashesResponse
encodedUpdates1
GET/v4/encodedUpdates/{encodedRequest}
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
encodedRequestpathyesstring
clientIdquerynostring
clientVersionquerynostring
Responses
StatusDescriptionSchema
200Successful responseGoogleSecuritySafebrowsingV4FetchThreatListUpdatesResponse
fullHashes1
POST/v4/fullHashes:find
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
Request body

application/jsonGoogleSecuritySafebrowsingV4FindFullHashesRequest

Responses
StatusDescriptionSchema
200Successful responseGoogleSecuritySafebrowsingV4FindFullHashesResponse
threatHits1
POST/v4/threatHits
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
Request body

application/jsonGoogleSecuritySafebrowsingV4ThreatHit

Responses
StatusDescriptionSchema
200Successful responseGoogleProtobufEmpty
threatLists1
GET/v4/threatLists
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
Responses
StatusDescriptionSchema
200Successful responseGoogleSecuritySafebrowsingV4ListThreatListsResponse
threatListUpdates1
POST/v4/threatListUpdates:fetch
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
Request body

application/jsonGoogleSecuritySafebrowsingV4FetchThreatListUpdatesRequest

Responses
StatusDescriptionSchema
200Successful responseGoogleSecuritySafebrowsingV4FetchThreatListUpdatesResponse
threatMatches1
POST/v4/threatMatches:find
Parameters
NameInRequiredType
$.xgafvquerynostring
access_tokenquerynostring
altquerynostring
callbackquerynostring
fieldsquerynostring
keyquerynostring
oauth_tokenquerynostring
prettyPrintquerynoboolean
quotaUserquerynostring
upload_protocolquerynostring
uploadTypequerynostring
Request body

application/jsonGoogleSecuritySafebrowsingV4FindThreatMatchesRequest

Responses
StatusDescriptionSchema
200Successful responseGoogleSecuritySafebrowsingV4FindThreatMatchesResponse

Try it

Developer reference

Base URLhttps://safebrowsing.googleapis.com
Key endpoints
  • POST/v4/threatMatches:find
  • GET/v4/threatLists
  • POST/v4/threatListUpdates:fetch
  • POST/v4/fullHashes:find

Changelog

Spec versionv4
Tracked paths7
  • Aug 2026gained a docs link, an OpenAPI spec and a pricing page

Tracking since Sep 2026. See every tracked change ↗ ·Subscribe with RSS ↗