curl --request POST \
--url https://api.onkernel.com/config-registry/analyses/{id}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onkernel.com/config-registry/analyses/{id}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onkernel.com/config-registry/analyses/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onkernel.com/config-registry/analyses/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.onkernel.com/config-registry/analyses/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.onkernel.com/config-registry/analyses/{id}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onkernel.com/config-registry/analyses/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"analysis": {
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"failure": {
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
},
"finished_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"status": "running",
"intent": "<string>"
},
"recommendation": {
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
},
"target": {
"domain": "<string>",
"host": "<string>",
"normalized": "<string>"
},
"working_configurations": [
{
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
}
],
"guidance": "<string>",
"workload_outcome": "completed"
}{
"analysis": {
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"failure": {
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
},
"finished_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"status": "running",
"intent": "<string>"
},
"recommendation": {
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
},
"target": {
"domain": "<string>",
"host": "<string>",
"normalized": "<string>"
},
"working_configurations": [
{
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
}
],
"guidance": "<string>",
"workload_outcome": "completed"
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}Cancel a config analysis
Requests cancellation of a running project-scoped analysis. Cancellation is asynchronous; poll the analysis until its status becomes canceled. Repeating the request after the analysis reaches a terminal state returns the existing outcome.
curl --request POST \
--url https://api.onkernel.com/config-registry/analyses/{id}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onkernel.com/config-registry/analyses/{id}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onkernel.com/config-registry/analyses/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onkernel.com/config-registry/analyses/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.onkernel.com/config-registry/analyses/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.onkernel.com/config-registry/analyses/{id}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onkernel.com/config-registry/analyses/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"analysis": {
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"failure": {
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
},
"finished_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"status": "running",
"intent": "<string>"
},
"recommendation": {
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
},
"target": {
"domain": "<string>",
"host": "<string>",
"normalized": "<string>"
},
"working_configurations": [
{
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
}
],
"guidance": "<string>",
"workload_outcome": "completed"
}{
"analysis": {
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"failure": {
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
},
"finished_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"status": "running",
"intent": "<string>"
},
"recommendation": {
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
},
"target": {
"domain": "<string>",
"host": "<string>",
"normalized": "<string>"
},
"working_configurations": [
{
"browser": {
"gpu": true,
"headless": true,
"stealth": true,
"viewport": {
"height": 800,
"width": 1280,
"refresh_rate": 60
}
},
"evidence": {
"accessed": 1,
"blocked": 1,
"inconclusive": 1,
"last_observed_at": "2023-11-07T05:31:56Z",
"run_count": 1,
"sample_size": 1,
"success_rate": 0.5,
"last_supported_at": "2023-11-07T05:31:56Z"
},
"match_scope": "exact",
"matched_target": "<string>",
"proxy": {
"mode": "direct"
},
"type": "recommendation"
}
],
"guidance": "<string>",
"workload_outcome": "completed"
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}{
"code": "bad_request",
"message": "Missing required field: app_name",
"details": [
{
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
],
"inner_error": {
"code": "invalid_input",
"message": "Provided version string is not semver compliant"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
The analysis had already reached a terminal state.
Pollable analysis after workflow submission is acknowledged. Null when no refresh was submitted.
Show child attributes
Show child attributes
Recommendation or structured no-recommendation result for a completed analysis. Null before the analysis produces an outcome.
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Working configurations for the target, ordered with the recommended configuration first.
Show child attributes
Show child attributes
Short advisory markdown to facilitate navigating this target. Returned even when no configuration reached the target, since knowing what prevented success is useful without a configuration. Not verified against this target. Null when nothing applicable was observed or no notes exist.
How far the workload pass got, when an intent was supplied and a pass ran. A run outcome rather than advice, so it is reported whether or not any guidance could be assembled. Null when no intent was supplied or no pass ran.
completed, turn_limit, auth_required, payment_required, blocked, error