Account Statuses

Base URL: https://api.cornerspot.net

Authentication: requests use a bearer token, for example Authorization: Bearer YOUR_API_KEY.

List account statuses

GET /c/api/v1/account_statuses

Returns a paginated, filterable list of the team's account statuses ordered by position. Requires the accounts_read scope.

Query parameters

FIELDTYPEDESCRIPTION
querystringFull-text search on status name.
filter[active]booleanFilter by active flag. Omit to return all statuses.
filter[search]stringAlias for query — full-text search on name.
sortstringSort column with optional - prefix for descending. One of: name, position, active, is_default, created_at, updated_at. Default: position ascending.
pageinteger1-based page number.
per_pageintegerPage size (1–100, default 25).

Code samples

curl --request GET \
  --url 'https://api.cornerspot.net/c/api/v1/account_statuses' \
  --header 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const data = await response.json();
console.log(data);
// Node.js 18+ (native fetch)
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
import json
import urllib.request

url = "https://api.cornerspot.net/c/api/v1/account_statuses"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
}

request = urllib.request.Request(url, headers=headers, method="GET")

with urllib.request.urlopen(request) as response:
    data = json.loads(response.read().decode("utf-8"))
    print(data)
require "json"
require "net/http"

uri = URI("https://api.cornerspot.net/c/api/v1/account_statuses")

request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.cornerspot.net/c/api/v1/account_statuses',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_KEY',
    ],
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Responses

STATUSDESCRIPTION
200 OKa page of account statuses
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the accounts_read scope

Create an account status

POST /c/api/v1/account_statuses

Creates a new account status for the team. Requires the accounts_write scope.

Request body

FIELDTYPEDESCRIPTION
account_statusobject
account_status.namestring · requiredRequired. Max 60 chars; must be unique per team (case-insensitive).
account_status.colorstring · requiredRequired. Hex colour in #rrggbb format.
account_status.descriptionstringOptional description. Max 255 chars.
account_status.positionintegerDisplay order (acts_as_list manages this automatically).
account_status.is_defaultbooleanSet to true to mark this as the team's default status.
account_status.activebooleanWhether the status is active. Defaults to true.

Code samples

curl --request POST \
  --url 'https://api.cornerspot.net/c/api/v1/account_statuses' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
  "account_status": {
    "name": "string",
    "color": "string",
    "description": "string",
    "position": 1,
    "is_default": true,
    "active": true
  }
}'
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "account_status": {
      "name": "string",
      "color": "string",
      "description": "string",
      "position": 1,
      "is_default": true,
      "active": true
    }
  })
});

const data = await response.json();
console.log(data);
// Node.js 18+ (native fetch)
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "account_status": {
      "name": "string",
      "color": "string",
      "description": "string",
      "position": 1,
      "is_default": true,
      "active": true
    }
  })
});

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
import json
import urllib.request

url = "https://api.cornerspot.net/c/api/v1/account_statuses"
payload = json.dumps({
  "account_status": {
    "name": "string",
    "color": "string",
    "description": "string",
    "position": 1,
    "is_default": true,
    "active": true
  }
}).encode("utf-8")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY",
}

request = urllib.request.Request(url, data=payload, headers=headers, method="POST")

with urllib.request.urlopen(request) as response:
    data = json.loads(response.read().decode("utf-8"))
    print(data)
require "json"
require "net/http"

uri = URI("https://api.cornerspot.net/c/api/v1/account_statuses")

request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer YOUR_API_KEY"
request.body = JSON.generate({
  "account_status": {
    "name": "string",
    "color": "string",
    "description": "string",
    "position": 1,
    "is_default": true,
    "active": true
  }
})

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.cornerspot.net/c/api/v1/account_statuses',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer YOUR_API_KEY',
    ],
    CURLOPT_POSTFIELDS => json_encode([
    'account_status' => [
        'name' => 'string',
        'color' => 'string',
        'description' => 'string',
        'position' => 1,
        'is_default' => true,
        'active' => true,
    ],
]),
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Responses

STATUSDESCRIPTION
201 Createdcreated
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the accounts_write scope
422 Unprocessable Contentvalidation errors (e.g. missing name or invalid color)

Get an account status

GET /c/api/v1/account_statuses/{id}

Path parameters

FIELDTYPEDESCRIPTION
idstring · requiredAccount status id (UUID).

Code samples

curl --request GET \
  --url 'https://api.cornerspot.net/c/api/v1/account_statuses/abc123' \
  --header 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/abc123', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const data = await response.json();
console.log(data);
// Node.js 18+ (native fetch)
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/abc123', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
import json
import urllib.request

url = "https://api.cornerspot.net/c/api/v1/account_statuses/abc123"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
}

request = urllib.request.Request(url, headers=headers, method="GET")

with urllib.request.urlopen(request) as response:
    data = json.loads(response.read().decode("utf-8"))
    print(data)
require "json"
require "net/http"

uri = URI("https://api.cornerspot.net/c/api/v1/account_statuses/abc123")

request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.cornerspot.net/c/api/v1/account_statuses/abc123',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_KEY',
    ],
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Responses

STATUSDESCRIPTION
200 OKthe account status
404 Not Foundno such account status in this team

Update an account status

PATCH /c/api/v1/account_statuses/{id}

Updates one or more fields of the account status. Requires the accounts_write scope.

Path parameters

FIELDTYPEDESCRIPTION
idstring · requiredAccount status id (UUID).

Request body

FIELDTYPEDESCRIPTION
account_statusobject
account_status.namestring
account_status.colorstring
account_status.descriptionstring
account_status.positioninteger
account_status.is_defaultboolean
account_status.activeboolean

Code samples

curl --request PATCH \
  --url 'https://api.cornerspot.net/c/api/v1/account_statuses/abc123' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
  "account_status": {
    "name": "string",
    "color": "string",
    "description": "string",
    "position": 1,
    "is_default": true,
    "active": true
  }
}'
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/abc123', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "account_status": {
      "name": "string",
      "color": "string",
      "description": "string",
      "position": 1,
      "is_default": true,
      "active": true
    }
  })
});

const data = await response.json();
console.log(data);
// Node.js 18+ (native fetch)
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/abc123', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "account_status": {
      "name": "string",
      "color": "string",
      "description": "string",
      "position": 1,
      "is_default": true,
      "active": true
    }
  })
});

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
import json
import urllib.request

url = "https://api.cornerspot.net/c/api/v1/account_statuses/abc123"
payload = json.dumps({
  "account_status": {
    "name": "string",
    "color": "string",
    "description": "string",
    "position": 1,
    "is_default": true,
    "active": true
  }
}).encode("utf-8")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY",
}

request = urllib.request.Request(url, data=payload, headers=headers, method="PATCH")

with urllib.request.urlopen(request) as response:
    data = json.loads(response.read().decode("utf-8"))
    print(data)
require "json"
require "net/http"

uri = URI("https://api.cornerspot.net/c/api/v1/account_statuses/abc123")

request = Net::HTTP::Patch.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer YOUR_API_KEY"
request.body = JSON.generate({
  "account_status": {
    "name": "string",
    "color": "string",
    "description": "string",
    "position": 1,
    "is_default": true,
    "active": true
  }
})

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.cornerspot.net/c/api/v1/account_statuses/abc123',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'PATCH',
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer YOUR_API_KEY',
    ],
    CURLOPT_POSTFIELDS => json_encode([
    'account_status' => [
        'name' => 'string',
        'color' => 'string',
        'description' => 'string',
        'position' => 1,
        'is_default' => true,
        'active' => true,
    ],
]),
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Responses

STATUSDESCRIPTION
200 OKupdated
404 Not Foundno such account status in this team
422 Unprocessable Contentvalidation errors (e.g. duplicate name or invalid color)

Delete an account status

DELETE /c/api/v1/account_statuses/{id}

Soft-deletes an account status. Accounts referencing this status will have their account_status_id set to NULL. The request is blocked (422) if the status is the team's default — set another status as default first.

Path parameters

FIELDTYPEDESCRIPTION
idstring · requiredAccount status id (UUID).

Code samples

curl --request DELETE \
  --url 'https://api.cornerspot.net/c/api/v1/account_statuses/abc123' \
  --header 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/abc123', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const data = await response.json();
console.log(data);
// Node.js 18+ (native fetch)
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/abc123', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
import json
import urllib.request

url = "https://api.cornerspot.net/c/api/v1/account_statuses/abc123"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
}

request = urllib.request.Request(url, headers=headers, method="DELETE")

with urllib.request.urlopen(request) as response:
    data = json.loads(response.read().decode("utf-8"))
    print(data)
require "json"
require "net/http"

uri = URI("https://api.cornerspot.net/c/api/v1/account_statuses/abc123")

request = Net::HTTP::Delete.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.cornerspot.net/c/api/v1/account_statuses/abc123',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_KEY',
    ],
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Responses

STATUSDESCRIPTION
204 No Contentdeleted
404 Not Foundno such account status in this team
422 Unprocessable Contentblocked — the status is the team's default and cannot be deleted

Reorder account statuses

POST /c/api/v1/account_statuses/reorder

Sets the display order for ALL of the team's account statuses in one atomic operation. The ids array MUST contain exactly every account-status id belonging to the team — a partial list is rejected with 422 incomplete_reorder. Requires the accounts_write scope.

Request body

FIELDTYPEDESCRIPTION
ids[]array of string · requiredComplete ordered list of every account-status id for the team.

Code samples

curl --request POST \
  --url 'https://api.cornerspot.net/c/api/v1/account_statuses/reorder' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
  "ids": [
    "1f2e3d4c-5b6a-4789-9c0d-1e2f3a4b5c6d"
  ]
}'
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/reorder', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "ids": [
      "1f2e3d4c-5b6a-4789-9c0d-1e2f3a4b5c6d"
    ]
  })
});

const data = await response.json();
console.log(data);
// Node.js 18+ (native fetch)
const response = await fetch('https://api.cornerspot.net/c/api/v1/account_statuses/reorder', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "ids": [
      "1f2e3d4c-5b6a-4789-9c0d-1e2f3a4b5c6d"
    ]
  })
});

if (!response.ok) {
  throw new Error(`Request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
import json
import urllib.request

url = "https://api.cornerspot.net/c/api/v1/account_statuses/reorder"
payload = json.dumps({
  "ids": [
    "1f2e3d4c-5b6a-4789-9c0d-1e2f3a4b5c6d"
  ]
}).encode("utf-8")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY",
}

request = urllib.request.Request(url, data=payload, headers=headers, method="POST")

with urllib.request.urlopen(request) as response:
    data = json.loads(response.read().decode("utf-8"))
    print(data)
require "json"
require "net/http"

uri = URI("https://api.cornerspot.net/c/api/v1/account_statuses/reorder")

request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer YOUR_API_KEY"
request.body = JSON.generate({
  "ids": [
    "1f2e3d4c-5b6a-4789-9c0d-1e2f3a4b5c6d"
  ]
})

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.cornerspot.net/c/api/v1/account_statuses/reorder',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer YOUR_API_KEY',
    ],
    CURLOPT_POSTFIELDS => json_encode([
    'ids' => [
        '1f2e3d4c-5b6a-4789-9c0d-1e2f3a4b5c6d',
    ],
]),
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);
print_r($data);

Responses

STATUSDESCRIPTION
200 OKreordered — returns the full list in new position order
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the accounts_write scope
422 Unprocessable Contentincomplete_reorder — ids does not match the team's full set of statuses

Was this article helpful?