Skip to main content
POST
/
v1
/
fingerprint
/
lookup
C#
// POST /v1/fingerprint/lookup
const stytch = require('stytch');

const client = new stytch.B2BClient({
  project_id: '${projectId}',
  secret: '${secret}',
});

const params = {
  telemetry_id: "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
};

client.Fraud.Fingerprint.Lookup(params)
  .then(resp => { console.log(resp) })
  .catch(err => { console.log(err) });
// POST /v1/fingerprint/lookup
package main

import (
"context"
"log"

"github.com/stytchauth/stytch-go/v18/stytch/consumer/fraud/fingerprint"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/stytchapi"
)

func main() {
client, err := stytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}

params := &fingerprint.LookupParams{
TelemetryID: "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
}

resp, err := client.Fraud.Fingerprint.Lookup(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}

log.Println(resp)
}
// POST /v1/fingerprint/lookup
package com.example;

import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.fraudfingerprint.LookupRequest;
import com.stytch.java.consumer.StytchClient;

public class Main {
public static void main(String[] args) {
StytchClient.configure("${projectId}", "${secret}");

LookupRequest params = new LookupRequest();
params.setTelemetryId("026ac93b-8cdf-4fcb-bfa6-36a31cfecac1");

Object result = StytchClient.getFraud().getFingerprint().lookup(params);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}
// POST /v1/fingerprint/lookup
package com.example

import com.stytch.java.consumer.StytchClient
import com.stytch.java.consumer.models.fraudfingerprint.LookupRequest

fun main() {
StytchClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)

when (
val result =
StytchClient.fraud.fingerprint.lookup(
LookupRequest(
telemetryId = "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}
// POST /v1/fingerprint/lookup
const stytch = require('stytch');

const client = new stytch.Client({
project_id: '${projectId}',
secret: '${secret}',
});

const params = {
telemetry_id: "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
};

client.fraud.fingerprint.lookup(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });
$response = $client->fraud->fingerprint->lookup([
'telemetry_id' => '026ac93b-8cdf-4fcb-bfa6-36a31cfecac1',
]);
# POST /v1/fingerprint/lookup
from stytch import Client

client = Client(
project_id="${projectId}",
secret="${secret}",
)

resp = client.fraud.fingerprint.lookup(
telemetry_id="026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
)

print(resp)
# frozen_string_literal: true

# POST /v1/fingerprint/lookup
require 'stytch'

client = Stytch::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)

resp = client.fraud.fingerprint.lookup(
telemetry_id: "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1"

)

puts resp
// POST /v1/fingerprint/lookup
use stytch::consumer::client::Client;
use stytch::consumer::fraud_fingerprint::LookupRequest;

fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.fraud.fingerprint.lookup(
LookupRequest{
telemetry_id: "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}
# POST /v1/fingerprint/lookup
curl --request POST \
--url https://telemetry.stytch.com/v1/fingerprint/lookup \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json' \
-d '{
"telemetry_id": "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1"
}'
{
  "request_id": "<string>",
  "telemetry_id": "<string>",
  "fingerprints": {
    "network_fingerprint": "<string>",
    "hardware_fingerprint": "<string>",
    "browser_fingerprint": "<string>",
    "visitor_fingerprint": "<string>",
    "visitor_id": "<string>",
    "browser_id": "<string>"
  },
  "verdict": {
    "reasons": [
      "<string>"
    ],
    "detected_device_type": "<string>",
    "is_authentic_device": true,
    "verdict_reason_overrides": [
      {
        "verdict_reason": "<string>"
      }
    ],
    "rule_match_identifier": "<string>"
  },
  "external_metadata": {
    "external_id": "<string>",
    "organization_id": "<string>",
    "user_action": "<string>"
  },
  "created_at": "<string>",
  "expires_at": "<string>",
  "status_code": 123,
  "properties": {
    "network_properties": {
      "ip_address": "<string>",
      "asn": {
        "asn": "<string>",
        "name": "<string>",
        "network": "<string>"
      },
      "ip_geolocation": {
        "city": "<string>",
        "region": "<string>",
        "country": "<string>"
      },
      "is_proxy": true,
      "is_vpn": true
    },
    "browser_properties": {
      "user_agent": "<string>"
    }
  },
  "raw_signals": {}
}
{
"status_code": 401,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "unauthorized_credentials",
"error_message": "Unauthorized credentials.",
"error_url": "https://stytch.com/docs/api/errors/401"
}
{
"status_code": 429,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "too_many_requests",
"error_message": "Too many requests have been made.",
"error_url": "https://stytch.com/docs/api/errors/429"
}
{
"status_code": 500,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "internal_server_error",
"error_message": "Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong.",
"error_url": "https://stytch.com/docs/api/errors/500"
}

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Body

application/json

Request type

telemetry_id
string
required

The telemetry ID associated with the fingerprint getting looked up.

external_metadata
object

External identifiers that you wish to associate with the given telemetry ID. You will be able to search for fingerprint results by these identifiers in the DFP analytics dashboard. External metadata fields may not exceed 65 characters. They may only contain alphanumerics and the characters _ - + . or @.

Response

Successful response

request_id
string
required

Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue.

telemetry_id
string
required

The telemetry ID associated with the fingerprint getting looked up.

fingerprints
object
required

A Stytch fingerprint consists of the following identifiers:

verdict
object
required

The metadata associated with each fingerprint

external_metadata
object
required

External identifiers that you wish to associate with the given telemetry ID. You will be able to search for fingerprint results by these identifiers in the DFP analytics dashboard. External metadata fields may not exceed 65 characters. They may only contain alphanumerics and the characters _ - + . or @.

created_at
string
required

The time when the fingerprint was taken. Values conform to the RFC 3339 standard and are expressed in UTC, e.g. 2021-12-29T12:33:09Z.

expires_at
string
required

The timestamp when the fingerprint expires. Values conform to the RFC 3339 standard and are expressed in UTC, e.g. 2021-12-29T12:33:09Z.

status_code
integer<int32>
required

The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors.

properties
object

Additional information about the user's browser and network.

raw_signals
object

The raw device attributes, such as screen size, that were collected by the Device Fingerprinting product to generate the fingerprints and verdict. You must be specifically enabled for the raw signals feature to see this field. You can find documentation for the specific fields in the guides.