# README
Fingerprint Pro Server Go SDK
Fingerprint is a device intelligence platform offering 99.5% accurate visitor identification. Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device.
This Go package is automatically generated by the Swagger Codegen project:
- API version: 3
- Package version: 4.1.0
- Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen
Requirements
Go Lang 1.17 or higher
We keep the Go support policy and support the last two major versions of Go.
Installation & Usage
- Get the package from GitHub:
go get github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/v4
- Import and use the library:
package main
import (
"context"
"fmt"
"github.com/antihax/optional"
"github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk/v4"
"log"
)
func main() {
cfg := sdk.NewConfiguration()
client := sdk.NewAPIClient(cfg)
// You can also use sdk.RegionUS or sdk.RegionAsia. Default one is sdk.RegionUS
//cfg.ChangeRegion(sdk.RegionEU)
// Configure authorization, in our case with API Key
auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{
Key: "SECRET_API_KEY",
})
// Usually this data will come from your frontend app
visitorId := "VISITOR_ID"
opts := sdk.FingerprintApiGetVisitsOpts{
RequestId: optional.NewString("REQUEST_ID"),
}
response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts)
fmt.Printf("%+v\n", httpRes)
if err != nil {
switch err.(type) {
case *sdk.GenericSwaggerError:
switch model := err.(sdk.GenericSwaggerError).Model().(type) {
case sdk.ManyRequestsResponse:
log.Printf("Too many requests, retry after %d seconds", model.RetryAfter)
}
default:
log.Fatal(err)
}
}
fmt.Printf("Got response with visitorId: %s", response.VisitorId)
}
Note You can also check examples located in example directory. To run the examples:
cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run getVisits.go
Alternatively, you can define your environment variables inside
example/.env
file and run the examples without passing them as arguments. If your subscription region is not the “Global/US” region, useREGION=eu
orREGION=ap
in the line above or in your local.env
file.
Region
If your subscription is in region other than US, you need to change the region in the configuration:
import (
"github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk/v4"
)
func main() {
cfg := sdk.NewConfiguration()
cfg.ChangeRegion(sdk.RegionEU) // or sdk.RegionAsia
}
Sealed results
This SDK provides utility methods for decoding sealed results.
package main
import (
"encoding/base64"
"fmt"
"github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk/sealed"
"os"
)
// Utility function to decode base64 string
func base64Decode(input string) []byte {
output, err := base64.StdEncoding.DecodeString(input)
if err != nil {
panic(err)
}
return output
}
func main() {
// Sealed result from the frontend.
sealedResult := base64Decode(os.Getenv("BASE64_SEALED_RESULT"))
// Base64 encoded key generated in the dashboard.
key := base64Decode(os.Getenv("BASE64_KEY"))
keys := []sealed.DecryptionKey{
// You can provide more than one key to support key rotation. The SDK will try to decrypt the result with each key.
{
Key: key,
Algorithm: sealed.AlgorithmAES256GCM,
},
}
unsealedResponse, err := sealed.UnsealEventsResponse(sealedResult, keys)
if err != nil {
panic(err)
}
// Do something with unsealed response, e.g: send it back to the frontend.
}
To learn more, refer to example located in example/sealedResults.go.
Documentation for API Endpoints
All URIs are relative to https://api.fpjs.io
Class | Method | HTTP request | Description |
---|---|---|---|
FingerprintApi | GetEvent | Get /events/{request_id} | Get event by requestId |
FingerprintApi | GetVisits | Get /visitors/{visitor_id} | Get visits by visitorId |
Documentation For Models
- Asn
- BotdDetectionResult
- BotdResult
- BrowserDetails
- Confidence
- DataCenter
- ErrorEvent403Response
- ErrorEvent403ResponseError
- ErrorEvent404Response
- ErrorEvent404ResponseError
- ErrorVisits403
- EventResponse
- HighActivityResult
- IdentificationError
- IpBlockListResult
- IpBlockListResultDetails
- IpInfoResult
- IpInfoResultV4
- IpInfoResultV6
- IpLocation
- IpLocationCity
- Location
- LocationSpoofingResult
- ManyRequestsResponse
- ProductError
- ProductsResponse
- ProductsResponseBotd
- ProductsResponseIdentification
- ProductsResponseIdentificationData
- Response
- ResponseVisits
- SeenAt
- SignalResponseClonedApp
- SignalResponseClonedAppData
- SignalResponseEmulator
- SignalResponseEmulatorData
- SignalResponseFactoryReset
- SignalResponseFactoryResetData
- SignalResponseFrida
- SignalResponseFridaData
- SignalResponseHighActivity
- SignalResponseIncognito
- SignalResponseIncognitoData
- SignalResponseIpBlocklist
- SignalResponseIpInfo
- SignalResponseJailbroken
- SignalResponseJailbrokenData
- SignalResponseLocationSpoofing
- SignalResponsePrivacySettings
- SignalResponsePrivacySettingsData
- SignalResponseProxy
- SignalResponseProxyData
- SignalResponseRawDeviceAttributes
- SignalResponseRootApps
- SignalResponseRootAppsData
- SignalResponseTampering
- SignalResponseTor
- SignalResponseTorData
- SignalResponseVirtualMachine
- SignalResponseVirtualMachineData
- SignalResponseVpn
- Subdivision
- TamperingResult
- Visit
- VpnResult
- VpnResultMethods
- WebhookSignalResponseClonedApp
- WebhookSignalResponseEmulator
- WebhookSignalResponseFactoryReset
- WebhookSignalResponseFrida
- WebhookSignalResponseJailbroken
- WebhookSignalResponsePrivacySettings
- WebhookSignalResponseProxy
- WebhookSignalResponseRootApps
- WebhookSignalResponseTor
- WebhookSignalResponseVirtualMachine
- WebhookVisit
Documentation For Authorization
ApiKeyHeader
- Type: API key
- API key parameter name: Auth-API-Key
- Location: HTTP header
ApiKeyQuery
- Type: API key
- API key parameter name: api_key
- Location: URL query string
Documentation for sealed results
Author
Support and feedback
To report problems, ask questions or provide feedback, please use Issues. If you need private support, you can email us at [email protected].
License
This project is licensed under the MIT license.