> ## Documentation Index
> Fetch the complete documentation index at: https://stytch.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Fingerprint Lookup (Deprecated)

<Warning>
  This API endpoint is **deprecated**. Please use the [POST version of Fingerprint Lookup](/docs/api-reference/fraud/api/fingerprint-lookup) instead.

  The POST endpoint includes support for new features like IPGEO data and avoids potential caching issues. This older GET endpoint is maintained only for compatibility for existing clients.
</Warning>

Lookup the associated fingerprint to the Telemetry ID returned from the GetTelemetryID(). This endpoint is deprecated and clients should use the [POST version of Fingerprint Lookup](/docs/api-reference/fraud/api/fingerprint-lookup) instead.

Learn more about the different fingerprint types and verdicts in our [DFP guide](/docs/fraud-risk/concepts/device-fingerprinting/overview).

Make a decision based on the returned verdict:

* `ALLOW` - This is a known valid device grouping or device profile that is part of the default ALLOW listed set of known devices by Stytch. This grouping is made up of verified device profiles that match the characteristics of known/authentic traffic origins.
* `BLOCK` - This is a known bad or malicious device profile that is undesirable and should be blocked from completing the privileged action in question.
* `CHALLENGE` - This is an unknown or potentially malicious device that should be put through increased friction such as 2FA or other forms of extended user verification before allowing the privileged action to proceed.

If the `telemetry_id` is not found, we will return a 404 `telemetry_id_not_found` [error](/docs/api-reference/fraud/api/errors/404#telemetry_id_not_found). We recommend treating 404 errors as a `BLOCK`, since it could be a sign of an attacker trying to bypass DFP protections by generating fake telemetry IDs.

### Query parameters

<ParamField path="telemetry_id" type="string" required>
  The telemetry ID associated with the fingerprint getting looked up.
</ParamField>

### Response fields

<ResponseField name="request_id" type="string">
  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.
</ResponseField>

<ResponseField name="status_code" type="number">
  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.
</ResponseField>

<ResponseField name="fingerprints" type="object">
  A Stytch fingerprint consists of the following identifiers:

  <Expandable title="identifiers">
    <ResponseField name="visitor_id" type="string">
      The cookie stored on the user's device that uniquely identifies them.
    </ResponseField>

    <ResponseField name="browser_id" type="string">
      Combination of VisitorID and NetworkFingerprint to create a clear identifier of a browser.
    </ResponseField>

    <ResponseField name="visitor_fingerprint" type="string">
      Cookie-less way of identifying a unique user.
    </ResponseField>

    <ResponseField name="browser_fingerprint" type="string">
      Combination of signals to identify a browser and its specific version.
    </ResponseField>

    <ResponseField name="hardware_fingerprint" type="string">
      Combinations of signals to identify an operating system and architecture.
    </ResponseField>

    <ResponseField name="network_fingerprint" type="string">
      Combination of signals associated with a specific network commonly known as TLS fingerprinting.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="verdict" type="object">
  The metadata associated with each fingerprint

  <Expandable title="actions">
    <ResponseField name="action" type="string">
      The suggested action based on the fingerprint review. The available actions are:
    </ResponseField>

    <ResponseField name="is_authentic_device" type="boolean">
      The assessment of whether this is an authentic device. It will be false if hardware or browser deception is detected.
    </ResponseField>

    <ResponseField name="detected_device_type" type="string">
      The operating system and architecture that took the fingerprint.
    </ResponseField>

    <ResponseField name="reasons" type="array[string]">
      A set of contextual clues to inform why a CHALLENGE or BLOCK action was suggested. For a list of possible Reasons, see [Warning Flags (Verdict Reasons)](/docs/fraud-risk/development/reference/warning-flags-verdict-reasons).
    </ResponseField>

    <ResponseField name="rule_match_type" type="string">
      The type of rule match that was applied (e.g. VISITOR\_ID), if any. This field will only be present if there is a RULE\_MATCH reason in the list of verdict reasons.
    </ResponseField>

    <ResponseField name="rule_match_identifier" type="string">
      The rule that was applied (e.g. a specific visitor ID value), if any. This field will only be present if there is a RULE\_MATCH reason in the list of verdict reasons.
    </ResponseField>

    <ResponseField name="verdict_reason_overrides" type="array[object]">
      A list of verdict reason overrides that were applied, if any.
    </ResponseField>

    <ResponseField name="verdict_reason" type="string">
      The verdict reason that was overridden.
    </ResponseField>

    <ResponseField name="override_action" type="string">
      The action that was applied for the given verdict reason.
    </ResponseField>
  </Expandable>
</ResponseField>

<Panel>
  <RequestExample>
    ```bash cURL theme={null}
      curl --request GET \
        --url 'https://telemetry.stytch.com/v1/fingerprint/lookup?telemetry_id=026ac93b-8cdf-4fcb-bfa6-36a31cfecac1' \
        -u '${projectId}:${secret}'
    ```
  </RequestExample>

  <ResponseExample>
    ```json 200 theme={null}
    {
      "created_at": "2023-01-01T00:00:00Z",
      "expires_at": "2033-01-01T00:00:00Z",
      "fingerprints": {
        "browser_fingerprint": "browser-fingerprint-0b535ab5-ecff-4bc9-b845-48bf90098945",
        "browser_id": "browser-id-99cffb93-6378-48a5-aa90-d680232a7979",
        "hardware_fingerprint": "hardware-fingerprint-4af7a05d-cf77-4ff7-834f-0622452bb092",
        "network_fingerprint": "network-fingerprint-b5060259-40e6-3f29-8215-45ae2da3caa1",
        "visitor_fingerprint": "visitor-fingerprint-6ecf5792-1157-41ad-9ad6-052d31160cee",
        "visitor_id": "visitor-6139cbcc-4dda-4b1f-b1c0-13c08ec64d72"
      },
      "status_code": 200,
      "telemetry_id": "026ac93b-8cdf-4fcb-bfa6-36a31cfecac1",
      "verdict": {
        "action": "ALLOW",
        "detected_device_type": "...",
        "is_authentic_device": true,
        "reasons": [...],
        "rule_match_type": "",
        "rule_match_identifier": ""
      }
    }
    ```

    ```json 401 theme={null}
    {
      "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"
    }
    ```

    ```json 429 theme={null}
    {
      "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"
    }
    ```

    ```json 500 theme={null}
    {
      "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"
    }
    ```
  </ResponseExample>
</Panel>
