SKRIME Server API

KVM Server

GitHub OpenAPI

Operations 8

GET /server/pricelist Preisliste abrufen #
GET /server/os Betriebssysteme abrufen #
GET /server/novnc noVNC URL erzeugen #
GET /server/network Netzwerkinformationen abrufen #
GET /server/ddos DDoS Statistik abrufen #
GET /server/firewall Firewall Regeln abrufen #
GET /server/statistic Statistiken abrufen #
GET /server/backup Backups abrufen #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/skrime:skrime-server-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

skrime-server-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SKRIME API (read only) Server API
  version: ee58e62caf7f
  description: Reading endpoints of the SKRIME API without secrets. Descriptions in German, structure in English.
  termsOfService: https://skrime.eu/tos
  contact:
    name: SKRIME
    url: https://skrime.eu/
    email: vertrieb@skrime.eu
servers:
- url: https://skrime.eu/sandbox
  description: 'Sandbox: validates like the live API, answers with test data, changes nothing and costs nothing'
- url: https://skrime.eu/api
  description: Live
security:
- bearerAuth: []
tags:
- name: Server
  description: KVM Server
paths:
  /server/pricelist:
    get:
      operationId: get_server_pricelist
      summary: Preisliste abrufen
      tags:
      - Server
      x-skrime-risk: L
      description: Die Parameter "catalog" und "voucher" sind optional
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
          enum:
          - server
          - server-config
        example: server
      - name: cores
        in: query
        required: false
        schema:
          type: integer
        example: 4
      - name: memory
        in: query
        required: false
        schema:
          type: integer
        example: 8
      - name: disk
        in: query
        required: false
        schema:
          type: integer
        example: 50
      - name: ipv4
        in: query
        required: false
        schema:
          type: integer
        example: 1
      - name: ipv6
        in: query
        required: false
        schema:
          type: integer
        example: 1
      - name: connection
        in: query
        required: false
        schema:
          type: integer
        example: 10
      - name: catalog
        in: query
        required: false
        schema: {}
      - name: voucher
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                variant1:
                  summary: Preisliste abrufen
                  value:
                    response: Successfully fetched pricelist
                    state: success
                    data:
                    - id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      userId: ''
                      type: server
                      state: active
                      productInfo:
                        cores: 4
                        memory: 8192
                        disk: 100
                        ipv4: 1
                        ipv6: 1
                        connection: 10
                        type: epyc
                        vds: false
                      price: '0.00'
                      duration: '1'
                      discountOrder: '0.00'
                      discountOrderAmount: '0.00'
                      discountRenew: '0.00'
                      discountRenewAmount: '0.00'
                      discountExpire: '2024-01-01 00:00:00'
                      voucher: ''
                      voucherOrder: '0'
                      voucherOrderAmount: '0.00'
                      voucherRenew: '0'
                      voucherRenewAmount: '0.00'
                      finalOrderPrice: '0.00'
                      finalRenewPrice: '0.00'
                      prepayOptions:
                      - months: 1
                        billingCycles: 1
                        loyaltyPercent: 0
                        listTotal: '0.00'
                        discountOrderAmount: '0.00'
                        discountRenewAmount: '0.00'
                        voucherOrderAmount: '0.00'
                        voucherRenewAmount: '0.00'
                        subtotal: '0.00'
                        loyaltyDiscount: '0.00'
                        finalTotal: '0.00'
                      - months: 12
                        billingCycles: 12
                        loyaltyPercent: 0
                        listTotal: '0.00'
                        discountOrderAmount: '0.00'
                        discountRenewAmount: '0.00'
                        voucherOrderAmount: '0.00'
                        voucherRenewAmount: '0.00'
                        subtotal: '0.00'
                        loyaltyDiscount: '0.00'
                        finalTotal: '0.00'
                      createdAt: '2024-01-01 00:00:00'
                variant2:
                  summary: Konfiguratorpreis abrufen
                  value:
                    response: Successfully fetched configurator pricing
                    state: success
                    data:
                      id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      userId: ''
                      type: server-config
                      state: active
                      productInfo:
                        cores: '0.00'
                        memory: '0.00'
                        disk: '0.00'
                        ipv4: '0.00'
                        ipv6: '0.00'
                        connection: '0.00'
                        type: epyc
                        vds: false
                      price: '0.00'
                      duration: '1'
                      discountOrder: '0.00'
                      discountOrderAmount: '0.00'
                      discountRenew: '0.00'
                      discountRenewAmount: '0.00'
                      discountExpire: '2024-01-01 00:00:00'
                      voucher: ''
                      voucherOrder: '0'
                      voucherOrderAmount: '0.00'
                      voucherRenew: '0'
                      voucherRenewAmount: '0.00'
                      finalOrderPrice: '0.00'
                      finalRenewPrice: '0.00'
                      prepayOptions:
                      - months: 1
                        billingCycles: 1
                        loyaltyPercent: 0
                        listTotal: '0.00'
                        discountOrderAmount: '0.00'
                        discountRenewAmount: '0.00'
                        voucherOrderAmount: '0.00'
                        voucherRenewAmount: '0.00'
                        subtotal: '0.00'
                        loyaltyDiscount: '0.00'
                        finalTotal: '0.00'
                      - months: 12
                        billingCycles: 12
                        loyaltyPercent: 0
                        listTotal: '0.00'
                        discountOrderAmount: '0.00'
                        discountRenewAmount: '0.00'
                        voucherOrderAmount: '0.00'
                        voucherRenewAmount: '0.00'
                        subtotal: '0.00'
                        loyaltyDiscount: '0.00'
                        finalTotal: '0.00'
                      config: eyJjIjo0LCJtIjo4LCJkIjo1MCwiNCI6MSwiNiI6MSwiY29uIjoxMH0=
                      configuration:
                        cores: 4
                        memory: 8
                        disk: 50
                        ipv4: 1
                        ipv6: 1
                        connection: 10
                      createdAt: '2024-01-01 00:00:00'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/os:
    get:
      operationId: get_server_os
      summary: Betriebssysteme abrufen
      tags:
      - Server
      x-skrime-risk: L
      description: Apps sind vorkonfigurierte Debian 13 Templates, die Einrichtung läuft beim ersten SSH Login
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                example:
                  summary: Betriebssysteme abrufen
                  value:
                    response: Successfully fetched operating systems
                    state: success
                    data:
                    - id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      type: os
                      name: Debian 12
                      proxmoxId: debian-12
                      image: https://skrime.eu/data/os/debian.svg
                      group: Debian
                      minDisk: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/novnc:
    get:
      operationId: get_server_novnc
      summary: noVNC URL erzeugen
      tags:
      - Server
      x-skrime-risk: L
      parameters:
      - name: productId
        in: query
        required: true
        schema:
          type: string
        example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                example:
                  summary: noVNC URL erzeugen
                  value:
                    response: Successfully generated noVNC URL
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      url: https://novnc.eu/vnc.html#host=novnc.eu&port=443&encrypt=1&path=%3Ftoken=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&password=Xk7pQm2v&autoconnect=1&show_dot=true&scaleViewport=true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/network:
    get:
      operationId: get_server_network
      summary: Netzwerkinformationen abrufen
      tags:
      - Server
      x-skrime-risk: L
      description: Je IPv4- und IPv6-Eintrag kommt das Feld "countryCode" hinzu, sobald der Aufrufer das Recht team.statistic.ipam.view besitzt und das Land hinterlegt ist, bei IPv6 im RIPE-Objekt des /64 oder des übergeordneten Netzes
      parameters:
      - name: productId
        in: query
        required: true
        schema:
          type: string
        example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                example:
                  summary: Netzwerkinformationen abrufen
                  value:
                    response: Successfully fetched network
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      ipv4:
                      - ipAddress: 127.0.0.1/24
                        gateway: 127.0.0.1
                        hostname: server.domain.tld
                      ipv6:
                      - zone: fe80::/64
                        ipAddress: fe80::/64
                        gateway: 'fe80::'
                        hostname: server.domain.tld
                      - zone: fe80::/64
                        ipAddress: 'fe80::'
                        gateway: 'fe80::'
                        hostname: mail.domain.tld
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/ddos:
    get:
      operationId: get_server_ddos
      summary: DDoS Statistik abrufen
      tags:
      - Server
      x-skrime-risk: L
      description: 'Verfügbare "period": 10m, 1h, 1d, 1w'
      parameters:
      - name: productId
        in: query
        required: true
        schema:
          type: string
        example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      - name: scope
        in: query
        required: true
        schema:
          type: string
          enum:
          - stats
          - ports
          - attacks
          - attack
        example: stats
      - name: ipAddress
        in: query
        required: false
        schema:
          type: string
        example: 127.0.0.1
      - name: period
        in: query
        required: false
        schema:
          type: string
          enum:
          - 10m
          - 1h
          - 1d
          - 1w
        example: 1h
      - name: attackId
        in: query
        required: false
        schema:
          type: string
        example: XXXXXX
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                variant1:
                  summary: DDoS Statistik abrufen
                  value:
                    response: Successfully fetched DDoS statistics
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      ipAddress: 127.0.0.1
                      period: 1h
                      passUnit: Mbps
                      dropUnit: Mbps
                      statistics:
                      - time: '2024-01-01 00:00:00'
                        passed: 12.5
                        dropped: 0.75
                variant2:
                  summary: DDoS Ports abrufen
                  value:
                    response: Successfully fetched DDoS ports
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      ipAddress: 127.0.0.1
                      ports:
                      - ruleId: XXXXXX
                        state: working
                        ipAddress: 127.0.0.1
                        name: SSH
                        port: 22
                        protocol: TCP
                variant3:
                  summary: DDoS Angriffe abrufen
                  value:
                    response: Successfully fetched DDoS attacks
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      ipAddress: 127.0.0.1
                      attacks:
                      - id: XXXXXX
                        type: UDP_FLOOD
                        ipAddress: 127.0.0.1
                        peak: 100000000
                        start: '2024-01-01 00:00:00'
                        stop: '2024-01-01 00:00:00'
                variant4:
                  summary: DDoS Angriff abrufen
                  value:
                    response: Successfully fetched attack details
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      type: UDP_FLOOD
                      attackId: XXXXXX
                      ipAddress: 127.0.0.1
                      peak: 100000000
                      ports:
                      - port: 443
                        protocol: UDP
                        packetsPeak: 500000
                      start: '2024-01-01 00:00:00'
                      stop: '2024-01-01 00:00:00'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/firewall:
    get:
      operationId: get_server_firewall
      summary: Firewall Regeln abrufen
      tags:
      - Server
      x-skrime-risk: L
      parameters:
      - name: productId
        in: query
        required: true
        schema:
          type: string
        example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                example:
                  summary: Firewall Regeln abrufen
                  value:
                    response: Successfully fetched firewall rules
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      rules:
                      - pos: 0
                        type: in
                        action: ACCEPT
                        enabled: true
                        macro: ''
                        protocol: tcp
                        source: ''
                        sourcePort: ''
                        destination: ''
                        destinationPort: '22'
                        icmpType: ''
                        isGroup: false
                        locked: false
                        group: ''
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/statistic:
    get:
      operationId: get_server_statistic
      summary: Statistiken abrufen
      tags:
      - Server
      x-skrime-risk: L
      description: 'Parameter "period" muss einer der folgenden Werte sein: hour, day, week, month'
      parameters:
      - name: productId
        in: query
        required: true
        schema:
          type: string
        example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      - name: period
        in: query
        required: true
        schema:
          type: string
          enum:
          - hour
          - day
          - week
          - month
        example: hour
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                example:
                  summary: Statistiken abrufen
                  value:
                    response: Successfully fetched server statistics
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      statistics:
                      - time: '2024-01-01 00:00:00'
                        cpu: 25.5
                        memory: 3.87
                        netin: 10.52
                        netout: 5.24
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
  /server/backup:
    get:
      operationId: get_server_backup
      summary: Backups abrufen
      tags:
      - Server
      x-skrime-risk: L
      parameters:
      - name: productId
        in: query
        required: true
        schema:
          type: string
        example: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
              examples:
                example:
                  summary: Backups abrufen
                  value:
                    response: Successfully fetched backups
                    state: success
                    data:
                      productId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
                      backups:
                      - volid: local:vzdump-qemu-100-2026_09_23-14_05_12.vma.zst
                        size: '10.50'
                        createdAt: '2024-01-01 00:00:00'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '423':
          $ref: '#/components/responses/Locked'
components:
  responses:
    Unauthorized:
      description: The API key is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            response: Unauthorized access, please log in or provide a valid key
            state: error
            data: []
    Forbidden:
      description: Missing permission, interface required or multi factor authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            response: Unauthorized access, please check your permissions
            state: error
            data: []
    BadRequest:
      description: 'Invalid request: a field is missing or a value is invalid'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            response: Invalid request, please provide a productId
            state: error
            data: []
    Locked:
      description: Access is blocked because the product is suspended, data.reason names the reason
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            response: Access blocked due to product suspension
            state: error
            data:
              reason: Payment overdue
    NotFound:
      description: The requested record does not exist or is inactive
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            response: No product found or product is suspended
            state: error
            data: []
  schemas:
    Envelope:
      type: object
      required:
      - response
      - state
      - data
      properties:
        response:
          type: string
          description: English message, stable per case
        state:
          type: string
          enum:
          - success
          - error
        data:
          description: Payload, an empty array when there is none
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key from the SKRIME dashboard, read it from the environment variable SKRIME_API_KEY