Skip to main content

How to install

Using Maven

Add this dependency to your project’s POM:
XML
<repositories>
  <repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
  </repository>
</repositories>
XML
<dependency>
  <groupId>com.github.fingerprintjs</groupId>
  <artifactId>java-sdk</artifactId>
  <version>v8.0.0</version>
</dependency>

Using Gradle

Add this dependency to your project’s build file:
Groovy
// build.gradle
repositories {
  maven { url 'https://jitpack.io' }
}

dependencies {
  implementation "com.github.fingerprintjs:java-sdk:v8.0.0"
}
Kotlin
// build.gradle.kts
repositories {
  maven {
    url = uri("https://jitpack.io")
  }
}

dependencies {
  implementation("com.github.fingerprintjs:java-sdk:v8.0.0")
}

Others

Generate the JAR file:
Bash
./gradlew jar
Then manually install sdk/build/libs/java-sdk-8.0.0.jar.

Usage

Initialize the client instance and use it to make API requests. You need to specify your secret API key and region (if it is not US/Global).
Java
import com.fingerprint.v4.api.FingerprintApi;
import com.fingerprint.v4.model.Event;
import com.fingerprint.v4.model.EventSearch;
import com.fingerprint.v4.sdk.ApiClient;
import com.fingerprint.v4.sdk.ApiException;
import com.fingerprint.v4.sdk.Configuration;
import com.fingerprint.v4.sdk.Region;

public class FingerprintApiExample {
  public static void main(String... args) {
    ApiClient client = Configuration.getDefaultApiClient(
      "SECRET_API_KEY",
      Region.GLOBAL
      // Region.EUROPE
      // Region.ASIA
    );
    FingerprintApi api = new FingerprintApi(client);

    // Search events for a specific visitor
    try {
      EventSearch response = api.searchEvents(
        new FingerprintApi.SearchEventsOptionalParams()
          .setVisitorId("VISITOR_ID")
          .setLimit(10)
      );
      System.out.println(response.getEvents());
    } catch (ApiException e) {
      System.err.println(e.getMessage());
    }

    // Get a specific identification event
    try {
      Event event = api.getEvent("EVENT_ID");
      System.out.println(event.getIdentification().getVisitorId());
    } catch (ApiException e) {
      System.err.println(e.getMessage());
    }
  }
}

Migration guide for Java SDK v8.0.0

Version 8.0.0 migrates the SDK from Server API v3 to v4. This is a breaking change.

Package rename

The artifact ID changed from fingerprint-pro-server-api-java-sdk to java-sdk. All import paths changed from com.fingerprint.* to com.fingerprint.v4.*. Gradle (build.gradle):
Groovy
implementation "com.github.fingerprintjs:fingerprint-pro-server-api-java-sdk:v7.x.x"
implementation "com.github.fingerprintjs:java-sdk:v8.0.0"

Import changes

All imports change from com.fingerprint.* to com.fingerprint.v4.*:
Java
import com.fingerprint.api.FingerprintApi; 
import com.fingerprint.model.EventsGetResponse; 
import com.fingerprint.sdk.ApiClient; 
import com.fingerprint.sdk.Configuration; 
import com.fingerprint.sdk.Region; 
import com.fingerprint.v4.api.FingerprintApi; 
import com.fingerprint.v4.model.Event; 
import com.fingerprint.v4.sdk.ApiClient; 
import com.fingerprint.v4.sdk.Configuration; 
import com.fingerprint.v4.sdk.Region; 

getEvent return type

getEvent now returns Event instead of EventsGetResponse. The event object has a flatter structure — Smart Signals are now top-level fields instead of nested under products:
Java
EventsGetResponse response = api.getEvent("EVENT_ID"); 
String visitorId = response.getProducts().getIdentification().getData().getVisitorId(); 
BotdBotResult botResult = response.getProducts().getBotd().getData().getBot().getResult(); 
Event event = api.getEvent("EVENT_ID"); 
String visitorId = event.getIdentification().getVisitorId(); 
BotResult botResult = event.getBot(); 

getVisits replaced by searchEvents

getVisits and getRelatedVisitors have been removed. Use searchEvents to query visitor history:
Java
VisitorsGetResponse response = api.getVisits("VISITOR_ID"); 
EventSearch response = api.searchEvents( 
  new FingerprintApi.SearchEventsOptionalParams() 
    .setVisitorId("VISITOR_ID") 
    .setLimit(10) 
); 

Documentation

You can find the full documentation in the official GitHub repository.