Update issue
curl --request PATCH \
--url https://productlane.com/api/v2/issues/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"description": "<string>",
"state_id": "<string>",
"priority": 0,
"project_id": "<string>",
"assignee_id": "<string>",
"is_visible": true,
"portal_instance_ids": [
"<string>"
]
}
'import requests
url = "https://productlane.com/api/v2/issues/{id}"
payload = {
"title": "<string>",
"description": "<string>",
"state_id": "<string>",
"priority": 0,
"project_id": "<string>",
"assignee_id": "<string>",
"is_visible": True,
"portal_instance_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
description: '<string>',
state_id: '<string>',
priority: 0,
project_id: '<string>',
assignee_id: '<string>',
is_visible: true,
portal_instance_ids: ['<string>']
})
};
fetch('https://productlane.com/api/v2/issues/{id}', 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://productlane.com/api/v2/issues/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'description' => '<string>',
'state_id' => '<string>',
'priority' => 0,
'project_id' => '<string>',
'assignee_id' => '<string>',
'is_visible' => true,
'portal_instance_ids' => [
'<string>'
]
]),
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://productlane.com/api/v2/issues/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"state_id\": \"<string>\",\n \"priority\": 0,\n \"project_id\": \"<string>\",\n \"assignee_id\": \"<string>\",\n \"is_visible\": true,\n \"portal_instance_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://productlane.com/api/v2/issues/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"state_id\": \"<string>\",\n \"priority\": 0,\n \"project_id\": \"<string>\",\n \"assignee_id\": \"<string>\",\n \"is_visible\": true,\n \"portal_instance_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://productlane.com/api/v2/issues/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"state_id\": \"<string>\",\n \"priority\": 0,\n \"project_id\": \"<string>\",\n \"assignee_id\": \"<string>\",\n \"is_visible\": true,\n \"portal_instance_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"identifier": "<string>",
"title": "<string>",
"description": "<string>",
"priority": "<string>",
"status": "<string>",
"linear_team_id": "<string>",
"url": "<string>",
"project_id": "<string>",
"sort_order": 123,
"total_score": 123,
"is_visible": true,
"portal_instance_ids": [
"<string>"
],
"created_at": "<string>",
"updated_at": "<string>",
"linear_ticket_id": "<string>"
}{
"message": "<string>",
"code": "<string>",
"issues": [
{
"message": "<string>"
}
]
}Issues
Update issue
Update an issue, synced to Linear. Linear sync failures are logged but do not block the local update. Requires the issues:write scope.
PATCH
/
issues
/
{id}
Update issue
curl --request PATCH \
--url https://productlane.com/api/v2/issues/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"description": "<string>",
"state_id": "<string>",
"priority": 0,
"project_id": "<string>",
"assignee_id": "<string>",
"is_visible": true,
"portal_instance_ids": [
"<string>"
]
}
'import requests
url = "https://productlane.com/api/v2/issues/{id}"
payload = {
"title": "<string>",
"description": "<string>",
"state_id": "<string>",
"priority": 0,
"project_id": "<string>",
"assignee_id": "<string>",
"is_visible": True,
"portal_instance_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
description: '<string>',
state_id: '<string>',
priority: 0,
project_id: '<string>',
assignee_id: '<string>',
is_visible: true,
portal_instance_ids: ['<string>']
})
};
fetch('https://productlane.com/api/v2/issues/{id}', 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://productlane.com/api/v2/issues/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'description' => '<string>',
'state_id' => '<string>',
'priority' => 0,
'project_id' => '<string>',
'assignee_id' => '<string>',
'is_visible' => true,
'portal_instance_ids' => [
'<string>'
]
]),
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://productlane.com/api/v2/issues/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"state_id\": \"<string>\",\n \"priority\": 0,\n \"project_id\": \"<string>\",\n \"assignee_id\": \"<string>\",\n \"is_visible\": true,\n \"portal_instance_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://productlane.com/api/v2/issues/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"state_id\": \"<string>\",\n \"priority\": 0,\n \"project_id\": \"<string>\",\n \"assignee_id\": \"<string>\",\n \"is_visible\": true,\n \"portal_instance_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://productlane.com/api/v2/issues/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"state_id\": \"<string>\",\n \"priority\": 0,\n \"project_id\": \"<string>\",\n \"assignee_id\": \"<string>\",\n \"is_visible\": true,\n \"portal_instance_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"identifier": "<string>",
"title": "<string>",
"description": "<string>",
"priority": "<string>",
"status": "<string>",
"linear_team_id": "<string>",
"url": "<string>",
"project_id": "<string>",
"sort_order": 123,
"total_score": 123,
"is_visible": true,
"portal_instance_ids": [
"<string>"
],
"created_at": "<string>",
"updated_at": "<string>",
"linear_ticket_id": "<string>"
}{
"message": "<string>",
"code": "<string>",
"issues": [
{
"message": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
Minimum string length:
1Appended to the issue description; the existing description is never overwritten.
Linear workflow state id.
priority
Option 1 · enum<number>Option 2 · enum<number>Option 3 · enum<number>Option 4 · enum<number>Option 5 · enum<number>
Linear issue priority. 0 = No priority, 1 = Urgent, 2 = High, 3 = Normal, 4 = Low.
Available options:
0 Linear project id. Pass null to detach.
Linear user id. Pass null to unassign.
Whether the issue is shown on the customer portal.
Every portal the item is on, from GET /portal/instances. Use "main" for the Main portal. Replaces the current list. The item shows on these portals only while is_visible is true.
Required array length:
1 - 50 elementsMinimum string length:
1Response
Successful response