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