Patchman-engine API
redhat · Developer Tools
API of the Patch application on [cloud.redhat.com](cloud.redhat.com) Syntax of the `filter[name]` query parameters is described in [Filters documentation](https://github.com/RedHatInsights/patchman-engine/wiki/API-custom-filters)
Authentication
Sample Requests
Show me all applicable advisories for all my systems
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/advisories?sort=id&tags=example&limit=10&offset=0&search=hello&filter[id]=example&filter[severity]=example&filter[synopsis]=example&filter[description]=example&filter[public_date]=example&filter[advisory_type]=example&filter[applicable_systems]=example&filter[system_profile][sap_system]=example&filter[system_profile][sap_sids][in]=example"
import requests
params = {
"sort": "id",
"tags": "example",
"limit": "10",
"offset": "0",
"search": "hello",
"filter[id]": "example",
"filter[severity]": "example",
"filter[synopsis]": "example",
"filter[description]": "example",
"filter[public_date]": "example",
"filter[advisory_type]": "example",
"filter[applicable_systems]": "example",
"filter[system_profile][sap_system]": "example",
"filter[system_profile][sap_sids][in]": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/advisories",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/advisories');
url.searchParams.set('sort', 'id');
url.searchParams.set('tags', 'example');
url.searchParams.set('limit', '10');
url.searchParams.set('offset', '0');
url.searchParams.set('search', 'hello');
url.searchParams.set('filter[id]', 'example');
url.searchParams.set('filter[severity]', 'example');
url.searchParams.set('filter[synopsis]', 'example');
url.searchParams.set('filter[description]', 'example');
url.searchParams.set('filter[public_date]', 'example');
url.searchParams.set('filter[advisory_type]', 'example');
url.searchParams.set('filter[applicable_systems]', 'example');
url.searchParams.set('filter[system_profile][sap_system]', 'example');
url.searchParams.set('filter[system_profile][sap_sids][in]', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/advisories")
q := baseURL.Query()
q.Set("sort", "id")
q.Set("tags", "example")
q.Set("limit", "10")
q.Set("offset", "0")
q.Set("search", "hello")
q.Set("filter[id]", "example")
q.Set("filter[severity]", "example")
q.Set("filter[synopsis]", "example")
q.Set("filter[description]", "example")
q.Set("filter[public_date]", "example")
q.Set("filter[advisory_type]", "example")
q.Set("filter[applicable_systems]", "example")
q.Set("filter[system_profile][sap_system]", "example")
q.Set("filter[system_profile][sap_sids][in]", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/advisories")
uri.query = URI.encode_www_form({
"sort" => "id",
"tags" => "example",
"limit" => "10",
"offset" => "0",
"search" => "hello",
"filter[id]" => "example",
"filter[severity]" => "example",
"filter[synopsis]" => "example",
"filter[description]" => "example",
"filter[public_date]" => "example",
"filter[advisory_type]" => "example",
"filter[applicable_systems]" => "example",
"filter[system_profile][sap_system]" => "example",
"filter[system_profile][sap_sids][in]" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/advisories?" . http_build_query([
"sort" => "id",
"tags" => "example",
"limit" => "10",
"offset" => "0",
"search" => "hello",
"filter[id]" => "example",
"filter[severity]" => "example",
"filter[synopsis]" => "example",
"filter[description]" => "example",
"filter[public_date]" => "example",
"filter[advisory_type]" => "example",
"filter[applicable_systems]" => "example",
"filter[system_profile][sap_system]" => "example",
"filter[system_profile][sap_sids][in]" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Show me all installed packages across my systems
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/packages/?sort=id&tags=example&limit=10&offset=0&search=hello&filter[name]=example&filter[summary]=example&filter[systems_installed]=example&filter[systems_updatable]=example&filter[system_profile][sap_system]=example&filter[system_profile][sap_sids][in]=example"
import requests
params = {
"sort": "id",
"tags": "example",
"limit": "10",
"offset": "0",
"search": "hello",
"filter[name]": "example",
"filter[summary]": "example",
"filter[systems_installed]": "example",
"filter[systems_updatable]": "example",
"filter[system_profile][sap_system]": "example",
"filter[system_profile][sap_sids][in]": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/packages/",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/packages/');
url.searchParams.set('sort', 'id');
url.searchParams.set('tags', 'example');
url.searchParams.set('limit', '10');
url.searchParams.set('offset', '0');
url.searchParams.set('search', 'hello');
url.searchParams.set('filter[name]', 'example');
url.searchParams.set('filter[summary]', 'example');
url.searchParams.set('filter[systems_installed]', 'example');
url.searchParams.set('filter[systems_updatable]', 'example');
url.searchParams.set('filter[system_profile][sap_system]', 'example');
url.searchParams.set('filter[system_profile][sap_sids][in]', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/packages/")
q := baseURL.Query()
q.Set("sort", "id")
q.Set("tags", "example")
q.Set("limit", "10")
q.Set("offset", "0")
q.Set("search", "hello")
q.Set("filter[name]", "example")
q.Set("filter[summary]", "example")
q.Set("filter[systems_installed]", "example")
q.Set("filter[systems_updatable]", "example")
q.Set("filter[system_profile][sap_system]", "example")
q.Set("filter[system_profile][sap_sids][in]", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/packages/")
uri.query = URI.encode_www_form({
"sort" => "id",
"tags" => "example",
"limit" => "10",
"offset" => "0",
"search" => "hello",
"filter[name]" => "example",
"filter[summary]" => "example",
"filter[systems_installed]" => "example",
"filter[systems_updatable]" => "example",
"filter[system_profile][sap_system]" => "example",
"filter[system_profile][sap_sids][in]" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/packages/?" . http_build_query([
"sort" => "id",
"tags" => "example",
"limit" => "10",
"offset" => "0",
"search" => "hello",
"filter[name]" => "example",
"filter[summary]" => "example",
"filter[systems_installed]" => "example",
"filter[systems_updatable]" => "example",
"filter[system_profile][sap_system]" => "example",
"filter[system_profile][sap_sids][in]" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Show me all my systems
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/systems?sort=id&tags=example&limit=10&offset=0&search=hello&filter[id]=example&filter[stale]=example&filter[created]=example&filter[rhba_count]=example&filter[rhea_count]=example&filter[rhsa_count]=example&filter[insights_id]=example&filter[last_upload]=example&filter[other_count]=example&filter[display_name]=example&filter[last_evaluation]=example&filter[stale_timestamp]=example&filter[culled_timestamp]=example&filter[packages_installed]=example&filter[packages_updatable]=example&filter[stale_warning_timestamp]=example&filter[system_profile][sap_system]=example&filter[system_profile][sap_sids][in]=example"
import requests
params = {
"sort": "id",
"tags": "example",
"limit": "10",
"offset": "0",
"search": "hello",
"filter[id]": "example",
"filter[stale]": "example",
"filter[created]": "example",
"filter[rhba_count]": "example",
"filter[rhea_count]": "example",
"filter[rhsa_count]": "example",
"filter[insights_id]": "example",
"filter[last_upload]": "example",
"filter[other_count]": "example",
"filter[display_name]": "example",
"filter[last_evaluation]": "example",
"filter[stale_timestamp]": "example",
"filter[culled_timestamp]": "example",
"filter[packages_installed]": "example",
"filter[packages_updatable]": "example",
"filter[stale_warning_timestamp]": "example",
"filter[system_profile][sap_system]": "example",
"filter[system_profile][sap_sids][in]": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/systems",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/systems');
url.searchParams.set('sort', 'id');
url.searchParams.set('tags', 'example');
url.searchParams.set('limit', '10');
url.searchParams.set('offset', '0');
url.searchParams.set('search', 'hello');
url.searchParams.set('filter[id]', 'example');
url.searchParams.set('filter[stale]', 'example');
url.searchParams.set('filter[created]', 'example');
url.searchParams.set('filter[rhba_count]', 'example');
url.searchParams.set('filter[rhea_count]', 'example');
url.searchParams.set('filter[rhsa_count]', 'example');
url.searchParams.set('filter[insights_id]', 'example');
url.searchParams.set('filter[last_upload]', 'example');
url.searchParams.set('filter[other_count]', 'example');
url.searchParams.set('filter[display_name]', 'example');
url.searchParams.set('filter[last_evaluation]', 'example');
url.searchParams.set('filter[stale_timestamp]', 'example');
url.searchParams.set('filter[culled_timestamp]', 'example');
url.searchParams.set('filter[packages_installed]', 'example');
url.searchParams.set('filter[packages_updatable]', 'example');
url.searchParams.set('filter[stale_warning_timestamp]', 'example');
url.searchParams.set('filter[system_profile][sap_system]', 'example');
url.searchParams.set('filter[system_profile][sap_sids][in]', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/systems")
q := baseURL.Query()
q.Set("sort", "id")
q.Set("tags", "example")
q.Set("limit", "10")
q.Set("offset", "0")
q.Set("search", "hello")
q.Set("filter[id]", "example")
q.Set("filter[stale]", "example")
q.Set("filter[created]", "example")
q.Set("filter[rhba_count]", "example")
q.Set("filter[rhea_count]", "example")
q.Set("filter[rhsa_count]", "example")
q.Set("filter[insights_id]", "example")
q.Set("filter[last_upload]", "example")
q.Set("filter[other_count]", "example")
q.Set("filter[display_name]", "example")
q.Set("filter[last_evaluation]", "example")
q.Set("filter[stale_timestamp]", "example")
q.Set("filter[culled_timestamp]", "example")
q.Set("filter[packages_installed]", "example")
q.Set("filter[packages_updatable]", "example")
q.Set("filter[stale_warning_timestamp]", "example")
q.Set("filter[system_profile][sap_system]", "example")
q.Set("filter[system_profile][sap_sids][in]", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/systems")
uri.query = URI.encode_www_form({
"sort" => "id",
"tags" => "example",
"limit" => "10",
"offset" => "0",
"search" => "hello",
"filter[id]" => "example",
"filter[stale]" => "example",
"filter[created]" => "example",
"filter[rhba_count]" => "example",
"filter[rhea_count]" => "example",
"filter[rhsa_count]" => "example",
"filter[insights_id]" => "example",
"filter[last_upload]" => "example",
"filter[other_count]" => "example",
"filter[display_name]" => "example",
"filter[last_evaluation]" => "example",
"filter[stale_timestamp]" => "example",
"filter[culled_timestamp]" => "example",
"filter[packages_installed]" => "example",
"filter[packages_updatable]" => "example",
"filter[stale_warning_timestamp]" => "example",
"filter[system_profile][sap_system]" => "example",
"filter[system_profile][sap_sids][in]" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/redhat.local/patchman-engine/v1.15.3/api/patch/v1/systems?" . http_build_query([
"sort" => "id",
"tags" => "example",
"limit" => "10",
"offset" => "0",
"search" => "hello",
"filter[id]" => "example",
"filter[stale]" => "example",
"filter[created]" => "example",
"filter[rhba_count]" => "example",
"filter[rhea_count]" => "example",
"filter[rhsa_count]" => "example",
"filter[insights_id]" => "example",
"filter[last_upload]" => "example",
"filter[other_count]" => "example",
"filter[display_name]" => "example",
"filter[last_evaluation]" => "example",
"filter[stale_timestamp]" => "example",
"filter[culled_timestamp]" => "example",
"filter[packages_installed]" => "example",
"filter[packages_updatable]" => "example",
"filter[stale_warning_timestamp]" => "example",
"filter[system_profile][sap_system]" => "example",
"filter[system_profile][sap_sids][in]" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Patchman-engine API?
Patchman-engine API is a Developer Tools API. Developers commonly use developer tools APIs for:
- automating code review and quality checks
- integrating CI/CD pipelines and build systems
- managing feature flags and A/B tests
- monitoring errors and application performance
- generating and validating test data
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Patchman-engine API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?