Siberson
Partnership Contact Request a Demo

Siberson Veriket Platform API Integration Guide

Overview

This guide describes how to integrate third-party or internal enterprise systems with the Siberson Veriket platform using its REST API. It is intended for IT administrators, integration engineers, and developers who need to automate discovery jobs, query scan results, or synchronize configuration with Veriket from an external system.

The Veriket API exposes a set of endpoints for controlling scheduled discovery jobs, listing installed discovery agents, managing policies, provisioning vault users, and retrieving detailed scan logs. All endpoints return JSON and are authenticated with a per-tenant company identifier and a public API key.

What is an API?

An Application Programming Interface (API) is a defined contract that allows two software systems to communicate. By calling the Veriket API from your own applications, orchestration tools, or scripts, you can issue commands to Veriket and receive the results programmatically — without using the web-based administration panel.

Prerequisites

To call the Veriket API you must obtain the following values from your administrator or the Siberson support team:

Item Description Source
CompanyGuid Unique identifier assigned to your tenant. Veriket administration panel
PublicKey API access key bound to your tenant. Veriket administration panel
Server URL Base address where the Veriket API is hosted. Siberson support team

Note: Without these three values, all API requests will be rejected with an authentication error. Keep your PublicKey confidential and rotate it immediately if it is compromised.

Authentication

Every request to the Veriket API must include the following two HTTP headers. These headers identify your tenant and authorize the request:

Header Value
X-COMPANY-GUID Your tenant's CompanyGuid
X-PUBLIC-KEY Your tenant's PublicKey

Requests missing either header — or supplying an invalid value — will receive HTTP 401 Unauthorized.

Scheduled Jobs

The Scheduled Jobs endpoints allow you to start, stop, pause, resume, or reset discovery jobs remotely, as well as create new jobs and query the latest activity record of an existing job.

Control a Discovery Job — SetDiscoveryJobInstruction

Sends a control instruction (start, stop, pause, resume, reset) to an existing discovery job identified by its GUID.

Endpoint Details

Property Value
URL {server}/api/v1/SetDiscoveryJobInstruction
Method POST
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Parameters

Parameter Required Description
jobGuid Yes GUID of the discovery job you want to control.
instruction Yes Command to execute. See the Supported Instructions table below.

Example Request

POST /api/v1/SetDiscoveryJobInstruction?jobGuid=abc123-def456&instruction=Start
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

HTTP/1.1 201 Created
Content-Type: application/json

true

Supported Instructions

Instruction Behavior
Start Starts the discovery job.
Stop Stops the discovery job completely.
Pause Temporarily pauses the discovery job.
Resume Resumes a paused discovery job from where it left off.
Reset Resets the discovery job state.

Retrieve Latest Activity Record — GetDiscoveryJobActivityId

Returns the most recent activity record (execution) of a specified discovery job, including its current state and any associated scan logs.

Endpoint Details

Property Value
URL {server}/api/v1/GetDiscoveryJobActivityId
Method GET
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Parameters

Parameter Required Description
jobGuid Yes GUID of the discovery job whose latest activity you want to retrieve.

Example Request

GET /api/v1/GetDiscoveryJobActivityId?jobGuid=abc123-def456
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "JobState": "Completed",
  "Logs": [
    {
      "No": 15061042,
      "OperationDate": "2026-03-02T14:37:45",
      "FileName": "IBAN_5_Records.xlsx",
      "TargetFile": "...\\IBAN\\Archive\\IBAN_5_Records.xlsx",
      "DetectedKeywords": "***********111,***********222,***********333",
      "DetectedKeywordCount": 3,
      "DetectedRule": "IBAN TR Rule",
      "DetectedPolicy": "Credit Card/IBAN Policy",
      "DirectoryPath": "...\\New Folder",
      "ActivityId": "7da422b2-8e7f-407d-b97c-ead2c51fa8f1"
    },
    {
      "No": 15061045,
      "OperationDate": "2026-03-02T14:37:45",
      "FileName": "TCKN__page1.txt",
      "TargetFile": "...\\TCKN\\TCKN__page1.txt",
      "DetectedKeywords": "****(4)",
      "DetectedKeywordCount": 4,
      "DetectedRule": "Column",
      "DetectedPolicy": "Sample Policy",
      "DirectoryPath": "...\\New Folder",
      "ActivityId": "7da422b2-8e7f-407d-b97c-ead2c51fa8f1"
    }
  ]
}

Create a Discovery Job — SetDiscoveryJob

Creates a new discovery job that targets one or more directories on the specified discovery client machines, applying the selected policies.

Endpoint Details

Property Value
URL {server}/api/v1/SetDiscoveryJob
Method POST
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Request Body

The request body must be a JSON object with the following structure:

{
  "Clients": [
    {
      "Mac": "00155D4F9F9A",
      "MachineName": "Machine-1"
    },
    {
      "Mac": "00155D452923",
      "MachineName": "Machine-2"
    }
  ],
  "Directories": [
    "\\\\Server1\\Documents",
    "\\\\Server2\\Documents",
    "\\\\Server3\\Documents",
    "\\\\Server4\\Documents"
  ],
  "Name": "Test06",
  "PoliciesIds": [
    "00B85C73-D14A-4875-80D4-3B0A7C4E449E",
    "43a1f93a-df8f-4009-b53a-36b42eb98352",
    "a8b79957-7998-4932-95cd-f3d12c7dd257",
    "bfc46e63-01bf-46bf-8a65-03a899e4a43a"
  ],
  "User": {
    "Id": "",
    "Password": "test",
    "Username": "test"
  }
}

Example Request

POST /api/v1/SetDiscoveryJob
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234
Content-Type: application/json

Example Response

On success, the API returns the GUID of the newly created discovery job.

HTTP/1.1 201 Created
Content-Type: application/json

"e5521878-b1ac-4ed1-9b03-733e14c07bc5"

Request Body Field Reference

Field Type Description
Clients array List of discovery client machines that will execute the scan. Each entry requires a MAC address and a machine name.
Clients[].Mac string MAC address of the discovery client (no separators).
Clients[].MachineName string Hostname of the discovery client.
Directories array UNC or local paths to be scanned by the job.
Name string Human-readable name of the discovery job.
PoliciesIds array List of policy GUIDs to apply during the scan.
User object Credential used to access the target directories.
User.Id string Optional. Existing vault user ID; leave empty to use inline credentials.
User.Username string Username for the scan credential.
User.Password string Password for the scan credential.

Discovery Clients

Discovery clients are the server and endpoint machines on which the Veriket Discovery agent is installed. The endpoints in this section let you inventory those clients.

List Installed Discovery Clients — GetDiscoveryClients

Returns the full list of machines where the Veriket Discovery agent is currently installed and registered with the tenant.

Endpoint Details

Property Value
URL {server}/api/v1/GetDiscoveryClients
Method GET
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Example Request

GET /api/v1/GetDiscoveryClients
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "Clients": [
    {
      "Application": "Veriket Discovery",
      "Id": "344E1360-C0A2-459F-80F2-32B72088AE9A",
      "Ip": "0.0.0.0",
      "Mac": "00155D452923",
      "MachineName": "Machine-1",
      "OperationSystem": "Microsoft Windows 10 Pro for Workstations",
      "Version": "3.7.8.0"
    },
    {
      "Application": "Veriket Discovery",
      "Id": "3AA12D6D-814E-4163-B65B-61D8ED4AD263",
      "Ip": "0.0.0.0",
      "Mac": "00155D4F9F9A",
      "MachineName": "Machine-2",
      "OperationSystem": "Microsoft Windows 10 Pro for Workstations",
      "Version": "3.7.8.0"
    }
  ]
}

Policies

Policies define what the discovery engine looks for during a scan (for example, credit card numbers, IBAN values, or TCKN identifiers) and how matches are classified. The endpoints in this section allow you to enumerate policies that are compatible with Veriket Discovery.

List Available Policies — GetPolicies

Returns the list of policies defined in the tenant that are valid for use with Veriket Discovery jobs.

Endpoint Details

Property Value
URL {server}/api/v1/GetPolicies
Method GET
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Example Request

GET /api/v1/GetPolicies
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "Policies": [
    {
      "Category": "PCI",
      "Classification": "Confidential",
      "ClassificationScope": "Veriket",
      "Id": "00B85C73-D14A-4875-80D4-3B0A7C4E449E",
      "Name": "Credit Card/IBAN Policy",
      "Region": "ALL",
      "Sensitivity": "Contains Personal Data"
    },
    {
      "Category": "Data Privacy",
      "Classification": "Strictly Confidential",
      "ClassificationScope": "Veriket",
      "Id": "7f9b9a2a-af5f-416d-a4ae-c303c9268ac4",
      "Name": "Tax ID No Policy",
      "Region": "Turkey",
      "Sensitivity": null
    }
  ]
}

Vault Users

Vault users are the credentials Veriket uses to access file shares, database servers, and other protected resources during a discovery scan. These credentials are stored encrypted inside the Veriket credential vault and referenced by GUID in discovery job definitions.

List Vault Users — GetVaultUsers

Returns the list of credential records currently registered in the Veriket vault for the tenant.

Endpoint Details

Property Value
URL {server}/api/v1/GetVaultUsers
Method GET
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Example Request

GET /api/v1/GetVaultUsers
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "Users": [
    {
      "Id": "1B4D3E1D-1361-4175-82D6-D5D614D93038",
      "Name": "Test User 1",
      "Username": "test1"
    },
    {
      "Id": "e5521878-b1ac-4ed1-9b03-733e14c07bc5",
      "Name": "Test User 2",
      "Username": "test2"
    }
  ]
}

Create or Retrieve a Vault User — SetVaultUser

Creates a new vault user with the supplied username and password. If a vault user with the same username already exists, the existing record is returned instead of creating a duplicate.

Endpoint Details

Property Value
URL {server}/api/v1/SetVaultUser
Method POST
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Parameters

Parameter Required Description
username Yes Username of the vault user.
password Yes Password of the vault user.

Example Request

POST /api/v1/SetVaultUser?username=test&password=test
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

On success, the API returns the GUID of the created or matched vault user.

HTTP/1.1 201 Created
Content-Type: application/json

"e5521878-b1ac-4ed1-9b03-733e14c07bc5"

Logs

The Logs endpoint returns the detailed findings produced by a completed (or in-progress) discovery job activity. Each log entry corresponds to a single file on which at least one policy rule matched.

Retrieve Scan Logs by Activity — GetLogsByActivityId

Returns the detailed scan results and logs for a specific discovery job activity, identified by its activity GUID.

Endpoint Details

Property Value
URL {server}/api/v1/GetLogsByActivityId
Method GET
Content-Type application/x-www-form-urlencoded

Request Headers

Key Value
X-COMPANY-GUID your-company-guid
X-PUBLIC-KEY your-public-key

Parameters

Parameter Required Description
activityId Yes GUID of the discovery activity whose logs you want to retrieve.

Example Request

GET /api/v1/GetLogsByActivityId?activityId=xyz789-abc123
Host: server.veriket.com
X-COMPANY-GUID: 12345678-1234-1234-1234-123456789012
X-PUBLIC-KEY: abcdefgh1234

Example Response

HTTP/1.1 200 OK
Content-Type: application/json

{
  "JobState": "Completed",
  "Logs": [
    {
      "No": 1,
      "OperationDate": "2026-01-01T01:00:01",
      "FileName": "employee_list.xlsx",
      "TargetFile": "C:\\Documents\\employee_list.xlsx",
      "DetectedKeywords": "TCKN, Phone",
      "DetectedKeywordCount": 15,
      "DetectedRule": "KVKK Rule 1",
      "DetectedPolicy": "Personal Data Protection Policy",
      "DirectoryPath": "C:\\Documents",
      "ActivityId": "xyz789-abc123"
    },
    {
      "No": 2,
      "OperationDate": "2026-01-01T01:00:02",
      "FileName": "payroll.pdf",
      "TargetFile": "C:\\Documents\\payroll.pdf",
      "DetectedKeywords": "IBAN, Salary",
      "DetectedKeywordCount": 8,
      "DetectedRule": "Financial Data Rule",
      "DetectedPolicy": "Financial Data Protection Policy",
      "DirectoryPath": "C:\\Documents",
      "ActivityId": "xyz789-abc123"
    }
  ]
}

Response Field Reference

Field Description
JobState Current state of the discovery job. See the JobState Values table.
No Sequential log record number.
OperationDate Date and time the scan operation produced this log entry (ISO 8601).
FileName Name of the scanned file.
TargetFile Full path of the scanned file.
DetectedKeywords Sensitive keywords or values detected in the file (masked where applicable).
DetectedKeywordCount Total number of detected keywords for this file.
DetectedRule Name of the detection rule that matched.
DetectedPolicy Name of the policy that contains the matched rule.
DirectoryPath Parent directory of the scanned file.
ActivityId GUID of the discovery activity this log entry belongs to.

JobState Values

State Meaning
Completed The scan has finished.
Success The scan finished successfully with no fatal errors.
Stopped The scan was stopped by a user or by the system.
Running The scan is currently in progress.
Paused The scan has been paused and can be resumed.
Triggered The scan has been triggered and is about to start.

Error Codes

The Veriket API uses standard HTTP status codes to signal the result of each request. The following table lists the most common error responses and the recommended remediation steps.

HTTP Code Meaning Resolution
400 Bad Request Missing or malformed parameter. Verify that all required parameters and the request body are present and correctly formatted.
401 Unauthorized Authentication failure. Check the X-COMPANY-GUID and X-PUBLIC-KEY header values and make sure the API key is still active.
404 Not Found The requested endpoint or resource does not exist. Verify the request URL and the resource identifier (jobGuid, activityId, etc.).
500 Internal Server Error Unexpected server-side error. Retry the request. If the error persists, contact the Siberson support team with the request timestamp and correlation ID.

Frequently Asked Questions

Where can I find jobGuid and activityId values?

Both values are visible in the Veriket administration panel under the Discovery Jobs list. Each job row shows its jobGuid, and each activity (execution) row shows its activityId. You can also obtain the latest activityId for a job programmatically by calling GetDiscoveryJobActivityId.

Which tools can I use to test API requests?

Any HTTP client that lets you set custom headers will work. Commonly used options include Postman, Insomnia, HTTPie, and curl. For automated testing, language-level HTTP libraries such as .NET HttpClient, Python requests, or Node.js axios are recommended.

Can I control more than one discovery job at the same time?

Yes. Each job is independent, so you can issue SetDiscoveryJobInstruction requests for multiple jobs in parallel, each with its own jobGuid.

How should I store the PublicKey in my integration?

The PublicKey is a secret credential. Store it in a secure secret store (for example, a CI/CD secrets vault, Azure Key Vault, AWS Secrets Manager, or HashiCorp Vault) and inject it into your application at runtime. Never commit API keys to version control.

Last updated: 2026-04-20