Statuses
Update status
Updates one or more properties of a status. Only the fields you include are changed.
PATCH
/
api
/
v1
/
statuses
/
{id}
Update status
curl --request PATCH \
--url https://api.getarca.app/api/v1/statuses/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>",
"position": 123
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>',
position: 123
})
};
fetch('https://api.getarca.app/api/v1/statuses/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>',
position: 123
})
};
fetch('https://api.getarca.app/api/v1/statuses/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.getarca.app/api/v1/statuses/{id}';
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>',
position: 123
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.getarca.app/api/v1/statuses/{id}"
payload = {
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>",
"position": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getarca.app/api/v1/statuses/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getarca.app/api/v1/statuses/{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([
'name' => '<string>',
'category' => '<string>',
'icon' => '<string>',
'color' => '<string>',
'position' => 123
]),
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;
}falsefalserequire 'uri'
require 'net/http'
url = URI("https://api.getarca.app/api/v1/statuses/{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 \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.patch("https://api.getarca.app/api/v1/statuses/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}")
.asString();import Foundation
let parameters = [
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>",
"position": 123
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.getarca.app/api/v1/statuses/{id}")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.getarca.app/api/v1/statuses/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses/{id}");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}");
CURLcode ret = curl_easy_perform(hnd);CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses/{id}");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}");
CURLcode ret = curl_easy_perform(hnd);using RestSharp;
var options = new RestClientOptions("https://api.getarca.app/api/v1/statuses/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}")
val request = Request.Builder()
.url("https://api.getarca.app/api/v1/statuses/{id}")
.patch(body)
.addHeader("Authorization", "Bearer <token>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute(){
"id": 4,
"workspace_id": 3,
"name": "In Review",
"icon": "review",
"color": "orange",
"category": "in_progress",
"position": 3,
"created_at": "2026-04-11T10:30:00.000Z"
}
{
"error": "At least one completed status must remain in the workspace"
}
{
"error": "Invalid API key"
}
{
"error": "Only owners and admins can edit statuses"
}
{
"error": "Status not found"
}
{
"error": "A status with this name already exists"
}
Requires the
workspaces:write scope. Only workspace owners and admins can update statuses.You cannot change the
category of the last remaining completed status in a workspace. At least one completed status must always exist.Path parameters
string
required
The numeric status ID.
Request body
All fields are optional. Send only the fields you want to update.string
New status label.
string
New status category. Must be one of
pending, in_progress, completed, or cancelled.string
Icon slug.
string
Color value.
number
Sort position integer. Use this to reorder statuses.
Response
Returns the full updated status object.number
required
Status identifier.
number
required
Workspace this status belongs to.
string
required
Status label.
string | null
Icon slug.
string | null
Color value.
string
required
Status category.
number
required
Sort position.
string
required
UTC ISO-8601 creation timestamp.
{
"id": 4,
"workspace_id": 3,
"name": "In Review",
"icon": "review",
"color": "orange",
"category": "in_progress",
"position": 3,
"created_at": "2026-04-11T10:30:00.000Z"
}
{
"error": "At least one completed status must remain in the workspace"
}
{
"error": "Invalid API key"
}
{
"error": "Only owners and admins can edit statuses"
}
{
"error": "Status not found"
}
{
"error": "A status with this name already exists"
}
Was this page helpful?
⌘I
Update status
curl --request PATCH \
--url https://api.getarca.app/api/v1/statuses/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>",
"position": 123
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>',
position: 123
})
};
fetch('https://api.getarca.app/api/v1/statuses/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>',
position: 123
})
};
fetch('https://api.getarca.app/api/v1/statuses/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.getarca.app/api/v1/statuses/{id}';
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>',
position: 123
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.getarca.app/api/v1/statuses/{id}"
payload = {
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>",
"position": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getarca.app/api/v1/statuses/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getarca.app/api/v1/statuses/{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([
'name' => '<string>',
'category' => '<string>',
'icon' => '<string>',
'color' => '<string>',
'position' => 123
]),
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;
}falsefalserequire 'uri'
require 'net/http'
url = URI("https://api.getarca.app/api/v1/statuses/{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 \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.patch("https://api.getarca.app/api/v1/statuses/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}")
.asString();import Foundation
let parameters = [
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>",
"position": 123
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.getarca.app/api/v1/statuses/{id}")!
var request = URLRequest(url: url)
request.httpMethod = "PATCH"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.getarca.app/api/v1/statuses/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses/{id}");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}");
CURLcode ret = curl_easy_perform(hnd);CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses/{id}");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}");
CURLcode ret = curl_easy_perform(hnd);using RestSharp;
var options = new RestClientOptions("https://api.getarca.app/api/v1/statuses/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\",\n \"position\": 123\n}")
val request = Request.Builder()
.url("https://api.getarca.app/api/v1/statuses/{id}")
.patch(body)
.addHeader("Authorization", "Bearer <token>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute(){
"id": 4,
"workspace_id": 3,
"name": "In Review",
"icon": "review",
"color": "orange",
"category": "in_progress",
"position": 3,
"created_at": "2026-04-11T10:30:00.000Z"
}
{
"error": "At least one completed status must remain in the workspace"
}
{
"error": "Invalid API key"
}
{
"error": "Only owners and admins can edit statuses"
}
{
"error": "Status not found"
}
{
"error": "A status with this name already exists"
}