ДАРА ОТПЕЧАТОК
Разделы документации

ДАРА ОТПЕЧАТОКДокументацияPOST /visitor/info

POST /visitor/info

POST /visitor/info отдаёт серверу сайта профиль посетителя: визиты, сессии, устройство, возможные совпадения и признак нескольких аккаунтов на одном устройстве.

Профиль посетителя для сервера сайта. Ключ — секретный. Посетитель чужого сайта — 404.

{
  "success": true,
  "visitor": {
    "uuid": "…", "is_identified": true, "email": "…", "phone": null, "first_name": "…", "last_name": null,
    "total_visits": 7, "total_actions": 12, "created_at": "2026-04-12 09:23:11", "last_visit_at": "…",
    "is_bot": false,                    // все сессии посетителя — роботы
    "last_ip_kind": null                // hosting | mobile | null (у сессий до 10.11.2026 бывают regular и proxy)
  },
  "ambiguous": false,
  "device": {
    "hash_prefix": "3fa1c9d2",
    "is_common": false,                 // true — по устройству людей не различить
    "common_reason": null,              // low_entropy_platform | many_visitors | many_networks | unstable_signals
    "visitors_on_device_90d": 2
  },
  "possible_matches": [
    { "visitor_uuid": "…", "confidence": 0.6, "reasons": ["same_device"],
      "is_common_device": false, "last_seen_at": "…", "is_identified": true }
  ],
  "multi_account": {
    "suspected": true,                  // на этом устройстве другой аккаунт с другим email
    "other_identified": 1,
    "same_browser_emails": 0,           // другие email из форм этого же браузера
    "confidence": 0.6
  },
  "current_session": null,             // как строка sessions, если передан session_uuid
  "sessions": [
    { "session_uuid": "…", "created_at": "…", "device_type": "desktop", "browser": "Chrome", "os": "Windows 10",
      "ip_address": "203.0.113.7", "landing_page": "https://example.com/", "page_views": 3, "actions_count": 1,
      "utm_source": "yandex", "city": "Казань", "country": "Россия", "isp": "…",
      "ip_kind": null,                  // hosting | mobile | null — по номеру сети (ASN); hosting — отметка, а не приговор: через дата-центры ходят и люди с VPN
      "bot_reason": null }              // user_agent | webdriver | automation | headless | null
  ],
  "identification_events": [ { "event_type": "email_match", "confidence": 0.99, "event_data": { … }, "created_at": "…" } ],
  "linked_profiles": [ { "link_type": "email", "confidence": 1.0, "visitor_uuid": "…", … } ],
  "collected_data": [ { "field_type": "email", "field_name": "registration_email", "parsed_value": "…", "created_at": "…" } ]
}

Все поля — только вашего сайта: сессии, события, данные форм и связанные профили других сайтов не отдаются никогда. Даты — ГГГГ-ММ-ДД ЧЧ:ММ:СС по UTC. Сессий в ответе — 10 последних, событий и данных форм — по 20.

Возможные совпадения: 0,3 — общее устройство, 0,6 — уникальное устройство из разных сетей, 0,8 — уникальное устройство из одной сети. Для общего устройства multi_account.suspected всегда false.

Пример на PHP: проверка при регистрации

Проверка при регистрации: нет ли на этом устройстве другого аккаунта. Сервер берёт uuid из cookie и вызывает API секретным ключом.

function daraCall(string $path, array $data): array
{
    $ch = curl_init('https://fp.daratech.ru/api' . $path);
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 3,
        CURLOPT_HTTPHEADER     => [
            'Content-Type: application/json',
            'Authorization: Bearer ' . getenv('DARA_SECRET_KEY'),   // sk_…
        ],
        CURLOPT_POSTFIELDS => json_encode($data),
    ]);
    $raw = curl_exec($ch);
    return $raw !== false ? (json_decode($raw, true) ?? []) : [];
}

$uuid = $_COOKIE['dara_visitor'] ?? '';
if (preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $uuid)) {
    daraCall('/collect/field', [
        'visitor_uuid' => $uuid,
        'field_type'   => 'email',
        'field_name'   => 'registration_email',
        'field_value'  => $email,
    ]);
    $info = daraCall('/visitor/info', ['visitor_uuid' => $uuid]);
    $possibleMultiAccount = !empty($info['multi_account']['suspected']);
}

Как пользоваться multi_account и possible_matches для поиска нескольких аккаунтов одного человека — на странице Как выявить мультиаккаунты на сайте.