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
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-limit The maximum number of request that you can send per minute
  • x-ratelimit-remaining The number of requests remaining in the current rate limit window
  • x-ratelimit-reset The time at which the current rate limit window resets, in UTC epoch seconds
  • retry-after The 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-limit The maximum number of points that you can use per 10 minutes
  • x-complexity-ratelimit-remaining The number of points remaining in the current rate limit window
  • x-complexity-ratelimit-used The number of points you have used in the current rate limit window
  • x-complexity-ratelimit-reset The time at which the current rate limit window resets, in UTC epoch seconds
  • x-complexity-ratelimit-retryafter The number of seconds to wait until the next window is reset

Queries

device

Description

Fetch a single Device by it's deviceid.

Response

Returns a Device

Arguments
Name Description
deviceid - ID! The device's unique identifier.

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!

Arguments
Name Description
tid - ID
first - Int! Limits number of fetched items. Maximum allowed value: 1000. Default = 50
page - Int The offset from which items are returned.

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!

Arguments
Name Description
deviceid - ID The device's unique identifier. Can be provided to filter the list of infections by an specific device.
first - Int! Limits number of fetched items. Maximum allowed value: 1000. Default = 50
page - Int The offset from which items are returned.

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!

Arguments
Name Description
first - Int! Limits number of fetched items. Maximum allowed value: 1000. Default = 50
page - Int The offset from which items are returned.

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

Description

Organization of the logged in user.

Fields
Field Name Description
accountid - ID! The unique identifier of the organization.
accountname - String!
parentid - ID!
Example
{"accountid": "525225", "accountname": "IT Company GmbH", "parentid": "12356"}

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!
Arguments
first - Int!

Limits number of fetched items. Maximum allowed value: 1000.

page - Int

The offset from which items are returned.

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

Description

Group information

Fields
Field Name Description
id - ID! The unique identifier of the group
name - String!
Example
{
  "id": "4563",
  "name": "example_123"
}

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!
Arguments
first - Int!

Limits number of fetched items. Maximum allowed value: 1000.

page - Int

The offset from which items are returned.

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

Fields
Field Name Description
user_id - ID! Unique identifier of the user.
user_name - String! Login name of the user.
accountid - ID! The unique identifier of the user's associated organization.
email - String!
account - Account
Example
{
  "user_id": "4563",
  "user_name": "MaxMuster",
  "accountid": "4563",
  "email": "mail@example.local",
  "account": Account
}

Version

Description

Version information

Fields
Field Name Description
vdb - String! Version of the virus database.
product - String! Client product version.
updater - String! Client updater version.
scanner - String! Client scan engine version.
Example
{"vdb": "12324", "product": "3.5.12", "updater": "3.1.23", "scanner": "4.0.5"}