Securepoint AV Portal API
Welcome to the Securepoint AV Portal API reference! This reference includes the complete set of GraphQL types, queries, mutations, and their parameters for accessing your organization's licenses, devices and infections.
If you are new to GraphQL check out the following resources.
To use the GraphQL API you need some client or library that supports GraphQL. For example
A basic query example with CURL to get informations about a single device would look like this
curl -X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer [INSERT_YOUR_TOKEN]" \
-d '{"query":"{device(deviceid: \"[INSERT_DEVICE_ID]\") {deviceid hostname ip domain version_product}}"}' \
https://av.securepoint.de/graphql
Contact
Securepoint Support
License
Securepoint Licenses
https://www.securepoint.de/en/for-partners/licences-service-descriptions
Terms of Service
API Endpoints
# Production:
https://av.securepoint.de/graphql
Headers
Authorization: Bearer <TOKEN>
Authorization (Access token)
To access the Securepoint AV Portal API, a 'Access token' with the appropriate authorization is required. The token can be generated and managed under AV-Portal -> User Settings -> Access tokens.
API Rate Limit
The Securepoint AV Portal GraphQL API uses rate limiting, which serves to reduce computing power and protect the server from excessive or abusive calls. The API has two different rate limits in place.
Request rate limit
No more than 1000 requests per minute are allowed.
You can use the headers that are sent with each response to determine the current status of your request rate limit.
x-ratelimit-limitThe maximum number of request that you can send per minutex-ratelimit-remainingThe number of requests remaining in the current rate limit windowx-ratelimit-resetThe time at which the current rate limit window resets, in UTC epoch secondsretry-afterThe number of seconds to wait before sending another request
Query complexity rate limit
The API asssigns a complexity score to each query. The complexity score is calculated by the number of fields in the query. The limit is 10,000 points per 10 minutes per user.
x-complexity-ratelimit-limitThe maximum number of points that you can use per 10 minutesx-complexity-ratelimit-remainingThe number of points remaining in the current rate limit windowx-complexity-ratelimit-usedThe number of points you have used in the current rate limit windowx-complexity-ratelimit-resetThe time at which the current rate limit window resets, in UTC epoch secondsx-complexity-ratelimit-retryafterThe number of seconds to wait until the next window is reset
Queries
device
Description
Fetch a single Device by it's deviceid.
Example
Query
query Device($deviceid: ID!) {
device(deviceid: $deviceid) {
deviceid
tid
hostname
ip
domain
os
onaccess
version_product
version_updater
version_scanner
version_vdb
date_created
date_lastseen
infection_count
license {
license_id
tid
name
email
creation_date
expiration_date
group_id
device_count
active_device_count
account {
...AccountFragment
}
group {
...GroupFragment
}
devices {
...DevicePaginatorFragment
}
}
group {
id
name
}
infections {
paginatorInfo {
...PaginatorInfoFragment
}
data {
...InfectionFragment
}
}
}
}
Variables
{"deviceid": "626e4763-c42d-1ec2-a25e-5bebabacc51d"}
Response
{
"data": {
"device": {
"deviceid": "626e4763-c42d-1ec2-a25e-5bebabacc51d",
"tid": "31979c14-8d54-4e2d-841d-172a7c6ecce3",
"hostname": "Example Client",
"ip": "127.0.0.1",
"domain": "example_123",
"os": "Windows 11",
"onaccess": false,
"version_product": "1.0",
"version_updater": "1.0",
"version_scanner": "1.0",
"version_vdb": "12345",
"date_created": "2022-01-01 12:00:00",
"date_lastseen": "2022-01-01 12:00:00",
"infection_count": 42,
"license": License,
"group": Group,
"infections": InfectionPaginator
}
}
}
devices
Description
Fetch a list of devices. The list can be filtered based on the license by providing an tid.
Response
Returns a DevicePaginator!
Example
Query
query Devices(
$tid: ID,
$first: Int!,
$page: Int
) {
devices(
tid: $tid,
first: $first,
page: $page
) {
paginatorInfo {
count
currentPage
firstItem
hasMorePages
lastItem
lastPage
perPage
total
}
data {
deviceid
tid
hostname
ip
domain
os
onaccess
version_product
version_updater
version_scanner
version_vdb
date_created
date_lastseen
infection_count
license {
...LicenseFragment
}
group {
...GroupFragment
}
infections {
...InfectionPaginatorFragment
}
}
}
}
Variables
{"tid": "31979c14-8d54-4e2d-841d-172a7c6ecce3", "first": 50, "page": 42}
Response
{
"data": {
"devices": {
"paginatorInfo": PaginatorInfo,
"data": [Device]
}
}
}
infections
Description
Fetch a list of non-deleted infections. The list can be filtered based on the device by providing an deviceid.
Response
Returns an InfectionPaginator!
Example
Query
query Infections(
$deviceid: ID,
$first: Int!,
$page: Int
) {
infections(
deviceid: $deviceid,
first: $first,
page: $page
) {
paginatorInfo {
count
currentPage
firstItem
hasMorePages
lastItem
lastPage
perPage
total
}
data {
tid
infection_id
deviceid
sig_name
full_path
date_found
type_found
suggestion
origin_type
process
user
state
sent_to_lab
device {
...DeviceFragment
}
}
}
}
Variables
{"deviceid": "626e4763-c42d-1ec2-a25e-5bebabacc51d", "first": 50, "page": 42}
Response
{
"data": {
"infections": {
"paginatorInfo": PaginatorInfo,
"data": [Infection]
}
}
}
license
Description
Fetch a single License by it's id.
Response
Returns a License
Arguments
| Name | Description |
|---|---|
license_id - ID!
|
The license's unique identifier. |
Example
Query
query License($license_id: ID!) {
license(license_id: $license_id) {
license_id
tid
name
email
creation_date
expiration_date
group_id
device_count
active_device_count
account {
accountid
accountname
parentid
}
group {
id
name
}
devices {
paginatorInfo {
...PaginatorInfoFragment
}
data {
...DeviceFragment
}
}
}
}
Variables
{"license_id": "4563"}
Response
{
"data": {
"license": {
"license_id": "4563",
"tid": "31979c14-8d54-4e2d-841d-172a7c6ecce3",
"name": "IT Company GmbH",
"email": "mail@example.local",
"creation_date": "2007-12-03",
"expiration_date": "2007-12-03",
"group_id": "4563",
"device_count": 42,
"active_device_count": 42,
"account": Account,
"group": Group,
"devices": DevicePaginator
}
}
}
licenses
Description
Fetch a list of licenses your organization has access to.
Response
Returns a LicensePaginator!
Example
Query
query Licenses(
$first: Int!,
$page: Int
) {
licenses(
first: $first,
page: $page
) {
paginatorInfo {
count
currentPage
firstItem
hasMorePages
lastItem
lastPage
perPage
total
}
data {
license_id
tid
name
email
creation_date
expiration_date
group_id
device_count
active_device_count
account {
...AccountFragment
}
group {
...GroupFragment
}
devices {
...DevicePaginatorFragment
}
}
}
}
Variables
{"first": 50, "page": 42}
Response
{
"data": {
"licenses": {
"paginatorInfo": PaginatorInfo,
"data": [License]
}
}
}
me
Description
Fetches the currently logged in user. When used in an API context, this will return the User you created the API token for.
Response
Returns a User
Example
Query
query Me {
me {
user_id
user_name
accountid
email
account {
accountid
accountname
parentid
}
}
}
Response
{
"data": {
"me": {
"user_id": "4563",
"user_name": "MaxMuster",
"accountid": "4563",
"email": "mail@example.local",
"account": Account
}
}
}
versions
Description
Fetch a list of the latest available versions.
Response
Returns a Version!
Example
Query
query Versions {
versions {
vdb
product
updater
scanner
}
}
Response
{
"data": {
"versions": {
"vdb": "12324",
"product": "3.5.12",
"updater": "3.1.23",
"scanner": "4.0.5"
}
}
}
Types
Account
Boolean
Description
The Boolean scalar type represents true or false.
Date
Description
A date string with format Y-m-d, e.g. 2011-05-23.
Example
"2007-12-03"
DateTime
Description
A datetime string with format Y-m-d H:i:s, e.g. 2018-05-23 13:43:32.
Example
"2022-01-01 12:00:00"
Device
Description
Device information
Fields
| Field Name | Description |
|---|---|
deviceid - ID!
|
The unique identifier of the device. |
tid - ID!
|
|
hostname - String!
|
|
ip - String!
|
|
domain - String!
|
|
os - String!
|
|
onaccess - Boolean
|
Indicates if the on access scan is enabled. |
version_product - String!
|
Version of the installed AV client. |
version_updater - String!
|
Updater version of the installed AV client. |
version_scanner - String!
|
Scanner version of the installed AV client. |
version_vdb - Int!
|
Virus database version of the installed AV client. |
date_created - DateTime!
|
Date when the AV client was installed. |
date_lastseen - DateTime!
|
Last time the AV client communicated with the backend. |
infection_count - Int!
|
|
license - License
|
|
group - Group
|
|
infections - InfectionPaginator!
|
|
Example
{
"deviceid": "626e4763-c42d-1ec2-a25e-5bebabacc51d",
"tid": "31979c14-8d54-4e2d-841d-172a7c6ecce3",
"hostname": "Example Client",
"ip": "127.0.0.1",
"domain": "example_123",
"os": "Windows 11",
"onaccess": false,
"version_product": "1.0",
"version_updater": "1.0",
"version_scanner": "1.0",
"version_vdb": "12345",
"date_created": "2022-01-01 12:00:00",
"date_lastseen": "2022-01-01 12:00:00",
"infection_count": 42,
"license": License,
"group": Group,
"infections": InfectionPaginator
}
DevicePaginator
Description
A paginated list of Device items.
Fields
| Field Name | Description |
|---|---|
paginatorInfo - PaginatorInfo!
|
Pagination information about the list of items. |
data - [Device!]!
|
A list of Device items. |
Example
{
"paginatorInfo": PaginatorInfo,
"data": [Device]
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
Group
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
"4563"
Infection
Description
Infection information
Fields
| Field Name | Description |
|---|---|
tid - ID!
|
The unique identifier of the license |
infection_id - ID!
|
The unique identifier of the infection within the device. |
deviceid - ID!
|
The unique identifier of the device. |
sig_name - String!
|
|
full_path - String
|
|
date_found - DateTime!
|
|
type_found - String!
|
|
suggestion - String!
|
|
origin_type - String!
|
|
process - String
|
|
user - String
|
|
state - String!
|
|
sent_to_lab - String!
|
|
device - Device
|
Example
{
"tid": "31979c14-8d54-4e2d-841d-172a7c6ecce3",
"infection_id": "1",
"deviceid": "626e4763-c42d-1ec2-a25e-5bebabacc51d",
"sig_name": "Trojan.Inject",
"full_path": "C:/Users/Desktop/virus.exe",
"date_found": "2022-01-01 12:00:00",
"type_found": "virus",
"suggestion": "sendtolab",
"origin_type": "file",
"process": "virus.exe",
"user": "Example User",
"state": "exists",
"sent_to_lab": "",
"device": Device
}
InfectionPaginator
Description
A paginated list of Infection items.
Fields
| Field Name | Description |
|---|---|
paginatorInfo - PaginatorInfo!
|
Pagination information about the list of items. |
data - [Infection!]!
|
A list of Infection items. |
Example
{
"paginatorInfo": PaginatorInfo,
"data": [Infection]
}
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
42
License
Description
License information
Fields
| Field Name | Description |
|---|---|
license_id - ID!
|
The unique identifier of the license. |
tid - ID!
|
|
name - String!
|
|
email - String!
|
|
creation_date - Date!
|
|
expiration_date - Date!
|
|
group_id - ID
|
Identifier of the group assigned to the license. |
device_count - Int!
|
Count of all devices within the license. |
active_device_count - Int!
|
Count of all active devices within the license. |
account - Account
|
|
group - Group
|
|
devices - DevicePaginator!
|
|
Example
{
"license_id": "4563",
"tid": "31979c14-8d54-4e2d-841d-172a7c6ecce3",
"name": "IT Company GmbH",
"email": "mail@example.local",
"creation_date": "2007-12-03",
"expiration_date": "2007-12-03",
"group_id": "4563",
"device_count": 42,
"active_device_count": 42,
"account": Account,
"group": Group,
"devices": DevicePaginator
}
LicensePaginator
Description
A paginated list of License items.
Fields
| Field Name | Description |
|---|---|
paginatorInfo - PaginatorInfo!
|
Pagination information about the list of items. |
data - [License!]!
|
A list of License items. |
Example
{
"paginatorInfo": PaginatorInfo,
"data": [License]
}
PaginatorInfo
Description
Information about pagination using a fully featured paginator.
Fields
| Field Name | Description |
|---|---|
count - Int!
|
Number of items in the current page. |
currentPage - Int!
|
Index of the current page. |
firstItem - Int
|
Index of the first item in the current page. |
hasMorePages - Boolean!
|
Are there more pages after this one? |
lastItem - Int
|
Index of the last item in the current page. |
lastPage - Int!
|
Index of the last available page. |
perPage - Int!
|
Number of items per page. |
total - Int!
|
Number of total available items. |
Example
{
"count": 42,
"currentPage": 42,
"firstItem": 42,
"hasMorePages": false,
"lastItem": 42,
"lastPage": 42,
"perPage": 42,
"total": 42
}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"example_123"
User
Description
User information
Example
{
"user_id": "4563",
"user_name": "MaxMuster",
"accountid": "4563",
"email": "mail@example.local",
"account": Account
}
Version
Description
Version information
Example
{"vdb": "12324", "product": "3.5.12", "updater": "3.1.23", "scanner": "4.0.5"}