openapi: 3.0.3
info:
title: PRTG API v2 Reference
description: |
This is the API endpoint reference documentation for the PRTG API v2. For an overview of the PRTG API v2, see the [PRTG API v2 Overview](../overview/index.html)
* The PRTG API v2 is not yet complete. Most endpoints are stable and you can use them in production. Endpoints marked as "experimental" might change, so use them with caution. For more information, see the [Overview: Maturity of endpoints](../overview/index.html#endpoint-maturity)).
**Note:** If you cannot achieve your objective with the PRTG API v2, you can try the original PRTG API (v1). For more information, see the [PRTG Manual: HTTP API](https://www.paessler.com/manuals/prtg/http_api).
* Endpoints with a **lock symbol** require authentication. You can authenticate your session with an [API key](../overview/index.html#apikey) or with the [POST /session endpoint](#/Authentication).
* Feedback? We would love to hear from you! You can share your feedback about the PRTG API v2 through our [survey](https://www.paessler.to/feedback-api).
* If you need help, contact the Paessler support team from the [Paessler Help Desk](https://helpdesk.paessler.com/en/support/tickets/new).
version: "2.0"
servers:
- url: /api/v2
paths:
/schemas/{kind}:
get:
x-prtg-writer: true
operationId: GetSchema
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the following endpoints:
- `/experimental/schemas/{parentid}/post` for creating objects
- `/experimental/schemas/{id}/patch` for updating objects
- `/experimental/schemas/{id}/get` for reading objects
tags:
- Objects
summary: Returns a OAS schema to use in other endpoints.
parameters:
- name: kind
in: path
description: |
Enter the kind of schema you want. You can request a schema of a device, group, user, or a specific type of sensor, for example, ping).
required: true
schema:
type: string
- name: purpose
in: query
description: |
Select the purpose to refine the schema for a specific use case:
* Use `read` for the schema of a `GET` endpoint.
* Use `create` for the schema of a `POST` endpoint.
* Use `update` for the schema of a `PATCH` endpoint.
required: true
schema:
default: read
type: string
enum:
- create
- update
- read
- name: parent
in: query
description: |
Enter the object ID of the parent object where you want to create a new object to request the correct schema for this use case.
This field is required if you select `create` as the purpose above.
schema:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "yaml/components/Schema.yaml#/components/schemas/SchemaDefinition"
examples:
Read device:
$ref: "yaml/examples/object.yaml#/schema-device-read"
Create device:
$ref: "yaml/examples/object.yaml#/schema-device-create"
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/schemas/{parent}:
get:
operationId: GetKindsForParent
tags:
- Schemas
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
summary: Returns a list of all object kinds that you can create on a given parent object.
parameters:
- name: parent
in: path
description: "Enter the ID of the parent object."
required: true
schema:
type: string
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
maximum: 3000
default: 100
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
description: "List of potentially creatable schemas for the given parent."
properties:
creatable:
type: boolean
description: "True if the schema is creatable other check the hints."
hints:
type: array
nullable: true
description: "Hints why the specific schema is not creatable."
items:
type: string
enum:
- "CredentialsMissing"
- "ProbeIsDisconnected"
- "SensorNeedsLocalProbe"
- "SensorNeedsLocalProbeDevice"
- "SensorNeedsProbeDevice"
- "MissingCredentialGroup"
kind:
type: string
description: "The schema kind."
name:
type: string
description: "The name of the schema."
href:
type: string
description: "The URL to the schema for POST requests."
description:
type: string
nullable: true
description: "Describes the purpose of the the monitoring object."
help:
type: string
nullable: true
description: "Provides additional helpful information."
Manual:
type: string
nullable: true
description: "A link to the manuals page where you can find more information."
additionalProperties: true
examples:
Schemas for device:
$ref: "yaml/examples/schemas.yaml#/schemas-list-device"
Schemas for group:
$ref: "yaml/examples/schemas.yaml#/schemas-list-group"
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/schemas/{id}/get:
get:
x-prtg-writer: true
operationId: GetReadSchemaByObjectID
tags:
- Schemas
summary: Returns OAS schema for use in `GET` endpoints for a specific object.
parameters:
- name: id
in: path
description: |
The object ID for which to retrieve the schema.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested objects.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "yaml/components/Schema.yaml#/components/schemas/SchemaDefinition"
examples:
Read device schema:
$ref: "yaml/examples/schemas.yaml#/schema-device-get"
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/schemas/{id}/patch:
get:
x-prtg-writer: true
operationId: GetUpdateSchemaByObjectID
tags:
- Schemas
summary: Returns an OAS schema for use in `PATCH` endpoints for a specific object.
parameters:
- name: id
in: path
description: |
The object ID for which to retrieve the schema.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested objects.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "yaml/components/Schema.yaml#/components/schemas/SchemaDefinition"
examples:
Patch device schema:
$ref: "yaml/examples/schemas.yaml#/schema-device-patch"
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/schemas/{parent}/post:
get:
x-prtg-writer: true
operationId: GetCreateSchemaByParentID
tags:
- Schemas
summary: Returns an OAS schema for use in `POST` endpoints.
parameters:
- name: parent
in: path
required: true
description: |
The object ID of the parent object where you want to create a new object.
schema:
type: string
- name: kind
in: query
required: true
description: |
The kind of object you want to create (e.g., device, group, or in case of sensors e.g. ping).
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested objects.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
content:
application/json:
schema:
$ref: "yaml/components/Schema.yaml#/components/schemas/SchemaDefinition"
examples:
Post device schema:
$ref: "yaml/examples/schemas.yaml#/schema-device-post"
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/objects:
get:
tags:
- Objects
description: Get a list of all probes, groups, devices, sensors and channels that match a filter.
operationId: Objects
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested objects.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on a device grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/objects/{id}/move:
post:
tags:
- Objects
summary: Move the position of any monitoring object within it's siblings or to a new parent.
description: |
You can either combine `parent` and optionally one of the positional parameter `position`/`position_preset`, if you want to move the object to another parent.
Or if you want to move the object within its siblings you can either use `position` (multiple of 10) or `position_preset`.
operationId: ObjectMove
parameters:
- name: id
in: path
description: "Enter the ID of the object that you want to move."
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
parent:
description: The new parent where to move the object or 'null'
nullable: true
type: string
example: "1044"
position:
description: The absolute position within the siblings or 'null'.
nullable: true
type: integer
minimum: 10
multipleOf: 10
example: null
position_preset:
description: >
position_preset movement commands or 'null'
* `top` - move to the first place
* `bottom` - move to the end
* `up` - move one place forward
* `down` - move one place backward
nullable: true
type: string
enum: ["top", "up", "down", "bottom", null]
examples:
"move to other parent":
value:
parent: "1234"
"move position":
value:
position: 20
"move with preset":
value:
position_preset: "top"
"move to other parent with position":
value:
parent: "1234"
position: 10
"move to other parent with preset":
value:
parent: "1234"
position_preset: "top"
responses:
"204":
description: "The object was moved."
headers:
Location:
description: Where you can find the moved object
schema:
type: string
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/objects/count:
get:
tags:
- Objects
summary: "Returns a list of how many objects of each kind exist."
operationId: ObjectCount
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/ObjectSummary.yaml#/components/schemas/ObjectSummary"
examples:
Object count:
$ref: "yaml/examples/object.yaml#/count"
"4XX":
$ref: "#/components/responses/401"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/devices/{id}:
delete:
operationId: DeleteDevice
tags:
- Devices
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
summary: "Deletes a device with all child sensors and channels."
parameters:
- name: id
in: path
description: "Enter the ID of the device that you want to delete."
required: true
schema:
type: string
responses:
"204":
description: "The device was deleted."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/timeseries/{id}/{type}:
get:
operationId: GraphSet
tags:
- Timeseries
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
summary: Returns time series data of a sensor for predefined time frames.
parameters:
- name: id
in: path
description: "Enter the ID of the sensor that you want to get the time series data for."
required: true
schema:
type: string
- name: type
in: path
description: |
Select the dataset type:
* `live`: Returns data of the last four hours.
* `short`: Returns data of the last 2 days.
* `medium`: Returns data of the last 60 days.
* `long`: Returns data of the last 365 days.
required: true
schema:
type: string
default: live
enum:
- live
- short
- medium
- long
- name: channels
in: query
description: "Enter a comma-separated list of channel IDs that you want to include (e.g. 3074.1, 3074.2) in the response. If left empty, the response includes all channels."
required: false
schema:
type: array
format: csv
items:
type: string
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/TimeseriesRow"
examples:
table:
summary: Table format of time series
description: The first array defines the table headers of the columns. In a time series table, the column headers consist of "time" and all additional channels defined in the 'channels' parameter. Each additional array is a row of data values. In this case, all arrays after the table headers contain the time-date value in RFC3339 format and channel data as an integer or a floating-point number.
value:
[
["time", "1002.1", "1002.2"],
["2022-02-02T02:02:02Z", 100, 12.2],
["2022-02-02T02:02:03Z", // gap start],
["2022-02-02T02:10:01Z", // gap end],
["2022-02-02T02:10:02Z", 102, 14.2],
["2022-02-02T02:11:02Z", 103, 15.2],
]
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/timeseries/{id}:
get:
operationId: TimeSeries
tags:
- Timeseries
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be removed.
summary: "Get time series data"
parameters:
- name: id
in: path
description: "Enter the ID of the sensor for which you want to get the time series data."
required: true
schema:
type: string
- name: channels
in: query
description: "Enter the comma separated IDs of the channels you want to include. If left empty all channels will be returned"
required: false
schema:
type: array
format: csv
items:
type: string
- name: from
in: query
description: 'The starting point of the sample interval in the past as a timestamp in RFC3339 ("YYYY-MM-DDThh:mm:ssZ") format.'
required: true
schema:
type: string
format: date-time
- name: to
in: query
description: 'The ending point of the sample interval in the past as a time stamp in RFC3339 ("YYYY-MM-DDThh:mm:ssZ") format. If left empty the sample runs up to now.'
schema:
type: string
format: date-time
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/TimeseriesRow"
examples:
table:
summary: Table format of time series
description:
The first row is the table header naming the columns. The first column named 'time' contains the timestamp followed by an arbitrary number of columns named by the respective channel IDs.
The remaining rows contain the data, timestamps (RFC3339 format) and measurements per channel (integer or floating point number).
value:
[
["time", "1002.1", "1002.2"],
["2022-02-02T02:02:02Z", 100, 12.2],
["2022-02-02T02:02:03Z", // gap start],
["2022-02-02T02:10:01Z", // gap end],
["2022-02-02T02:10:02Z", 102, 14.2],
["2022-02-02T02:11:02Z", 103, 15.2],
]
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/feature-toggles:
get:
tags:
- System
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be removed.
summary: "Returns a list of all enabled feature-toggles."
operationId: PRTGFeatureToggles
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
type: string
enum:
- EFeatureToggleSettingsV2
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/channels:
get:
tags:
- Channels
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced with the '/experimental/channels' endpoint.
summary: "Returns a list of channels."
operationId: ListChannels
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
maximum: 3000
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ChannelInfo.yaml#/components/schemas/ChannelInfo"
examples:
Channels:
$ref: "yaml/examples/channel.yaml#/list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/channels/data:
get:
tags:
- Channels
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be removed.
summary: "Get a list of the last measurements with references to the corresponding channels."
operationId: ListChannelMeasurements
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ChannelMeasurement.yaml#/components/schemas/ChannelMeasurement"
examples:
Channel data:
$ref: "yaml/examples/channel.yaml#/data"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/channels/{id}/overview:
get:
tags:
- Channels
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/channels/{id}' endpoint.
summary: Get a channel overview.
operationId: GetChannelOverview
parameters:
- name: id
in: path
description: "Enter the ID of the channel for which you want to get a channel overview."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/ChannelInfo.yaml#/components/schemas/ChannelInfo"
examples:
Channel overview:
$ref: "yaml/examples/channel.yaml#/overview"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/channels/{id}:
get:
x-prtg-writer: true
tags:
- Channels
summary: Returns the metrics and settings of a channel.
operationId: GetChannel
parameters:
- name: id
in: path
description: "Enter the ID of the channel that you want to see the metrics and settings of."
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a channel.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=alerting,values`
`include=path`
|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
Channel:
$ref: "yaml/examples/channel.yaml#/read"
Channel all included:
$ref: "yaml/examples/channel.yaml#/all-included"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/experimental/channels:
get:
tags:
- Channels
summary: "Returns a list of channels."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: Channels
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
maximum: 3000
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
deprecated: true
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
deprecated: true
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested channels.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=alerting,values`
`include=path`
|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ChannelInfo.yaml#/components/schemas/ChannelInfo"
examples:
Channels:
$ref: "yaml/examples/channel.yaml#/exp-list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/devices:
get:
tags:
- Devices
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/experimental/devices' endpoint.
summary: "Returns a list of devices."
operationId: ListDevices
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sensor_status_summary
in: query
description: "Define if you want to request a sensor status summary of each device. Enter **true** to request a sensor status summary."
schema:
type: boolean
default: false
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/DeviceInfo.yaml#/components/schemas/DeviceInfo"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/devices:
get:
tags:
- Devices
summary: "Returns a list of devices."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: ListDevicesExperimental
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested devices.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on a device grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/devices/templates:
get:
tags:
- Devices
summary: "Returns a list of device templates."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: GetDeviceTemplatesExperimental
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/DeviceTemplates.yaml#/components/schemas/DeviceTemplates"
examples:
Device templates:
$ref: "yaml/examples/device.yaml#/templates"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/devices/{id}:
get:
x-prtg-writer: true
tags:
- Devices
summary: Returns the metrics and settings of a device.
operationId: GetDevice
parameters:
- name: id
in: path
description: Enter the ID of the device that you want to see the metrics and settings of.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a device.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on a device grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
device:
$ref: "yaml/examples/device.yaml#/read"
device special includes:
$ref: "yaml/examples/device.yaml#/read-special-includes"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
patch:
tags:
- Devices
summary: "Edits a device."
operationId: UpdateDevice
parameters:
- name: id
in: path
description: "Enter the ID of the device that you want to edit."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/SettingsRequestBody"
example: { "basic": { "name": "New Device Name" } }
required: true
responses:
"204":
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/devices/{id}/overview:
get:
tags:
- Devices
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/devices{id}' endpoint.
summary: Get a device overview.
operationId: GetDeviceOverview
parameters:
- name: id
in: path
description: "Enter the ID of the device that you want to get an overview of."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/DeviceInfo.yaml#/components/schemas/DeviceInfo"
examples:
Device overview:
$ref: "yaml/examples/autodevice.yaml"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/devices/{id}/pause:
post:
operationId: PauseDevice
parameters:
- description: "Enter the ID of the device that you want to pause."
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PauseRequestBody"
description: "Request Body"
required: true
x-originalParamName: body
responses:
"204":
description: "The device was paused."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Pauses a device.
tags:
- Devices
/devices/{id}/resume:
post:
operationId: ResumeDevice
parameters:
- description: "Enter the ID of the device that you want to resume."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The device was resumed."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Resumes a device.
tags:
- Devices
/devices/{id}/scan:
post:
operationId: ScanDeviceNow
parameters:
- description: "Enter the ID of the device that you want to scan."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The device was scanned."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: "Triggers a scan of all sensors on a device."
tags:
- Devices
/devices/pause:
post:
tags:
- Devices
summary: "Pauses all devices that match a filter."
operationId: MultiPauseDevice
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiPauseRequestBody"
required: true
responses:
"200":
description: "The request to pause all devices that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_DEVICE",
"name": "Localhost",
"href": "/api/v2/devices/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_DEVICE",
"name": "Localhost",
"href": "/api/v2/devices/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/devices/resume:
post:
tags:
- Devices
summary: "Resumes all devices that match a filter."
operationId: MultiResumeDevice
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiResumeRequestBody"
required: true
responses:
"200":
description: "The request to resume all devices that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_DEVICE",
"name": "Localhost",
"href": "/api/v2/devices/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_DEVICE",
"name": "Localhost",
"href": "/api/v2/devices/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/devices/{id}/clone:
post:
x-prtg-writer: true
operationId: CloneDevice
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
title: Clone device request body
description: This is the body of the request if you want to clone a device
type: object
required: [parent_id, host]
properties:
parent_id:
description: Enter the ID of the target group or probe
type: string
position:
description: The position of the devices clone within the children of the target group, top, bottom (default) or a number
type: string
name:
description: Enter the new name of the cloned device, else the old name gets prefixed with 'Clone of'
type: string
host:
description: Enter the new host IP Address or DNS name for the device clone
type: string
service_url:
description: Enter the new service URL for the device clone
type: string
example:
parent_id: ""
position: ""
name: ""
host: ""
service_url: ""
description: Request Body
required: true
x-originalParamName: body
responses:
"204":
description: The cloning process was successful
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Clones a device.
tags:
- Devices
/devices/scan:
post:
tags:
- Devices
summary: "Triggers a scan of all devices that match a filter."
operationId: MultiScanDeviceNow
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiScanNowRequestBody"
required: true
responses:
"200":
description: "The request to scan all devices that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_DEVICE",
"name": "Localhost",
"href": "/api/v2/devices/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_DEVICE",
"name": "Localhost",
"href": "/api/v2/devices/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/devices/icons:
get:
tags:
- Devices
summary: "Returns a list of device icons."
operationId: GetDeviceIcons
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/DeviceIcon.yaml#/components/schemas/DeviceIcon"
examples:
"200: Success":
value:
[
{
"id": "Vendors_Apple",
"href": "/icons/device/Vendors_Apple",
"extensions": ["svg"],
},
]
"4XX":
description: "Client Errors"
content:
application/json:
examples:
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
schema:
$ref: "#/components/schemas/Error"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/groups/{id}:
get:
x-prtg-writer: true
tags:
- Groups
summary: Returns the metrics and settings of a group.
operationId: GetGroup
parameters:
- name: id
in: path
description: Enter the ID of the group that you want to see the metrics and settings of.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a group.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on a group grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
Group:
$ref: "yaml/examples/group.yaml#/read"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/groups:
get:
tags:
- Groups
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/experimental/groups' endpoint.
summary: "Get a list of all groups that match a filter."
operationId: ListGroups
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sensor_status_summary
in: query
description: "Define if you want to request a sensor status summary of each group. Enter **true** to request a sensor status summary."
schema:
type: boolean
default: false
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/GroupInfo.yaml#/components/schemas/GroupInfo"
examples:
Groups:
$ref: "yaml/examples/group.yaml#/list-read"
Groups with sensor status:
$ref: "yaml/examples/group.yaml#/list-read-incl"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/groups/{id}:
patch:
tags:
- Groups
summary: "Edits a group."
operationId: UpdateGroup
parameters:
- name: id
in: path
description: "Enter the ID of the group that you want to edit."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/SettingsRequestBody"
example: { "basic": { "name": "New Group Name" } }
required: true
responses:
"204":
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
delete:
operationId: DeleteGroup
tags:
- Groups
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
summary: "Deletes a group with all child groups and devices."
parameters:
- name: id
in: path
description: "Enter the ID of the group that you want to delete."
required: true
schema:
type: string
responses:
"204":
description: "The group was deleted."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/groups:
get:
tags:
- Groups
summary: "Returns a list of groups."
operationId: ListGroupsExperimental
description: "This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity)."
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested groups.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on each group grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/GroupInfo.yaml#/components/schemas/GroupInfo"
examples:
Groups:
$ref: "yaml/examples/group.yaml#/exp-list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/groups/{id}/group:
post:
x-prtg-writer: true
tags:
- Groups
summary: "Creates a new group in a group."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: CreateGroupForGroup
parameters:
- name: id
in: path
description: "Enter the ID of the group that you want to create a new group in."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/CreateRequestBody"
example: { "basic": { "name": "New Group Name" } }
required: true
responses:
"201":
description: "A new group was created on the group."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/GroupInfo.yaml#/components/schemas/GroupInfo"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/probes/{id}/group:
post:
x-prtg-writer: true
tags:
- Groups
summary: "Creates a new group in a probe."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: CreateGroupForProbe
parameters:
- name: id
in: path
description: "Enter the ID of the probe that you want to create a new group in."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/CreateRequestBody"
example: { "basic": { "name": "New Group Name" } }
required: true
responses:
"201":
description: "A new group was created on the probe."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/GroupInfo.yaml#/components/schemas/GroupInfo"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/groups/{id}/device:
post:
x-prtg-writer: true
tags:
- Devices
summary: "Creates a new device in a group."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: CreateDeviceForGroup
parameters:
- name: id
in: path
description: "Enter the ID of the group that you want to create a new device in."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/CreateRequestBody"
example:
{ "basic": { "name": "New Device Name", "host": "127.0.0.1" } }
required: true
responses:
"201":
description: "A new device was created on the group."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/DeviceInfo.yaml#/components/schemas/DeviceInfo"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/groups/{id}/overview:
get:
tags:
- Groups
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/groups/{id}' endpoint.
summary: Get a group overview.
operationId: GetGroupOverview
parameters:
- name: id
in: path
description: "Enter the ID of the group for which you want to get a group overview."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/GroupInfo.yaml#/components/schemas/GroupInfo"
examples:
Group overview:
$ref: "yaml/examples/group.yaml#/overview"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/groups/{id}/pause:
post:
operationId: PauseGroup
parameters:
- description: "Enter the ID of the group that you want to pause."
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PauseRequestBody"
description: "Request Body"
required: true
x-originalParamName: body
responses:
"204":
description: "The group was paused."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Pauses a group.
tags:
- Groups
/groups/{id}/resume:
post:
operationId: ResumeGroup
parameters:
- description: "Enter the ID of the group that you want to resume."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The group was resumed."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Resumes a group.
tags:
- Groups
/groups/{id}/scan:
post:
operationId: ScanGroupNow
parameters:
- description: "Enter the ID of the group that you want to scan."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The group was scanned."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: "Triggers a scan of all sensors in a group."
tags:
- Groups
/groups/pause:
post:
tags:
- Groups
summary: "Pauses all groups that match a filter."
operationId: MultiPauseGroup
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiPauseRequestBody"
required: true
responses:
"200":
description: "The request to pause all groups that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_GROUP",
"name": "my group",
"href": "/api/v2/groups/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_GROUP",
"name": "my group",
"href": "/api/v2/groups/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/groups/resume:
post:
tags:
- Groups
summary: Resumes all groups that match a filter.
operationId: MultiResumeGroup
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiResumeRequestBody"
required: true
responses:
"200":
description: "The request to resume all groups that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_GROUP",
"name": "Localhost",
"href": "/api/v2/groups/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_GROUP",
"name": "Localhost",
"href": "/api/v2/groups/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/groups/{id}/clone:
post:
operationId: CloneGroup
tags:
- Groups
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
summary: Clones a group.
x-prtg-writer: true
parameters:
- description: Enter the ID of the group that you want to clone.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
title: Clone group request body
description: This is the body of the request to clone a group.
type: object
required: [parent_id]
properties:
parent_id:
description: Enter the ID of the target group or probe.
type: string
position:
description: "The position of the group clone within the children of the target group: top, bottom (default), or a number."
type: string
name:
description: Enter the new name of the cloned group. If you do not define a name, the old name gets prefixed with 'Clone of'
type: string
example:
parent_id: ""
position: ""
name: ""
description: Request Body
required: true
x-originalParamName: body
responses:
"204":
description: The cloning process was successful
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/groups/scan:
post:
tags:
- Groups
summary: Triggers a scan of all groups that match a filter.
operationId: MultiScanGroupNow
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiScanNowRequestBody"
required: true
responses:
"200":
description: "The request to scan all groups that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_GROUP",
"name": "Localhost",
"href": "/api/v2/groups/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_GROUP",
"name": "Localhost",
"href": "/api/v2/groups/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/health:
get:
tags:
- System
summary: Returns the status of the PRTG application server.
operationId: CheckHealth
responses:
"204":
description: "The PRTG application server is up and running and connected to the PRTG core server."
"503":
description: "The service is unavailable or the license is inactive."
content:
application/json:
examples:
"503 Service Unavailable":
$ref: "#/components/examples/503-SERVICE_UNAVAILABLE"
"503 Inactive License":
$ref: "#/components/examples/503-LICENSE_INACTIVE"
schema:
$ref: "#/components/schemas/Error"
/libraries:
get:
tags:
- Libraries
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be removed.
summary: "Returns a list of all libraries that match a filter."
operationId: ListLibraries
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/LibraryInfo.yaml#/components/schemas/LibraryInfo"
examples:
Libraries:
$ref: "yaml/examples/library.yaml#/list"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/lookup-definitions:
get:
tags:
- Lookups
summary: "Returns a list of lookups definitions."
operationId: ListLookupDefinitions
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/LookupDefinition.yaml#/components/schemas/LookupDefinition"
examples:
Lookup definitions:
$ref: "yaml/examples/lookup.yaml#/list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/lookup-definitions/{id}:
get:
tags:
- Lookups
summary: Returns a lookup definition.
operationId: GetLookupDefinitionOverview
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: id
in: path
description: "Enter the ID of the lookup definition that you want to request."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/LookupDefinition.yaml#/components/schemas/LookupDefinition"
examples:
Lookup definition:
$ref: "yaml/examples/lookup.yaml#/read"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/objects:
get:
tags:
- Objects
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be removed.
summary: "Get a list of all probes, groups, devices, and sensors that match a filter."
operationId: ListObjects
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sensor_status_summary
in: query
description: "Define if you want to request a sensor status summary of all objects. Enter **true** to request a sensor status summary."
schema:
type: boolean
default: false
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ObjectInfo.yaml#/components/schemas/ObjectInfo"
examples:
Objects:
$ref: "yaml/examples/object.yaml#/list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/probes/{id}:
get:
x-prtg-writer: true
tags:
- Probes
summary: Returns the metrics and settings of a probe.
operationId: GetProbe
parameters:
- name: id
in: path
description: Enter the ID of the probe that you want to see the metrics and settings of.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a probe.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. You can only use this parameter together with another parameter. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on the probe grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
Probe:
$ref: "yaml/examples/probe.yaml#/read"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/probes/{id}/info:
get:
operationId: GetProbeNetworkInfo
parameters:
- name: id
in: path
description: Enter the ID of the probe that you want to see the network information of.
required: true
schema:
type: string
summary: Returns the network information of a probe.
security:
- Bearer: []
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/ProbeNetworkInfo.yaml#/components/schemas/ProbeNetworkInfo"
examples:
Probe network info:
$ref: "yaml/examples/probe.yaml#/network-info"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
tags:
- Probes
/probes/{id}/pause:
post:
operationId: PauseProbe
parameters:
- description: "Enter the ID of the probe that you want to pause."
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PauseRequestBody"
description: "Request Body"
required: true
x-originalParamName: body
responses:
"204":
description: "The probe was paused."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Pauses a probe.
tags:
- Probes
/probes/{id}/resume:
post:
operationId: ResumeProbe
parameters:
- description: "Enter the ID of the probe that you want to resume."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The probe was resumed."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Resumes a probe.
tags:
- Probes
/probes/{id}/scan:
post:
operationId: ScanProbeNow
parameters:
- description: "Enter the ID of the probe that you want to scan."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The probe was scanned."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: "Triggers a scan of all sensors on a probe."
tags:
- Probes
/probes:
get:
tags:
- Probes
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/experimental/probes' endpoint.
summary: "Get a list of all probes that match a filter."
operationId: ListProbes
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sensor_status_summary
in: query
description: "Define if you want to request a sensor status summary of each probe. Enter **true** to request a sensor status summary."
schema:
type: boolean
default: false
- name: sort_by
in: query
description: Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order.
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ProbeInfo.yaml#/components/schemas/ProbeInfo"
examples:
Probe list:
$ref: "yaml/examples/probe.yaml#/list-read"
Probe list with channels:
$ref: "yaml/examples/probe.yaml#/list-read-incl"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/probes:
get:
tags:
- Probes
summary: "Returns a list of probes."
operationId: ListProbesExperimental
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested probes.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. | `include=intervalgroup,inheritance`|
|`sensor_status_summary`|Returns the number of sensors on each probe grouped by status.|`include=sensor_status_summary`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ProbeInfo.yaml#/components/schemas/ProbeInfo"
examples:
Probes:
$ref: "yaml/examples/probe.yaml#/exp-list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/probes/{id}/device:
post:
x-prtg-writer: true
tags:
- Devices
summary: "Creates a new device on a probe."
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: CreateDeviceForProbe
parameters:
- name: id
in: path
description: "Enter the ID of the probe that you want to create a new device on."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/CreateRequestBody"
example:
{ "basic": { "name": "New Device Name", "host": "127.0.0.1" } }
required: true
responses:
"201":
description: "A new device was created on the probe."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/DeviceInfo.yaml#/components/schemas/DeviceInfo"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/probes/{id}/overview:
get:
tags:
- Probes
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/probes/{id}' endpoint.
summary: Get a probe overview.
operationId: GetProbeOverview
parameters:
- name: id
in: path
description: "Enter the ID of the probe that you want to get an overview for."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/ProbeInfo.yaml#/components/schemas/ProbeInfo"
examples:
Probe overview:
$ref: "yaml/examples/probe.yaml#/overview"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/probes/pause:
post:
tags:
- Probes
summary: Pauses all probes that match a filter.
operationId: MultiPauseProbe
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiPauseRequestBody"
required: true
responses:
"200":
description: "The request to pause all probes that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_PROBE",
"name": "my probe",
"href": "/api/v2/probes/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_PROBE",
"name": "my probe",
"href": "/api/v2/probes/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/probes/resume:
post:
tags:
- Probes
summary: Resumes all probes that match a filter.
operationId: MultiResumeProbe
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiResumeRequestBody"
required: true
responses:
"200":
description: "The request to resume all probes that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_PROBE",
"name": "Localhost",
"href": "/api/v2/probes/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_PROBE",
"name": "Localhost",
"href": "/api/v2/probes/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/probes/scan:
post:
tags:
- Probes
summary: Triggers a scan of all probes that match a filter.
operationId: MultiScanProbeNow
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiScanNowRequestBody"
required: true
responses:
"200":
description: "The request to resume all probes that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_PROBE",
"name": "Localhost",
"href": "/api/v2/probes/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_PROBE",
"name": "Localhost",
"href": "/api/v2/probes/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/probes/{id}:
delete:
operationId: DeleteProbe
tags:
- Probes
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
summary: "Deletes a probe with all child groups and devices."
parameters:
- name: id
in: path
description: "Enter the ID of the probe that you want to delete."
required: true
schema:
type: string
responses:
"204":
description: "The probe was deleted."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensor-status-summary:
get:
tags:
- Sensors
summary: Returns a summary of all sensor states.
operationId: GlobalSensorSummary
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/SensorStatusSummary.yaml#/components/schemas/SensorStatusSummary"
examples:
Sensor status summaries:
$ref: "yaml/examples/sensor.yaml#/sensor-summary"
"4XX":
$ref: "#/components/responses/401"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensor-status-summary/{id}:
get:
tags:
- Sensors
summary: Returns a summary of sensor states for a probe, group, or device.
operationId: SensorSummary
parameters:
- name: id
in: path
description: "Enter the ID of the object that you you want to get a sensor status summary of."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/SensorStatusSummary.yaml#/components/schemas/SensorStatusSummary"
examples:
Sensor status summary:
$ref: "yaml/examples/sensor.yaml#/sensor-summary-detail"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/{id}:
get:
x-prtg-writer: true
tags:
- Sensors
summary: Returns metrics and settings of a sensor.
operationId: GetSensor
parameters:
- name: id
in: path
description: Enter the ID of the sensor that you want to see the metrics and settings of.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a sensor.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. | `include=intervalgroup,inheritance`|
| `*` | A wildcard that includes the `all_sections`, `inheritance`, and `sensor_status_summary` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
Sensor:
$ref: "yaml/examples/sensor.yaml#/read"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/sensors:
get:
tags:
- Sensors
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/experimental/sensors' endpoint.
summary: "Returns a list of all sensors that match a filter."
operationId: ListSensors
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
- name: include_all_channels
in: query
description: "Enter **true** to include all channels. Enter **false** to only include the primary channel and the Downtime channel of each sensor."
schema:
type: boolean
default: false
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/SensorInfo.yaml#/components/schemas/SensorInfo"
examples:
Sensor list:
$ref: "yaml/examples/sensor.yaml#/list-read"
Sensor list with channels:
$ref: "yaml/examples/sensor.yaml#/list-read-incl"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/sensors:
get:
tags:
- Sensors
summary: "Returns a list of sensors."
operationId: ListSensorsExperimental
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested sensors.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=intervalgroup,scheduledependency`
`include=path`
|
| `inheritance`|Returns information about whether settings are inherited or not. | `include=intervalgroup,inheritance`|
| `*` | A wildcard that includes the `all_sections` and `inheritance` parameters. | `include=*`|
Use the `all_sections` parameter to see all available setting sections. You can then refine your request with the setting sections that you want. For more information, see the [PRTG API v2 Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/SensorInfo.yaml#/components/schemas/SensorInfo"
examples:
Sensors:
$ref: "yaml/examples/sensor.yaml#/exp-list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/alarms:
get:
tags:
- Sensors
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be removed.
summary: "Returns a list of sensors with alarms that match a filter."
operationId: ListAlarms
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
- name: include_all_channels
in: query
description: "Enter **true** to include all channels. Enter **false** to only include the primary channel and the Downtime channel of each sensor."
schema:
type: boolean
default: false
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/SensorInfo.yaml#/components/schemas/SensorInfo"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/acknowledge:
post:
tags:
- Sensors
summary: "Acknowledges the alarms of all sensors that match a filter."
operationId: MultiAcknowledgeSensor
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiAcknowledgeRequestBody"
required: true
responses:
"200":
description: "The request to acknowledge the alarms of all sensors that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "1003",
"type": "REFERENCED_SENSOR",
"name": "Probe Health",
"href": "/api/v2/sensors/1003",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "1003",
"type": "REFERENCED_SENSOR",
"name": "Probe Health",
"href": "/api/v2/sensors/1003",
},
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/{id}/pause:
post:
operationId: PauseSensor
parameters:
- description: "Enter the ID of the sensor that you want to pause."
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PauseRequestBody"
description: "Request Body"
required: true
x-originalParamName: body
responses:
"204":
description: "The sensor was paused."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Pauses a sensor.
tags:
- Sensors
/sensors/{id}/resume:
post:
operationId: ResumeSensor
parameters:
- description: "Enter the ID of the sensor that you want to resume."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The sensor was resumed."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Resumes a sensor.
tags:
- Sensors
/sensors/{id}/scan:
post:
operationId: ScanSensorNow
parameters:
- description: "Enter the ID of the sensor that you want to scan."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The sensor was scanned."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: "Triggers a scan of a sensor."
tags:
- Sensors
/sensors/{id}/acknowledge:
post:
tags:
- Sensors
summary: "Acknowledges the alarm of a sensor."
operationId: AcknowledgeSensor
parameters:
- name: id
in: path
description: "Enter the ID of the sensor that you want to acknowledge the alarm of."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/AcknowledgeRequestBody"
required: true
responses:
"204":
description: "The sensor alarm was acknowledged."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/{id}/clone:
post:
x-prtg-writer: true
operationId: CloneSensor
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
title: Clone sensor request body
description: This is the body of the request if you want to clone a sensor
type: object
required: [parent_id]
properties:
parent_id:
description: Enter the ID of the target device
type: string
position:
description: The position of the sensor clone within the children of the target device, top, bottom (default) or a number
type: string
name:
description: Enter the new name of the cloned sensor, else the old name gets prefixed with 'Clone of'
type: string
example:
parent_id: ""
position: ""
name: ""
description: Request Body
required: true
x-originalParamName: body
responses:
"204":
description: The cloning process was successful.
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Clones a sensors.
tags:
- Sensors
/experimental/devices/{id}/sensor:
post:
x-prtg-writer: true
tags:
- Sensors
summary: "Creates a new sensor in a device."
description: |
This endpoint does not yet support all sensor types. Currently only the following sensors are supported:
- exe
- http
- ping
- snmptraffic
- sslcertificate
- ssl
- wmidiskspace
- wminetwork
- wmiprocess
- paessler.aws.awscost
- paessler.paecloud.ping_v2_sensor
- paessler.snmp.traffic_sensor
- paessler.snmp.uptime_sensor
- paessler.snmp.custom_sensor
- paessler.ssh.disk_free_sensor
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: CreateSensor
parameters:
- name: id
in: path
description: "Enter the ID of the device that you want to create a new sensor in."
required: true
schema:
type: string
- name: kindid
in: query
description: "Enter the kind ID of the sensor."
required: true
schema:
type: string
default: "ping"
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/CreateRequestBody"
example: { "basic": { "name": "New Sensor Name" } }
required: true
responses:
"201":
description: "A new sensor was created on the device."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/SensorInfo.yaml#/components/schemas/SensorInfo"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/devices/{id}/metascan:
post:
x-prtg-writer: true
tags:
- Sensors
summary: "Execute a meta-scan on a given device for a given sensor kind"
description: |
This endpoint does not yet support all sensor kinds. Currently only the following sensor kind is supported:
- snmpdiskfree
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: Metascan
parameters:
- name: id
in: path
description: "Enter the ID of the device that you want to execute a new meta-scan."
required: true
schema:
type: string
- name: kind
in: query
description: "Enter the kind of the sensor."
required: true
schema:
type: string
default: "snmpdiskfree"
responses:
"201":
description: "Execute a new sensor meta-scan for an given device."
content:
application/json:
schema:
$ref: "yaml/Metascan.yaml#/components/schemas/Metascan"
examples:
meta-scan:
$ref: "yaml/examples/sensor.yaml#/sensor-meta-scan"
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/devices/{id}/autodiscovery:
post:
tags:
- Devices
summary: "Trigger autodiscovery for a given device"
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: TriggerDeviceAutodiscovery
parameters:
- name: id
in: path
description: "Enter the ID of the device that you want to trigger autodiscovery for."
required: true
schema:
type: string
requestBody:
description: "Request Body."
content:
application/json:
schema:
$ref: "#/components/schemas/TriggerAutoDiscoveryRequestBody"
example: { "templates": ["Device Generic SNMP.odt"] }
required: false
responses:
"204":
description: "Auto discovery for an given device was triggered successfully."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/groups/{id}/autodiscovery:
post:
tags:
- Groups
summary: "Trigger autodiscovery for a given group"
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: TriggerGroupAutodiscovery
parameters:
- name: id
in: path
description: "Enter the ID of the group that you want to trigger autodiscovery for."
required: true
schema:
type: string
requestBody:
description: "Request Body."
content:
application/json:
schema:
$ref: "#/components/schemas/TriggerAutoDiscoveryRequestBody"
example: { "templates": ["Device Generic SNMP.odt"] }
required: false
responses:
"204":
description: "Auto discovery for an given group was triggered successfully."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/sensor/{id}:
patch:
x-prtg-writer: true
tags:
- Sensors
summary: "Edits a sensor."
description: |
This endpoint does not yet support all sensor settings. Currently only the following settings are supported:
- basic-section: name, priority and tags
- all settings in the section channelgroup
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
operationId: UpdateSensor
parameters:
- name: id
in: path
description: "Enter the ID of the sensor that you want to edit."
required: true
schema:
type: string
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/SettingsRequestBody"
example: { "basic": { "name": "New Sensor Name" } }
required: true
responses:
"204":
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/{id}/data:
get:
tags:
- Sensors
summary: "Returns the channel data for a specific sensor."
operationId: ListSensorMeasurements
parameters:
- name: id
in: path
description: "Enter the ID of the sensor that you want to get channel data for."
required: true
schema:
type: string
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ChannelMeasurement.yaml#/components/schemas/ChannelMeasurement"
examples:
Sensor data:
$ref: "yaml/examples/sensor.yaml#/data"
"4XX":
$ref: "#/components/responses/4XX-Sensors-Data"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/{id}/overview:
get:
tags:
- Sensors
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but is replaced with the '/sensors/{id}' endpoint.
summary: Returns a sensor overview.
operationId: GetSensorOverview
parameters:
- name: id
in: path
description: "Enter the ID of the sensor that you want an overview of."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/SensorInfo.yaml#/components/schemas/SensorInfo"
examples:
Sensor overview:
$ref: "yaml/examples/sensor.yaml#/overview"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/pause:
post:
tags:
- Sensors
summary: Pauses all sensors that match a filter.
operationId: MultiPauseSensor
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiPauseRequestBody"
required: true
responses:
"200":
description: "The request to pause all sensors that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_SENSOR",
"name": "Ping",
"href": "/api/v2/sensors/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "1005",
"type": "REFERENCED_SENSOR",
"name": "Laufwerk",
"href": "/api/v2/sensors/1005",
},
"failure":
{
"code": "WRONG_NODE_STATUS",
"message": "The requested action is not possible for the current status of the node.",
"request_id": "OdavLw",
},
},
{
"node":
{
"id": "1004",
"type": "REFERENCED_SENSOR",
"name": "Common SaaS Check",
"href": "/api/v2/sensors/1004",
},
"failure": null,
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/resume:
post:
tags:
- Sensors
summary: Resumes all sensors that match a filter.
operationId: MultiResumeSensor
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiResumeRequestBody"
required: true
responses:
"200":
description: "The request to resume all sensors that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_SENSOR",
"name": "Ping",
"href": "/api/v2/sensors/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_SENSOR",
"name": "Ping",
"href": "/api/v2/sensors/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/sensors/scan:
post:
tags:
- Sensors
summary: Triggers a scan of all sensors that match a filter.
operationId: MultiScanSensorNow
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiScanNowRequestBody"
required: true
responses:
"200":
description: "The request to scan all sensors that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_SENSOR",
"name": "Localhost",
"href": "/api/v2/sensors/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_SENSOR",
"name": "Localhost",
"href": "/api/v2/sensors/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/sensors/{id}:
delete:
operationId: DeleteSensor
tags:
- Sensors
description: |
This endpoint is experimental. For more information, see the [PRTG API v2 Overview: Endpoint Maturity](../overview/index.html#endpoint-maturity).
summary: "Deletes a sensor with all child channels."
parameters:
- name: id
in: path
description: "Enter the ID of the sensor that you want to delete."
required: true
schema:
type: string
responses:
"204":
description: "The sensor was deleted."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/session:
get:
tags:
- Authentication
summary: "Renews an active user session."
operationId: RenewSession
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/RenewResult.yaml#/components/schemas/RenewResult"
"4XX":
$ref: "#/components/responses/401"
"5XX":
$ref: "#/components/responses/5XX-Renew"
security:
- Bearer: []
post:
tags:
- Authentication
summary: "Creates a new user session."
operationId: Login
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LoginRequest"
required: true
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: "yaml/LoginResult.yaml#/components/schemas/LoginResult"
examples:
Login:
$ref: "yaml/examples/auth.yaml#/login"
"4XX":
$ref: "#/components/responses/4XX-Login"
"5XX":
$ref: "#/components/responses/5XX-Public"
delete:
tags:
- Authentication
summary: "Ends an active user session."
operationId: Logout
responses:
"204":
description: "The user was logged out successfully."
"4XX":
$ref: "#/components/responses/401"
"400":
$ref: "#/components/responses/400-API-Key-Logout"
"5XX":
$ref: "#/components/responses/5XX-Logout"
security:
- Bearer: []
/settings/public:
get:
tags:
- System
summary: "Returns a list of settings that are available for unauthenticated users."
operationId: PublicSettings
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/PublicSettings.yaml#/components/schemas/PublicSettings"
examples:
Settings:
$ref: "yaml/examples/system.yaml#/settings"
/users:
get:
tags:
- Accounts
summary: "Returns a list of all user accounts."
operationId: ListUsers
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/UserInfo.yaml#/components/schemas/UserInfo"
examples:
Users:
$ref: "yaml/examples/user.yaml#/list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/users/{id}/pause:
post:
operationId: PauseUser
parameters:
- description: "Enter the ID of the user account that you want to pause."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The user account was paused."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: "Pauses a user account."
tags:
- Accounts
/users/{id}/resume:
post:
operationId: ResumeUser
parameters:
- description: "Enter the ID of the user account that you want to resume."
in: path
name: id
required: true
schema:
type: string
responses:
"204":
description: "The user account was resumed."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: "Resumes a user account."
tags:
- Accounts
/users/request-password:
post:
tags:
- Accounts
summary: "Triggers the password reset process for a user account."
description: |
**Note:** This route is not available when using PPHM.
operationId: TriggerPasswordReset
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/TriggerPasswordResetRequest"
required: true
responses:
"204":
description: "The request to trigger the password reset process was successful."
"4XX":
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"5XX":
$ref: "#/components/responses/5XX-Public"
/users/reset-password:
post:
tags:
- Accounts
summary: "Set a new password for a user account with the token from the password reset process."
description: |
**Note:** This route is not available when using PPHM.
operationId: ResetPassword
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ResetPasswordRequest"
required: true
responses:
"204":
description: "The password was changed."
"400":
$ref: "#/components/responses/4XX-Reset-Password"
"5XX":
$ref: "#/components/responses/5XX-Public"
/users/{id}:
get:
tags:
- Accounts
summary: "Returns information about a user account."
operationId: GetUserOverview
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: id
in: path
description: "Enter the ID of the user account for which you want to get information."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/UserInfo.yaml#/components/schemas/UserInfo"
examples:
User:
$ref: "yaml/examples/user.yaml#/read"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/users/{id}:
get:
x-prtg-writer: true
tags:
- Accounts
summary: Returns the metrics and settings of a user.
operationId: GetUser
parameters:
- name: id
in: path
description: Enter the ID of the user that you want to see the metrics and settings of.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a user.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=usercontrol,commentgroup`
|
| `*` | A wildcard that includes the all_sections, usercontrol, and commentgroup parameters. | `include=*`|
For more information, see the [Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
user:
$ref: "yaml/examples/user.yaml#/read-osk"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/experimental/users:
get:
tags:
- Accounts
summary: "Returns a list of users."
description: "This endpoint is experimental. See [Overview: Maturity of endpoints](../overview/index.html#endpoint-maturity) for more context."
operationId: ListUsersOSK
parameters:
- name: offset
in: query
description: 'Use offset to define which results are returned. For example, if you enter 0 for offset and 100 for limit, the API returns results 0 to 99. The index is zero based. For more information, see Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. The maximum number of objects is 3000. If you enter 0, the request returns up to 3000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see Overview: Filter.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested users.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=usercontrol,commentgroup`
|
| `*` | A wildcard that includes the all_sections, usercontrol, and commentgroup parameters. | `include=*`|
For more information, see the [Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
user:
$ref: "yaml/examples/user.yaml#/list-read-osk"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/users/pause:
post:
tags:
- Accounts
summary: "Pauses all user accounts that match a filter."
operationId: MultiUserPauseRequest
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiUserPauseRequest"
required: true
responses:
"200":
description: "The request to pause all user accounts that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_USER",
"name": "me",
"href": "/api/v2/users/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_USER",
"name": "me",
"href": "/api/v2/users/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/users/resume:
post:
tags:
- Accounts
summary: "Resumes all user accounts that match a filter."
operationId: MultiResumeUser
requestBody:
description: "Request Body"
content:
application/json:
schema:
$ref: "#/components/schemas/MultiResumeRequestBody"
required: true
responses:
"200":
description: "The request to resume all user accounts that match the filter was successful. See the response for possible error messages."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/ActionResult.yaml#/components/schemas/ActionResult"
examples:
"200: Success":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_USER",
"name": "me",
"href": "/api/v2/users/2322",
},
"failure": null,
},
]
"200: Success with one failure":
value:
[
{
"node":
{
"id": "2322",
"type": "REFERENCED_USER",
"name": "me",
"href": "/api/v2/users/2322",
},
"failure":
{
"code": "BAD_REQUEST",
"message": "The request could not be processed. Check if the format and the data types are correct.",
"request_id": "amAUOX",
},
},
]
"4XX":
$ref: "#/components/responses/4XX-MultiAction"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/users/api-keys/find:
post:
tags:
- Accounts
operationId: FindAPIKey
summary: Returns details of an API key.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/FindAPIKeyRequestBody"
responses:
"200":
description: "The API key was found."
content:
application/json:
schema:
$ref: "yaml/APIKeyInfo.yaml#/components/schemas/APIKeyInfo"
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/users/{id}/api-keys:
get:
tags:
- Accounts
operationId: ListAPIKeys
summary: "Returns a list of API keys that belong to a user account."
parameters:
- description: 'Enter the ID of the user that you want to get a list of API keys for. Enter "me" if you want a list of your own API keys.'
in: path
name: id
required: true
schema:
type: string
responses:
"200":
description: "The request to list the API keys of the specified user was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/APIKeyInfo.yaml#/components/schemas/APIKeyInfo"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
post:
tags:
- Accounts
operationId: CreateAPIKey
parameters:
- description: 'Enter the ID of the user that you want to create an API key for. Enter "me" if you want to create an API key for your own user account.'
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateAPIKeyRequestBody"
description: "Request Body"
required: true
x-originalParamName: body
responses:
"200":
content:
application/json:
schema:
$ref: "yaml/CreateAPIKeyResponse.yaml#/components/schemas/CreateAPIKeyResponse"
description: "The API Key was created."
"4XX":
$ref: "#/components/responses/4XX-Action"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
summary: Creates a new API key.
/users/api-keys/{id}:
delete:
operationId: DeleteAPIKey
tags:
- Accounts
summary: |
Deletes an API key.
parameters:
- name: id
in: path
description: "Enter the ID of the API key that you want to delete."
required: true
schema:
type: string
responses:
"204":
description: "The API key was deleted."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
patch:
operationId: ModifyAPIKey
tags:
- Accounts
summary: "Edits an API key."
parameters:
- name: id
in: path
description: "Enter the ID of the API key that you want to edit."
required: true
schema:
type: string
responses:
"204":
description: "The API key was edited."
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ModifyAPIKeyRequestBody"
security:
- Bearer: []
/usergroups:
get:
tags:
- Accounts
summary: "Get a list of all user groups that match a filter."
operationId: ListUserGroups
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the PRTG API v2 Overview: Filters.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
$ref: "yaml/UserGroupInfo.yaml#/components/schemas/UserGroupInfo"
examples:
Usergroups:
$ref: "yaml/examples/usergroup.yaml#/list-read"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/usergroups/{id}:
get:
tags:
- Accounts
summary: "Return information about a user group."
operationId: GetUserGroupOverview
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: id
in: path
description: "Enter the ID of the user group that you want to get information for."
required: true
schema:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/UserGroupInfo.yaml#/components/schemas/UserGroupInfo"
examples:
Usergroup:
$ref: "yaml/examples/usergroup.yaml#/read"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/usergroups/{id}:
get:
x-prtg-writer: true
tags:
- Accounts
summary: Returns the settings of a usergroup.
operationId: GetUserGroup
parameters:
- name: id
in: path
description: Enter the ID of the usergroup that you want to see the settings of.
required: true
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about a usergroup.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=usercontrol,commentgroup`
|
| `*` | A wildcard that includes the all_sections, usercontrol, and commentgroup parameters. | `include=*`|
For more information, see the [Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
user:
$ref: "yaml/examples/usergroup.yaml#/read-osk"
"4XX":
$ref: "#/components/responses/4XX-Overviews"
security:
- Bearer: []
/experimental/usergroups:
get:
tags:
- Accounts
summary: "Returns a list of user groups."
description: "This endpoint is experimental. See [Overview: Maturity of endpoints](../overview/index.html#endpoint-maturity) for more context."
operationId: ListUserGroupsOSK
parameters:
- name: offset
in: query
description: 'Use offset to define which results are returned. For example, if you enter 0 for offset and 100 for limit, the API returns results 0 to 99. The index is zero based. For more information, see Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. The maximum number of objects is 3000. If you enter 0, the request returns up to 3000 objects."
schema:
type: integer
format: int32
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see Overview: Filter.'
schema:
type: string
- name: include
in: query
description: |
By default, this endpoint only returns the most relevant information about the requested users.
You can include additional parameters:
| Parameter | Description | Example |
| ------ | ------ | ------ |
| `all_sections`
Individual settings sections | Explicitly request one, multiple, or all settings sections. | `include=all_sections`
`include=usercontrol,commentgroup`
|
| `*` | A wildcard that includes the all_sections, usercontrol, and commentgroup parameters. | `include=*`|
For more information, see the [Overview: Includes](../overview/index.html#includes).
schema:
type: array
format: csv
items:
type: string
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
type: array
items:
allOf:
- $ref: "yaml/TreeNode.yaml#/components/schemas/TreeNode"
anyOf:
- $ref: "yaml/TreeNodeAdditionalProperties.yaml#/components/schemas/TreeNodeAdditionalProperties"
additionalProperties:
$ref: "#/components/schemas/json-response-section"
examples:
user:
$ref: "yaml/examples/usergroup.yaml#/list-read-osk"
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/version:
get:
tags:
- System
summary: "Returns information on the PRTG version and appserver version."
operationId: VersionInfo
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/Versions.yaml#/components/schemas/Versions"
examples:
Version:
$ref: "yaml/examples/system.yaml#/version"
"4XX":
$ref: "#/components/responses/401"
"5XX":
$ref: "#/components/responses/5XX-Public"
security:
- Bearer: []
/autodiscoveries:
get:
tags:
- System
summary: "Returns a list of all running auto-discoveries."
operationId: ListAutodiscoveries
parameters:
- name: offset
in: query
description: 'Use an offset to define which results the request returns. The index is a zero-based array, which means that the first object has an index of 0. If you have an offset of 0 and a limit of 100, the API returns results 0 to 99. For more information, see the PRTG API v2 Overview: Pagination.'
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: "Enter the number of objects that the request returns. If you set the limit to 0 or do not enter a value, the request returns up to 3,000 objects."
schema:
type: integer
format: int32
maximum: 3000
default: 100
- name: filter
in: query
description: 'Define filters to filter the results. For more information, see the Overview: Filter.'
schema:
type: string
- name: sort_by
in: query
description: "Enter a comma-separated list of settings that you want to use to sort the results. By default, the results are sorted in ascending order. You can optionally add a plus sign (+) in front of the setting to highlight the ascending order. Enter a minus sign (-) in front of the setting to sort the results in descending order."
schema:
type: string
responses:
"200":
content:
application/json:
schema:
type: array
items:
$ref: "yaml/AutodiscoveryInfo.yaml#/components/schemas/AutodiscoveryInfo"
description: "The request was successful."
"4XX":
$ref: "#/components/responses/4XX-Lists"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
/experimental/license:
get:
tags:
- System
summary: "Returns PRTG license information."
operationId: LicenseInfo
responses:
"200":
description: "The request was successful."
content:
application/json:
schema:
$ref: "yaml/LicenseInfo.yaml#/components/schemas/LicenseInfo"
examples:
Version:
$ref: "yaml/examples/system.yaml#/license"
"4XX":
$ref: "#/components/responses/401"
"5XX":
$ref: "#/components/responses/5XX-Public"
security:
- Bearer: []
/setting-lookups/{name}:
get:
tags:
- Objects
summary: "Returns possible setting lookup values."
operationId: SettingsLookup
deprecated: true
description: |
⚠ Deprecated as of PRTG 24.3.100: This endpoint still works, but will be replaced.
parameters:
- name: name
in: path
description: "Name of the lookup."
required: true
schema:
type: string
- name: id
in: query
description: "Enter ID of corresponding object of the setting lookup."
required: false
schema:
type: string
responses:
"200":
description: The setting lookup result
content:
application/json:
schema:
$ref: "yaml/SettingsLookupResult.yaml#/components/schemas/SettingsLookupResult"
"4XX":
$ref: "#/components/responses/4XX"
"5XX":
$ref: "#/components/responses/5XX"
security:
- Bearer: []
components:
schemas:
Error:
title: Error Response
description: "This is the schema for all error responses that the API returns."
type: object
properties:
code:
title: "The internal API error code. For example, AUTH_FAILED."
type: string
message:
title: "The error message. This provides further information about the error."
type: string
request_id:
title: "The ID of the request that encountered the error."
type: string
example:
code: "AUTH_FAILED"
message: "The authentication failed. Enter valid credentials."
request_id: "lJMKhk"
AcknowledgeRequestBody:
title: Acknowledge Request Body
description: "This is the body of the request to acknowledge the alarm of a sensor."
type: object
properties:
duration:
description: "Enter the duration of the alarm acknowledgement. Enter zero to acknowledge the alarm indefinitely. PRTG rounds up the value to full minutes. For example, if you enter 100, PRTG acknowledges the alarm for two minutes."
type: number
format: double
default: 0.0
minimum: 0.0
message:
description: "Enter a message that the acknowledged sensor displays as a sensor message."
type: string
example:
duration: 300
message: "Alarm acknowledged for five minutes. Troubleshooting in progress."
MultiAcknowledgeRequestBody:
title: Multi-Acknowledge Request Body
description: "This is the body of the request to acknowledge the alarms of multiple sensors."
type: object
properties:
filter:
description: "Define filters to limit and specify the results that the request returns."
type: string
duration:
description: Enter the duration of the alarm acknowledgement. Enter zero to acknowledge the alarm indefinitely. PRTG rounds up the value to full minutes. For example, if you enter 100, PRTG acknowledges the alarm for two minutes.
type: number
format: double
default: 0.0
minimum: 0.0
message:
description: "Enter a message that the acknowledged sensor displays as a sensor message."
type: string
required: [filter]
example:
filter: name = "object-name"
duration: 300.0
message: Alarms acknowledged for five minutes. Troubleshooting in progress.
MultiPauseRequestBody:
title: Multi-Pause Request Body
description: "This is the body of the request to pause the alarms of multiple sensors."
type: object
properties:
filter:
description: "Define filters to limit and specify the results that the request returns."
type: string
duration:
description: "Enter the duration of the alarm acknowledgement. Enter zero to acknowledge the alarm indefinitely. PRTG rounds up the value to full minutes. For example, if you enter 100, PRTG acknowledges the alarm for two minutes."
type: number
format: double
default: 0.0
minimum: 0.0
message:
description: "Enter a message that the acknowledged sensor displays as a sensor message."
type: string
required: [filter]
example:
filter: name = "object-name"
duration: 300.0
message: Alarms acknowledged for five minutes. Troubleshooting in progress.
MultiResumeRequestBody:
title: Multi-Resume Request Body
description: "This is the body of the request to resume multiple objects."
type: object
properties:
filter:
description: "Define filters to limit and specify the results that the request returns."
type: string
required: [filter]
example:
filter: name = "object-name"
MultiScanNowRequestBody:
title: Multi-Scan Now Request Body
description: "This is the body of the request to trigger a scan for multiple objects."
type: object
properties:
filter:
description: "Define filters to limit the results that the request returns."
type: string
required: [filter]
example:
filter: name = "object-name"
PauseRequestBody:
title: Action Pause Request Body
description: "This is the body of the request to pause a sensor."
type: object
properties:
duration:
description: "Enter the duration of the pause. Enter zero to pause the object indefinitely. PRTG rounds up the value to full minutes. For example, if you enter 100, PRTG pauses the object for two minutes."
type: number
format: double
default: 0.0
minimum: 0.0
message:
description: "Enter a message that the paused sensor displays as sensor message."
type: string
example:
duration: 300.0
message: "Maintenance: Paused for 5 minutes."
SettingsRequestBody:
title: Edit Settings Request Body
description: "This is the body of the request to edit the settings of an object."
type: object
CreateRequestBody:
title: Create Request Body
description: "This is the body of the request to create a new object."
type: object
TriggerAutoDiscoveryRequestBody:
title: Trigger Auto Discovery Request Body
description: 'This is the body of the request to trigger auto discovery for a device. Add the wanted template filenames to the "templates" array. Template filenames for usage can be found in /experimental/devices/templates'
type: object
properties:
templates:
type: array
items:
type: string
MultiUserPauseRequest:
title: Multi Action User Pause Request Body
description: "This is the body of the request to pause multiple objects."
type: object
properties:
filter:
description: "Define filters to limit the results that the request returns."
type: string
required: [filter]
example:
filter: name = "object-name"
LoginRequest:
title: Login Request Body
description: "This is the body of the request to create a new user session."
type: object
properties:
username:
title: "The user name that the request uses for authentication."
type: string
password:
title: "The password that the request uses for authentication."
type: string
required: [username, password]
example:
username: prtgadmin
password: prtgadmin
FindAPIKeyRequestBody:
title: Find API Key Request Body
description: "This is the request body to find an API key."
type: object
properties:
id:
type: string
description: "The ID of the API key."
key:
type: string
description: "The API key itself."
CreateAPIKeyRequestBody:
title: Create API Key Request Body
description: "This is the request body to create a new API key."
type: object
properties:
name:
type: string
description: "The name of the new API key."
description:
type: string
description: "A textual description of the new API key."
access_level:
type: string
description: "The access level of the new API key."
enum:
- NOT_SET
- READ
- ACKNOWLEDGE
- WRITE
- FULL
required: [name, access_level]
ModifyAPIKeyRequestBody:
title: Edit API Key Request Body
description: "This is the request body to edit an API key."
type: object
properties:
name:
type: string
description: "The name of the API key."
description:
type: string
description: "A textual description of the API key."
access_level:
type: string
description: "The access level of the API key."
enum:
- NOT_SET
- READ
- ACKNOWLEDGE
- WRITE
- FULL
TriggerPasswordResetRequest:
title: Trigger Password Reset Request Body
description: "This is the body of the request to trigger the password reset process."
type: object
properties:
username:
type: string
description: "The user name of the user account that you want to initiate the password reset process for."
required: [username]
ResetPasswordRequest:
title: Reset Password Request
description: "This is the body of the request to change the password of a user account with the token from the password reset process."
type: object
properties:
username:
type: string
description: "The user name of the user account whose password you want to change."
password:
type: string
description: "The new password for the user account."
token:
type: string
description: "The token from the password reset process."
required: [username, password, token]
TimeseriesRow:
type: array
items:
anyOf:
- $ref: "#/components/schemas/Timestamp"
- $ref: "#/components/schemas/ChannelID"
- $ref: "#/components/schemas/Integer"
- $ref: "#/components/schemas/Float"
Timestamp:
type: string
format: date-time
ChannelID:
type: string
format: sensorID.channel
Integer:
type: integer
Float:
type: number
json-response:
type: object
description: "JSON response."
additionalProperties:
oneOf:
- $ref: "#/components/schemas/json-response-section"
- $ref: "#/components/schemas/json-response-string"
- $ref: "#/components/schemas/json-response-number"
- $ref: "#/components/schemas/json-response-boolean"
- $ref: "#/components/schemas/json-response-integer"
- $ref: "#/components/schemas/json-response-string-array"
- $ref: "#/components/schemas/json-response-integer-array"
json-response-section:
type: object
additionalProperties:
oneOf:
- $ref: "#/components/schemas/json-response-string"
- $ref: "#/components/schemas/json-response-number"
- $ref: "#/components/schemas/json-response-boolean"
- $ref: "#/components/schemas/json-response-integer"
- $ref: "#/components/schemas/json-response-string-array"
- $ref: "#/components/schemas/json-response-integer-array"
json-response-string:
type: string
json-response-integer:
type: integer
json-response-number:
type: number
format: double
json-response-boolean:
type: boolean
json-response-string-array:
type: array
items:
type: string
json-response-integer-array:
type: array
items:
type: integer
responses:
"401":
description: "Client Errors"
content:
application/json:
examples:
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
schema:
$ref: "#/components/schemas/Error"
"4XX":
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
"403":
$ref: "#/components/examples/403-FORBIDDEN"
"404":
$ref: "#/components/examples/404-NOT_FOUND"
schema:
$ref: "#/components/schemas/Error"
"4XX-Lists":
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"400-invalid-filter":
$ref: "#/components/examples/400-INVALID_FILTER"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
schema:
$ref: "#/components/schemas/Error"
"4XX-Overviews":
description: "Client Errors"
content:
application/json:
examples:
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
"404":
$ref: "#/components/examples/404-NOT_FOUND"
schema:
$ref: "#/components/schemas/Error"
4XX-Action:
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
"403":
$ref: "#/components/examples/403-FORBIDDEN"
"404":
$ref: "#/components/examples/404-NOT_FOUND"
schema:
$ref: "#/components/schemas/Error"
4XX-MultiAction:
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"400-invalid-filter":
$ref: "#/components/examples/400-INVALID_FILTER"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
schema:
$ref: "#/components/schemas/Error"
4XX-Sensors-Data:
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"400-invalid-filter":
$ref: "#/components/examples/400-INVALID_FILTER"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
"404":
$ref: "#/components/examples/404-NOT_FOUND"
schema:
$ref: "#/components/schemas/Error"
"4XX-Login":
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"400-login-failed":
$ref: "#/components/examples/401-LOGIN_FAILED"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
schema:
$ref: "#/components/schemas/Error"
"400-API-Key-Logout":
description: "Logout with API key"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-API-KEY-LOGOUT"
schema:
$ref: "#/components/schemas/Error"
"4XX-Tree":
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"401":
$ref: "#/components/examples/401-UNAUTHORIZED"
schema:
$ref: "#/components/schemas/Error"
"4XX-Reset-Password":
description: "Client Errors"
content:
application/json:
examples:
"400":
$ref: "#/components/examples/400-BAD_REQUEST"
"400-low-password-complexity":
$ref: "#/components/examples/400-LOW_PASSWORD_COMPLEXITY"
"400-invalid-password-reset-token":
$ref: "#/components/examples/400-INVALID_PASSWORD_RESET_TOKEN"
schema:
$ref: "#/components/schemas/Error"
"5XX":
description: "Server Errors"
content:
application/json:
examples:
"500":
$ref: "#/components/examples/500-INTERNAL"
"502":
$ref: "#/components/examples/502-BAD_GATEWAY"
"503 unavailable":
$ref: "#/components/examples/503-SERVICE_UNAVAILABLE"
"503 inactive":
$ref: "#/components/examples/503-LICENSE_INACTIVE"
"505":
$ref: "#/components/examples/504-GATEWAY_TIMEOUT"
schema:
$ref: "#/components/schemas/Error"
"5XX-Public":
description: "Server Errors"
content:
application/json:
examples:
"500":
$ref: "#/components/examples/500-INTERNAL"
"502":
$ref: "#/components/examples/502-BAD_GATEWAY"
"503":
$ref: "#/components/examples/503-SERVICE_UNAVAILABLE"
"505":
$ref: "#/components/examples/504-GATEWAY_TIMEOUT"
schema:
$ref: "#/components/schemas/Error"
"5XX-Renew":
description: "Server Errors"
content:
application/json:
examples:
"500":
$ref: "#/components/examples/500-INTERNAL"
"500-RenewFailed":
$ref: "#/components/examples/500-RENEW_FAILED"
"502":
$ref: "#/components/examples/502-BAD_GATEWAY"
"503":
$ref: "#/components/examples/503-SERVICE_UNAVAILABLE"
"505":
$ref: "#/components/examples/504-GATEWAY_TIMEOUT"
schema:
$ref: "#/components/schemas/Error"
"5XX-Logout":
description: "Server Errors"
content:
application/json:
examples:
"500":
$ref: "#/components/examples/500-INTERNAL"
"500-LogoutFailed":
$ref: "#/components/examples/500-LOGOUT_FAILED"
"502":
$ref: "#/components/examples/502-BAD_GATEWAY"
"503":
$ref: "#/components/examples/503-SERVICE_UNAVAILABLE"
"505":
$ref: "#/components/examples/504-GATEWAY_TIMEOUT"
schema:
$ref: "#/components/schemas/Error"
examples:
400-BAD_REQUEST:
summary: "400: Bad Request"
value:
code: "BAD_REQUEST"
message: "The request could not be processed. Check if the format and the data types are correct."
request_id: "lJMKhk"
400-API-KEY-LOGOUT:
summary: "400: You can't log out while using an API key"
value:
code: "BAD_REQUEST"
message: "The request could not be processed. Check if the format and the data types are correct. Cause: You cannot log out when using an API key."
request_id: "DWXfDl"
400-INVALID_FILTER:
summary: "400: Invalid Filter"
value:
code: "INVALID_FILTER"
message: 'Invalid filter. Check offset 7: invalid token ''"'''
request_id: "OPdFec"
400-LOW_PASSWORD_COMPLEXITY:
summary: "400: Low Password Complexity"
value:
code: "LOW_PASSWORD_COMPLEXITY"
message: "The password does not meet complexity requirements. Enter a password that matches the password requirements."
request_id: "lJMKhz"
400-INVALID_PASSWORD_RESET_TOKEN:
summary: "400: Invalid Password Reset Token"
value:
code: "INVALID_PASSWORD_RESET_TOKEN"
message: "Invalid password reset token. Enter a valid password reset token."
request_id: "lJMKhz"
401-UNAUTHORIZED:
summary: "401: Unauthorized"
value:
code: "AUTH_FAILED"
message: "Authentication failed. Enter valid credentials."
request_id: "Zsebji"
401-LOGIN_FAILED:
summary: "401: Login Error"
value:
code: "LOGIN_FAILED"
message: "Login failed. Enter a valid user name and password or token."
request_id: "Zsebji"
403-FORBIDDEN:
summary: "403: Forbidden"
value:
code: "FORBIDDEN"
message: "Unauthorized request. Check the ID of the object and the permissions of the user account."
request_id: "snwyak"
404-NOT_FOUND:
summary: "404: Not Found"
value:
code: "NOT_FOUND"
message: "This object could not be found at this endpoint. Check the ID of the object."
request_id: "snwyak"
500-INTERNAL:
summary: "500: Internal Server Error"
value:
code: "UNKNOWN"
message: "An unknown error has occurred. Check the log files for more information."
request_id: "snwyak"
500-RENEW_FAILED:
summary: "500: Session Renewal Error"
value:
code: "RENEW_FAILED"
message: "The renewal of the active user session has failed."
request_id: "snwyak"
500-LOGOUT_FAILED:
summary: "500: Logout failed"
value:
code: "LOGOUT_FAILED"
message: "The logout of the active user session has failed."
request_id: "snwyak"
502-BAD_GATEWAY:
summary: "502: Bad Gateway"
value:
code: "BAD_GATEWAY"
message: "The response from the PRTG core server was invalid."
request_id: "snwyak"
503-SERVICE_UNAVAILABLE:
summary: "503: Service Unavailable"
value:
code: "SERVICE_UNAVAILABLE"
message: "Service unavailable. The PRTG application server could not connect to the PRTG core server."
request_id: "kijuIU"
503-LICENSE_INACTIVE:
summary: "503: License Inactive"
value:
code: "LICENSE_INACTIVE"
message: "Inactive license. Your PRTG installation currently has limited features."
request_id: "NsqmjD"
504-GATEWAY_TIMEOUT:
summary: "504: Gateway Timeout"
value:
code: "GATEWAY_TIMEOUT"
message: "The request to the PRTG core server timed out."
request_id: "kijuIU"
securitySchemes:
Bearer:
type: apiKey
description: "Enter a token with the prefix *Bearer*. For example: `Bearer TOKEN-FROM-LOGIN`"
name: Authorization
in: header