curl --request GET \
--url https://api.fpjs.io/visitors/{visitor_id} \
--header 'Auth-API-Key: <api-key>'import requests
url = "https://api.fpjs.io/visitors/{visitor_id}"
headers = {"Auth-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'Auth-API-Key': '<api-key>'}};
fetch('https://api.fpjs.io/visitors/{visitor_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fpjs.io/visitors/{visitor_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Auth-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fpjs.io/visitors/{visitor_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Auth-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fpjs.io/visitors/{visitor_id}")
.header("Auth-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fpjs.io/visitors/{visitor_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Auth-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyGet visits by visitor ID
π§ Deprecation Notice
Server API v3 is deprecated as of October 31, 2026, and stops working on October 31, 2027, according to the API Deprecation Policy. If you still use v3, follow the migration guide to move to v4 before that date.
This endpoint is deprecated. Use GET /events/search to query visit history or filter across multiple events.
GET /visitors/{visitor_id} currently returns at most one visit in visits, even when no filters are provided.
Only information from the Identification product is returned.
Headers
Retry-Afterβ Present in case of429 Too many requests. Indicates how long you should wait before making a follow-up request. The value is non-negative decimal integer indicating the seconds to delay after the response is received.
curl --request GET \
--url https://api.fpjs.io/visitors/{visitor_id} \
--header 'Auth-API-Key: <api-key>'import requests
url = "https://api.fpjs.io/visitors/{visitor_id}"
headers = {"Auth-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'Auth-API-Key': '<api-key>'}};
fetch('https://api.fpjs.io/visitors/{visitor_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fpjs.io/visitors/{visitor_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Auth-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fpjs.io/visitors/{visitor_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Auth-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fpjs.io/visitors/{visitor_id}")
.header("Auth-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fpjs.io/visitors/{visitor_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Auth-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyvisitorId. Use the visitorId as a URL path parameter. Only information from the Identification product is returned.
Headers
Retry-Afterβ Present in case of429 Too many requests. Indicates how long you should wait before making a follow-up request. The value is non-negative decimal integer indicating the seconds to delay after the response is received.
Authorizations
Path Parameters
Unique visitor identifier issued by Fingerprint Identification and all active Smart Signals.
Query Parameters
Filter visits by your custom identifier.
You can use linkedId to associate identification requests with your own identifier, for example: session ID, purchase ID, or transaction ID. You can then use this linked_id parameter to retrieve all events associated with your custom identifier.
Limit scanned results.
GET /visitors/{visitor_id} currently returns at most one visit. Use GET /events/search for paginated multi-event queries.
x >= 0Deprecated pagination parameter retained for backward compatibility.
GET /visitors/{visitor_id} currently returns at most one visit, so pagination is not expected. Use GET /events/search for paginated results.
β οΈ Deprecated pagination method, please use paginationKey instead. Timestamp (in milliseconds since epoch) used to paginate results.
GET /visitors/{visitor_id} currently returns at most one visit, so pagination is not expected.
x >= 0Response
OK.
Deprecated response shape for GET /visitors/{visitor_id}. The visits array currently contains at most one item. Use GET /events/search for multi-event history and filtering.
1Show child attributes
Show child attributes
β οΈ Deprecated paging attribute, please use paginationKey instead. Timestamp of the last visit in the current page of results.
Use this value in the following request as the paginationKey parameter to get the next result.
Was this page helpful?