Google Safe Browsing API

Enables checking URLs and web resources against Google-maintained lists of unsafe content, including malware, social engineering, and unwanted software threats.

OpenAPI Specification

openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Safe Browsing API
  description: >-
    The Google Safe Browsing API enables client applications to check web
    resources (most commonly URLs) against Google-generated lists of unsafe
    web resources. It supports threat list management, URL checking, and
    hash-based lookups.
  version: 4.0.0
  contact:
    name: Google
    url: https://developers.google.com/safe-browsing
servers:
  - url: https://safebrowsing.googleapis.com/v4
paths:
  /threatMatches:find:
    post:
      operationId: findThreatMatches
      summary: Google Safe Browsing Find Threat Matches
      description: Finds threat entries matching the Safe Browsing lists.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FindThreatMatchesRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindThreatMatchesResponse'
      tags:
        - threatMatches:find
  /threatLists:
    get:
      operationId: listThreatLists
      summary: Google Safe Browsing List Threat Lists
      description: Lists the Safe Browsing threat lists available for download.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListThreatListsResponse'
      tags:
        - threatLists
  /threatListUpdates:fetch:
    post:
      operationId: fetchThreatListUpdates
      summary: Google Safe Browsing Fetch Threat List Updates
      description: Fetches the most recent threat list updates.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchThreatListUpdatesRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchThreatListUpdatesResponse'
      tags:
        - threatListUpdates:fetch
  /fullHashes:find:
    post:
      operationId: findFullHashes
      summary: Google Safe Browsing Find Full Hashes
      description: Finds the full hashes that match the requested hash prefixes.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FindFullHashesRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindFullHashesResponse'
      tags:
        - fullHashes:find
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: key
  schemas:
    ThreatInfo:
      type: object
      properties:
        threatTypes:
          type: array
          items:
            type: string
            enum:
              - MALWARE
              - SOCIAL_ENGINEERING
              - UNWANTED_SOFTWARE
              - POTENTIALLY_HARMFUL_APPLICATION
              - THREAT_TYPE_UNSPECIFIED
        platformTypes:
          type: array
          items:
            type: string
            enum:
              - WINDOWS
              - LINUX
              - ANDROID
              - OSX
              - IOS
              - ANY_PLATFORM
              - ALL_PLATFORMS
              - CHROME
              - PLATFORM_TYPE_UNSPECIFIED
        threatEntryTypes:
          type: array
          items:
            type: string
            enum:
              - URL
              - EXECUTABLE
              - THREAT_ENTRY_TYPE_UNSPECIFIED
        threatEntries:
          type: array
          items:
            $ref: '#/components/schemas/ThreatEntry'
    ThreatEntry:
      type: object
      properties:
        hash:
          type: string
        url:
          type: string
        digest:
          type: string
    ThreatMatch:
      type: object
      properties:
        threatType:
          type: string
        platformType:
          type: string
        threatEntryType:
          type: string
        threat:
          $ref: '#/components/schemas/ThreatEntry'
        threatEntryMetadata:
          type: object
        cacheDuration:
          type: string
    ThreatListDescriptor:
      type: object
      properties:
        threatType:
          type: string
        platformType:
          type: string
        threatEntryType:
          type: string
    FindThreatMatchesRequest:
      type: object
      properties:
        client:
          type: object
          properties:
            clientId:
              type: string
            clientVersion:
              type: string
        threatInfo:
          $ref: '#/components/schemas/ThreatInfo'
    FindThreatMatchesResponse:
      type: object
      properties:
        matches:
          type: array
          items:
            $ref: '#/components/schemas/ThreatMatch'
    ListThreatListsResponse:
      type: object
      properties:
        threatLists:
          type: array
          items:
            $ref: '#/components/schemas/ThreatListDescriptor'
    FetchThreatListUpdatesRequest:
      type: object
      properties:
        client:
          type: object
          properties:
            clientId:
              type: string
            clientVersion:
              type: string
        listUpdateRequests:
          type: array
          items:
            type: object
            properties:
              threatType:
                type: string
              platformType:
                type: string
              threatEntryType:
                type: string
              state:
                type: string
              constraints:
                type: object
    FetchThreatListUpdatesResponse:
      type: object
      properties:
        listUpdateResponses:
          type: array
          items:
            type: object
        minimumWaitDuration:
          type: string
    FindFullHashesRequest:
      type: object
      properties:
        client:
          type: object
          properties:
            clientId:
              type: string
            clientVersion:
              type: string
        clientStates:
          type: array
          items:
            type: string
        threatInfo:
          $ref: '#/components/schemas/ThreatInfo'
    FindFullHashesResponse:
      type: object
      properties:
        matches:
          type: array
          items:
            $ref: '#/components/schemas/ThreatMatch'
        minimumWaitDuration:
          type: string
        negativeCacheDuration:
          type: string
security:
  - ApiKeyAuth: []
tags:
  - name: fullHashes:find
  - name: threatLists
  - name: threatListUpdates:fetch
  - name: threatMatches:find