Insights & updates from our experts
Overview
Connects to Virima to read devices and configuration items, and create matching Configuration Items in Xurrent's CMDB.
Prerequisites
- A Virima account with API access enabled.
- An API Key generated from the Virima admin panel.
- Your Tenant ID from Virima.
Authentication
Uses your API Key and Tenant ID to authenticate
Triggers
None — this connector is outbound only.
Actions
Fetch devices
Retrieves all devices from Virima with pagination support using the Get Devices API. Records are sorted by last modified time (newest first); archived devices and CI parts are filtered out.
Use case: populate or refresh the list of Virima-managed devices in Xurrent's CMDB. Use the Last sync at field to fetch only devices modified after a specific time, which is useful for incremental CMDB updates.
Virima's API does not support filtering by modification time on its
side, so the Last sync at cutoff is applied by the connector.
Because devices come back newest-first, pagination stops as soon as
a device older than the cutoff is reached.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| last_sync_at | DateTime | No | - | Only fetch devices modified after this time. Leave blank to fetch all devices |
| page_size | Integer | No | 100 | Number of devices per page (1-1000) |
Example Input
{
"last_sync_at": "2025-11-12T10:00:00Z",
"page_size": 100
}
Output
| Field Name | Type | Description |
|---|---|---|
total |
Integer | Total devices in Virima |
has_next_page |
Boolean | true while more pages remain |
devices |
Array | One object per device — see Device object fields below |
Device object fields
| Field Name | Type | Description |
|---|---|---|
id |
Integer | Virima device ID |
record_id |
String | Unique record identifier |
is_processing |
Boolean | Whether the device is currently being processed |
pattern_scan_running |
Boolean | Whether a pattern scan is running |
is_changed |
Boolean | Whether the device has been changed |
is_aws_import |
Boolean | Whether the device was imported from AWS |
is_editable |
Boolean | Whether the device is editable |
has_change_request |
Boolean | Whether the device has an open change request |
created_on |
DateTime | When the device record was created |
last_modified_on |
DateTime | When the device was last modified |
blueprint |
Object | Device blueprint — id, name, icon, component, configure_main_page |
private_property_visibility |
Boolean | Whether private properties are visible |
is_temporary_access_given |
Boolean | Whether temporary access is granted |
hardware_asset |
Object | Hardware asset information |
last_seen |
DateTime | When the device was last seen |
missing_components |
Boolean | Whether the device has missing components |
is_moved |
String | Whether the device has been moved |
cherwell_sync |
String | Cherwell sync status |
jira_sync |
String | Jira sync status |
properties |
Array | Device properties — see Property object fields below |
selected_cis |
Array | Selected Configuration Items |
groups |
Array | Device groups |
Property object fields
| Field Name | Type | Description |
|---|---|---|
property_name |
String | Field name (e.g. "Asset Name", "Host Name", "IP Address", "Asset ID") |
property_value |
String | Field value |
group_name |
String | Property group (e.g. "Asset Primary Information", "Hardware and Network", "Device Details") |
mandatory |
String | Whether the property is mandatory |
type |
String | Data type (e.g. "text", "bigint") |
private_property |
Boolean | Whether the property is private |
Example Output
{
"total": 1,
"has_next_page": false,
"devices": [
{
"id": 1,
"record_id": "3d778a6a-a75f-4cd7-995f-07d5fc037087",
"is_processing": false,
"pattern_scan_running": false,
"is_changed": false,
"is_aws_import": false,
"is_editable": false,
"has_change_request": false,
"created_on": "1970-01-01T00:00:00Z",
"last_modified_on": "2025-11-12T10:12:34Z",
"blueprint": {
"id": 11,
"name": "Windows Server",
"icon": "windows-server.png",
"component": false,
"configure_main_page": "[]"
},
"private_property_visibility": false,
"is_temporary_access_given": false,
"hardware_asset": {
"stringobj": ""
},
"last_seen": "1970-01-01T00:00:00Z",
"missing_components": false,
"is_moved": "False",
"cherwell_sync": "False",
"jira_sync": "False",
"properties": [
{
"group_name": "Asset Primary Information",
"property_name": "Asset Name",
"property_value": "ADSERVERLD @ 10.14.80.36",
"mandatory": "true",
"type": "text",
"private_property": false
},
{
"group_name": "Asset Primary Information",
"property_name": "Host Name",
"property_value": "ADSERVERLD Test1",
"mandatory": "true",
"type": "text",
"private_property": false
},
{
"group_name": "Hardware and Network",
"property_name": "IP Address",
"property_value": "10.14.80.36",
"mandatory": "true",
"type": "text",
"private_property": false
},
{
"group_name": "Asset Primary Information",
"property_name": "Asset ID",
"property_value": "AST000001",
"mandatory": "",
"type": "text",
"private_property": false
}
],
"selected_cis": [],
"groups": []
}
]
}
Error Handling
The job fails immediately on 400 / 401 / 403 responses (invalid input or credential/permission issue — Virima error codes starting with ERRUSR or ERRPMT also map here). On 429 (rate limited) or 503 (service unavailable) responses, the connector waits for the time in Retry-After and retries automatically. See Virima error codes for the full list.
Rate Limiting
Virima applies rate limits on API requests. The connector automatically waits and retries when it hits the limit or when Virima is temporarily unavailable.
| HTTP status | Connector behaviour |
|---|---|
| 429 Too Many Requests | Retry after Retry-After seconds (60 s default if header absent) |
| 503 Service Unavailable | Retry with backoff |
| 401 / 403 | Fail immediately — credential or permission issue |
| 400 | Fail immediately — invalid input |





.webp)
%20(1).webp)
.jpg)


.jpg)












