Fingerprint Event Search API

Search identification events with filters.

OpenAPI Specification

fingerprint-event-search-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Fingerprint Server Event Search API
  description: The Fingerprint Server API lets you get, search, update, and delete identification Events and Visitors in a server environment. Each event carries device attributes and the enabled Smart Signals (bot, VPN, proxy, Tor, IP blocklist, tampering, virtual machine, incognito, emulator, root, jailbreak, Frida, cloned app, factory reset, velocity). Requests are authenticated with the `Auth-API-Key` header carrying your workspace Secret API Key. The API is served from regional hosts; use the host that matches your workspace region (Global, EU, or Asia). The product also exposes a Related Visitors endpoint and Webhooks that POST the same event payload to a configured endpoint.
  termsOfService: https://fingerprint.com/terms-conditions/
  contact:
    name: Fingerprint Support
    email: support@fingerprint.com
  license:
    name: MIT
    url: https://github.com/fingerprintjs/fingerprint-pro-server-api-openapi/blob/main/LICENSE
  version: '3'
servers:
- url: https://api.fpjs.io
  description: Global
- url: https://eu.api.fpjs.io
  description: EU
- url: https://ap.api.fpjs.io
  description: Asia (Mumbai)
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
tags:
- name: Event Search
  description: Search identification events with filters.
paths:
  /events/search:
    get:
      tags:
      - Event Search
      operationId: searchEvents
      summary: Get events via search
      description: Search identification events for your workspace using a wide range of built-in filters, including visitorId, linkedId, bot, IP address, time range, suspect, and individual Smart Signal flags. Results are paginated with a cursor.
      parameters:
      - name: limit
        in: query
        required: true
        description: Limit the number of events returned.
        schema:
          type: integer
          format: int32
          minimum: 1
      - name: pagination_key
        in: query
        description: Cursor used to fetch the next page of results.
        schema:
          type: string
      - name: visitor_id
        in: query
        description: Filter events by visitorId.
        schema:
          type: string
      - name: bot
        in: query
        description: Filter by bot detection result (good, bad, all, none).
        schema:
          type: string
          enum:
          - good
          - bad
          - all
          - none
      - name: ip_address
        in: query
        description: Filter events by IP address or CIDR range.
        schema:
          type: string
      - name: linked_id
        in: query
        description: Filter events by linkedId.
        schema:
          type: string
      - name: start
        in: query
        description: Filter events created after this Unix epoch time (ms).
        schema:
          type: integer
          format: int64
      - name: end
        in: query
        description: Filter events created before this Unix epoch time (ms).
        schema:
          type: integer
          format: int64
      - name: reverse
        in: query
        description: Sort events from oldest to newest.
        schema:
          type: boolean
      - name: suspect
        in: query
        description: Filter events flagged as suspect.
        schema:
          type: boolean
      - name: vpn
        in: query
        description: Filter events where a VPN was detected.
        schema:
          type: boolean
      - name: virtual_machine
        in: query
        description: Filter events where a virtual machine was detected.
        schema:
          type: boolean
      - name: tampering
        in: query
        description: Filter events where request tampering was detected.
        schema:
          type: boolean
      - name: incognito
        in: query
        description: Filter events where incognito/private browsing was detected.
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchEventsResponse'
        '403':
          description: Forbidden - invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Machine-readable error code (e.g. TokenRequired, RequestNotFound).
            message:
              type: string
              description: Human-readable error message.
    SearchEventsResponse:
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/EventsGetResponse'
        paginationKey:
          type: string
    Products:
      type: object
      description: Container for identification and Smart Signal product results.
      properties:
        identification:
          $ref: '#/components/schemas/SignalResponseIdentification'
        botd:
          $ref: '#/components/schemas/SignalResponseBotd'
        ipInfo:
          type: object
        incognito:
          type: object
        vpn:
          type: object
        proxy:
          type: object
        tor:
          type: object
        tampering:
          type: object
        virtualMachine:
          type: object
        emulator:
          type: object
        velocity:
          type: object
    BrowserDetails:
      type: object
      properties:
        browserName:
          type: string
        browserMajorVersion:
          type: string
        browserFullVersion:
          type: string
        os:
          type: string
        osVersion:
          type: string
        device:
          type: string
        userAgent:
          type: string
    Confidence:
      type: object
      properties:
        score:
          type: number
          format: float
          minimum: 0
          maximum: 1
    EventsGetResponse:
      type: object
      properties:
        products:
          $ref: '#/components/schemas/Products'
    SignalResponseIdentification:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Identification'
    SignalResponseBotd:
      type: object
      properties:
        data:
          type: object
          properties:
            bot:
              type: object
              properties:
                result:
                  type: string
                  enum:
                  - notDetected
                  - good
                  - bad
    Identification:
      type: object
      properties:
        visitorId:
          type: string
          description: Stable unique identifier for the visitor.
        requestId:
          type: string
          description: Unique identifier of the identification event.
        linkedId:
          type: string
        timestamp:
          type: integer
          format: int64
          description: Time of the event as a Unix epoch (ms).
        time:
          type: string
          format: date-time
        url:
          type: string
        ip:
          type: string
        confidence:
          $ref: '#/components/schemas/Confidence'
        visitorFound:
          type: boolean
        incognito:
          type: boolean
        browserDetails:
          $ref: '#/components/schemas/BrowserDetails'
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: Auth-API-Key
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key