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 C# SDK is automatically generated by the Swagger Codegen project:
- API version: 3
- SDK version: 6.0.1
- Build package: io.swagger.codegen.v3.generators.dotnet.CSharpClientCodegen
- .NET 6.0 or later (we keep the Microsoft support policy)
We recommend installing the package from NuGet:
dotnet add package FingerprintPro.ServerSdk
// See https://aka.ms/new-console-template for more information
// Example usage of our SDK
// Import namespaces
using FingerprintPro.ServerSdk.Api;
using FingerprintPro.ServerSdk.Client;
// Initialize configuration and add your api key
var configuration = new Configuration(Environment.GetEnvironmentVariable("API_KEY")!);
var api = new FingerprintApi(
configuration
);
var requestId = Environment.GetEnvironmentVariable("REQUEST_ID")!;
var visitorId = Environment.GetEnvironmentVariable("VISITOR_ID")!;
var visits = api.GetVisits(visitorId);
var events = api.GetEvent(requestId);
Console.WriteLine(visits);
Console.WriteLine(events);
You can also access the raw HTTP response by using the WithHttpInfo
methods:
// See https://aka.ms/new-console-template for more information
// Example usage of our SDK
// Import namespaces
using FingerprintPro.ServerSdk.Api;
using FingerprintPro.ServerSdk.Client;
// Initialize configuration and add your api key
var configuration = new Configuration(Environment.GetEnvironmentVariable("API_KEY")!);
var api = new FingerprintApi(
configuration
);
var requestId = Environment.GetEnvironmentVariable("REQUEST_ID")!;
var visitorId = Environment.GetEnvironmentVariable("VISITOR_ID")!;
var visits = api.GetVisitsWithHttpInfo(visitorId);
// HttpResponseMessage
Console.WriteLine(visits.Response);
// Response data
Console.WriteLine(visits.Data);
If your subscription is in region other than US, you need to change the region in the configuration:
using FingerprintPro.ServerSdk.Client;
var configuration = new Configuration(Environment.GetEnvironmentVariable("API_KEY")!)
{
Region = Region.Eu // or Region.Asia
};
This SDK provides utility methods for decoding sealed results.
using FingerprintPro.ServerSdk;
var sealedResult = Environment.GetEnvironmentVariable("BASE64_SEALED_RESULT")!;
var sealedKey = Environment.GetEnvironmentVariable("BASE64_KEY")!;
var events = Sealed.UnsealEventResponse(Convert.FromBase64String(sealedResult), new[]
{
new Sealed.DecryptionKey(Convert.FromBase64String(sealedKey), Sealed.DecryptionAlgorithm.Aes256Gcm)
});
Console.WriteLine(events.ToJson());
To learn more, refer to example located in src/FingerprintPro.ServerSdk.SealedResultExampleNet7/Program.cs.
This SDK provides utility method for verifying the HMAC signature of the incoming webhook request.
namespace FingerprintAspNetCore.Areas.Identity.Pages;
using FingerprintPro.ServerSdk;
using Microsoft.AspNetCore.Mvc;
using System;
using System.IO;
using System.Threading.Tasks;
[Route("api/[controller]")]
[ApiController]
public class WebhookController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post()
{
try
{
var secret = Environment.GetEnvironmentVariable("WEBHOOK_SIGNATURE_SECRET");
if (string.IsNullOrEmpty(secret))
{
return BadRequest(new { message = "Secret key is not configured." });
}
var header = Request.Headers["fpjs-event-signature"].ToString();
if (string.IsNullOrEmpty(header))
{
return BadRequest(new { message = "Missing fpjs-event-signature header." });
}
using var memoryStream = new MemoryStream();
await Request.Body.CopyToAsync(memoryStream);
var data = memoryStream.ToArray();
// Validate webhook signature
var isValid = Webhook.IsValidWebhookSignature(
header,
data,
secret);
if (!isValid)
{
return Forbid(new { message = "Webhook signature is invalid." });
}
// Process the webhook data here
return Ok(new { message = "Webhook received." });
}
catch (Exception e)
{
return StatusCode(500, new { error = e.Message });
}
}
}
To learn more, refer to example located in src/FingerprintPro.ServerSdk.WebhookExampleNet8/Program.cs.
All URIs are relative to https://api.fpjs.io
Class | Method | HTTP request | Description |
---|---|---|---|
FingerprintApi | DeleteVisitorData | DELETE /visitors/{visitor_id} | Delete data by visitor ID |
FingerprintApi | GetEvent | GET /events/{request_id} | Get event by request ID |
FingerprintApi | GetVisits | GET /visitors/{visitor_id} | Get visits by visitor ID |
- Model.ASN
- Model.BotdDetectionResult
- Model.BotdResult
- Model.BrowserDetails
- Model.ClonedAppResult
- Model.Common403ErrorResponse
- Model.Confidence
- Model.DataCenter
- Model.DeprecatedIPLocation
- Model.DeprecatedIPLocationCity
- Model.EmulatorResult
- Model.ErrorCommon403Response
- Model.ErrorCommon429Response
- Model.ErrorCommon429ResponseError
- Model.ErrorEvent404Response
- Model.ErrorEvent404ResponseError
- Model.ErrorVisits403
- Model.ErrorVisitsDelete400Response
- Model.ErrorVisitsDelete400ResponseError
- Model.ErrorVisitsDelete404Response
- Model.ErrorVisitsDelete404ResponseError
- Model.EventResponse
- Model.FactoryResetResult
- Model.FridaResult
- Model.HighActivityResult
- Model.IPLocation
- Model.IPLocationCity
- Model.IdentificationError
- Model.IncognitoResult
- Model.IpBlockListResult
- Model.IpBlockListResultDetails
- Model.IpInfoResult
- Model.IpInfoResultV4
- Model.IpInfoResultV6
- Model.JailbrokenResult
- Model.Location
- Model.LocationSpoofingResult
- Model.PrivacySettingsResult
- Model.ProductError
- Model.ProductsResponse
- Model.ProductsResponseBotd
- Model.ProductsResponseIdentification
- Model.ProductsResponseIdentificationData
- Model.ProxyResult
- Model.RawDeviceAttributesResult
- Model.Response
- Model.ResponseVisits
- Model.RootAppsResult
- Model.SeenAt
- Model.SignalResponseClonedApp
- Model.SignalResponseEmulator
- Model.SignalResponseFactoryReset
- Model.SignalResponseFrida
- Model.SignalResponseHighActivity
- Model.SignalResponseIncognito
- Model.SignalResponseIpBlocklist
- Model.SignalResponseIpInfo
- Model.SignalResponseJailbroken
- Model.SignalResponseLocationSpoofing
- Model.SignalResponsePrivacySettings
- Model.SignalResponseProxy
- Model.SignalResponseRawDeviceAttributes
- Model.SignalResponseRootApps
- Model.SignalResponseSuspectScore
- Model.SignalResponseTampering
- Model.SignalResponseTor
- Model.SignalResponseVirtualMachine
- Model.SignalResponseVpn
- Model.Subdivision
- Model.SuspectScoreResult
- Model.TamperingResult
- Model.TooManyRequestsResponse
- Model.TorResult
- Model.VirtualMachineResult
- Model.Visit
- Model.VpnResult
- Model.VpnResultMethods
- Model.WebhookVisit
- Type: API key
- API key parameter name: Auth-API-Key
- Location: HTTP header
- Type: API key
- API key parameter name: api_key
- Location: URL query string
To report problems, ask questions or provide feedback, please use Issues. If you need private support, you can email us at [email protected].
This project is licensed under the MIT license.