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
string
required
Numeric ID of the workspace to create the status in.
string
required
Status label.
string
required
Status category. Must be one of
pending, in_progress, completed, or cancelled.string
Optional icon slug.
string
default:"gray"
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.
number
required
New status identifier.
number
required
Workspace this status belongs to.
string
required
Status label.
string | null
Icon slug.
null if not provided.string | null
Color value. Defaults to
"gray".string
required
Status category.
number
required
Auto-assigned sort position.
string
required
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?
⌘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"
}