Statuses
Create status
Creates a new status in a workspace.
POST
/
api
/
v1
/
statuses
Create status
curl --request POST \
--url https://api.getarca.app/api/v1/statuses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspace_id": "<string>",
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: '<string>',
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>'
})
};
fetch('https://api.getarca.app/api/v1/statuses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: '<string>',
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>'
})
};
fetch('https://api.getarca.app/api/v1/statuses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.getarca.app/api/v1/statuses';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: '<string>',
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>'
})
};
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"
payload = {
"workspace_id": "<string>",
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(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"
payload := strings.NewReader("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}")
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getarca.app/api/v1/statuses",
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([
'workspace_id' => '<string>',
'name' => '<string>',
'category' => '<string>',
'icon' => '<string>',
'color' => '<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;
}falsefalserequire 'uri'
require 'net/http'
url = URI("https://api.getarca.app/api/v1/statuses")
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 = "{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.getarca.app/api/v1/statuses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}")
.asString();import Foundation
let parameters = [
"workspace_id": "<string>",
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.getarca.app/api/v1/statuses")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
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");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses");
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 \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}");
CURLcode ret = curl_easy_perform(hnd);CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses");
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 \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}");
CURLcode ret = curl_easy_perform(hnd);using RestSharp;
var options = new RestClientOptions("https://api.getarca.app/api/v1/statuses");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}")
val request = Request.Builder()
.url("https://api.getarca.app/api/v1/statuses")
.post(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": null,
"color": "orange",
"category": "in_progress",
"position": 4,
"created_at": "2026-04-11T10:30:00.000Z"
}
{
"error": "name is required"
}
{
"error": "Invalid API key"
}
{
"error": "Only owners and admins can create statuses"
}
{
"error": "A status with this name already exists"
}
Requires the
workspaces:write scope. Only workspace owners and admins can create statuses.Request body
Numeric ID of the workspace to create the status in.
Status label.
Status category. Must be one of
pending, in_progress, completed, or cancelled.Optional icon slug.
Optional color value. Defaults to
"gray" if not provided.Response
Returns the created status. Theposition is automatically assigned as one greater than the current maximum position in the workspace.
New status identifier.
Workspace this status belongs to.
Status label.
Icon slug.
null if not provided.Color value. Defaults to
"gray".Status category.
Auto-assigned sort position.
UTC ISO-8601 creation timestamp.
{
"id": 4,
"workspace_id": 3,
"name": "In Review",
"icon": null,
"color": "orange",
"category": "in_progress",
"position": 4,
"created_at": "2026-04-11T10:30:00.000Z"
}
{
"error": "name is required"
}
{
"error": "Invalid API key"
}
{
"error": "Only owners and admins can create statuses"
}
{
"error": "A status with this name already exists"
}
Was this page helpful?
Previous
Update statusUpdates one or more properties of a status. Only the fields you include are changed.
Next
⌘I
Create status
curl --request POST \
--url https://api.getarca.app/api/v1/statuses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspace_id": "<string>",
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: '<string>',
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>'
})
};
fetch('https://api.getarca.app/api/v1/statuses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: '<string>',
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>'
})
};
fetch('https://api.getarca.app/api/v1/statuses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.getarca.app/api/v1/statuses';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspace_id: '<string>',
name: '<string>',
category: '<string>',
icon: '<string>',
color: '<string>'
})
};
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"
payload = {
"workspace_id": "<string>",
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(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"
payload := strings.NewReader("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}")
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getarca.app/api/v1/statuses",
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([
'workspace_id' => '<string>',
'name' => '<string>',
'category' => '<string>',
'icon' => '<string>',
'color' => '<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;
}falsefalserequire 'uri'
require 'net/http'
url = URI("https://api.getarca.app/api/v1/statuses")
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 = "{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.getarca.app/api/v1/statuses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}")
.asString();import Foundation
let parameters = [
"workspace_id": "<string>",
"name": "<string>",
"category": "<string>",
"icon": "<string>",
"color": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.getarca.app/api/v1/statuses")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
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");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses");
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 \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}");
CURLcode ret = curl_easy_perform(hnd);CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.getarca.app/api/v1/statuses");
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 \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}");
CURLcode ret = curl_easy_perform(hnd);using RestSharp;
var options = new RestClientOptions("https://api.getarca.app/api/v1/statuses");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"workspace_id\": \"<string>\",\n \"name\": \"<string>\",\n \"category\": \"<string>\",\n \"icon\": \"<string>\",\n \"color\": \"<string>\"\n}")
val request = Request.Builder()
.url("https://api.getarca.app/api/v1/statuses")
.post(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": null,
"color": "orange",
"category": "in_progress",
"position": 4,
"created_at": "2026-04-11T10:30:00.000Z"
}
{
"error": "name is required"
}
{
"error": "Invalid API key"
}
{
"error": "Only owners and admins can create statuses"
}
{
"error": "A status with this name already exists"
}