Create fix job
curl --request POST \
--url https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs', 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://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"errors": [
{
"errorType": "FIX_JOB_ERROR_TYPE_NO_WRITE_ACCESS",
"message": "Repository not found",
"githubAppInfo": {
"appId": 123456,
"appName": "semgrep-app",
"installationTarget": "my-org",
"configUrl": "https://github.com/organizations/my-org/settings/installations/123456"
}
}
],
"success": true
}AI Fix Jobs
Create fix job
Create an automated SAST fix job for the given issue. This triggers an AI-powered workflow that analyzes the vulnerability, generates a fix, and opens a pull request in the repository.
POST
/
api
/
agent
/
deployments
/
{deploymentId}
/
issues
/
{issueId}
/
fix_jobs
Create fix job
curl --request POST \
--url https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs', 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://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/{issueId}/fix_jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"errors": [
{
"errorType": "FIX_JOB_ERROR_TYPE_NO_WRITE_ACCESS",
"message": "Repository not found",
"githubAppInfo": {
"appId": 123456,
"appName": "semgrep-app",
"installationTarget": "my-org",
"configUrl": "https://github.com/organizations/my-org/settings/installations/123456"
}
}
],
"success": true
}This endpoint is experimental. It may change or be removed without notice and is not covered by API stability guarantees.
Authorizations
SemgrepWebTokenSemgrepJWT
Get access to data with your API token. Example header:
Authorization: Bearer 2991e2fb4b540fe75b8f90677b0b892b6314e4961cb001fe6eb452eee248a628
The token can be provisioned from the Tokens section in your Settings, and requires explicitly enabling Web API access.
Path Parameters
Deployment ID The unique numerical identifier of the deployment. Can be found via the Deployments Service or in your Settings in the web UI.
Example:
1234
Issue ID to fix The unique numerical identifier of the issue to generate a fix for.
Example:
56789
Body
application/json
Request message for creating a fix job
Was this page helpful?