Activity Statuses

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

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

List activity statuses

GET /c/api/v1/activity_statuses

Returns a paginated, filterable list of the team's activity statuses, ordered by position by default. Requires the activities_read scope.

Query parameters

FIELDTYPEDESCRIPTION
querystringFull-text search over name.
filter[active]booleanFilter by active state (true or false).
filter[search]stringAlias for query — full-text search over name.
sortstringSort column, - 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/activity_statuses' \
  --header 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.cornerspot.net/c/api/v1/activity_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/activity_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/activity_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/activity_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/activity_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 activity statuses
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the activities_read scope

Create an activity status

POST /c/api/v1/activity_statuses

Creates a new activity status for the team. name and color are required. Requires the activities_write scope.

Request body

FIELDTYPEDESCRIPTION
activity_statusobject
activity_status.namestring · requiredRequired. Max 60 chars; must be unique within the team.
activity_status.colorstring · requiredRequired. Hex color, e.g. #6366f1.
activity_status.descriptionstringOptional. Max 255 chars.
activity_status.positioninteger1-based list position (acts_as_list).
activity_status.is_defaultbooleanWhether this is the team's default status.
activity_status.activeboolean

Code samples

curl --request POST \
  --url 'https://api.cornerspot.net/c/api/v1/activity_statuses' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
  "activity_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/activity_statuses', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "activity_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/activity_statuses', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "activity_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/activity_statuses"
payload = json.dumps({
  "activity_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/activity_statuses")

request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer YOUR_API_KEY"
request.body = JSON.generate({
  "activity_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/activity_statuses',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer YOUR_API_KEY',
    ],
    CURLOPT_POSTFIELDS => json_encode([
    'activity_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 activities_write scope
422 Unprocessable Contentvalidation errors (e.g. missing name or invalid color)

Get an activity status

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

Returns a single activity status by id. Requires the activities_read scope.

Path parameters

FIELDTYPEDESCRIPTION
idstring · requiredActivity status id (UUID).

Code samples

curl --request GET \
  --url 'https://api.cornerspot.net/c/api/v1/activity_statuses/abc123' \
  --header 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.cornerspot.net/c/api/v1/activity_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/activity_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/activity_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/activity_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/activity_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 activity status
401 Unauthorizedmissing or invalid API key
404 Not Foundno such activity status in this team

Update an activity status

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

Updates an activity status. Any subset of fields may be supplied. Requires the activities_write scope.

Path parameters

FIELDTYPEDESCRIPTION
idstring · requiredActivity status id (UUID).

Request body

FIELDTYPEDESCRIPTION
activity_statusobject
activity_status.namestring
activity_status.colorstring
activity_status.descriptionstring
activity_status.positioninteger
activity_status.is_defaultboolean
activity_status.activeboolean

Code samples

curl --request PATCH \
  --url 'https://api.cornerspot.net/c/api/v1/activity_statuses/abc123' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
  "activity_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/activity_statuses/abc123', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "activity_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/activity_statuses/abc123', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    "activity_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/activity_statuses/abc123"
payload = json.dumps({
  "activity_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/activity_statuses/abc123")

request = Net::HTTP::Patch.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer YOUR_API_KEY"
request.body = JSON.generate({
  "activity_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/activity_statuses/abc123',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'PATCH',
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer YOUR_API_KEY',
    ],
    CURLOPT_POSTFIELDS => json_encode([
    'activity_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
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the activities_write scope
404 Not Foundno such activity status in this team
422 Unprocessable Contentvalidation errors (e.g. invalid color format or duplicate name)

Delete an activity status

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

Destroys an activity status. The DeletionService reassigns any activities using this status to the team's default status before deletion. Returns 422 if the status is the default (no fallback) or if the service is otherwise blocked.

Path parameters

FIELDTYPEDESCRIPTION
idstring · requiredActivity status id (UUID).

Code samples

curl --request DELETE \
  --url 'https://api.cornerspot.net/c/api/v1/activity_statuses/abc123' \
  --header 'Authorization: Bearer YOUR_API_KEY'
const response = await fetch('https://api.cornerspot.net/c/api/v1/activity_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/activity_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/activity_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/activity_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/activity_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 — no content
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the activities_write scope
404 Not Foundno such activity status in this team
422 Unprocessable Contentdeletion blocked (e.g. the status is the team default)

Reorder activity statuses

POST /c/api/v1/activity_statuses/reorder

Reassigns position values for every activity status in the team. The ids array must contain every status id exactly once (a complete ordering); a partial list is rejected with 422 incomplete_reorder. Requires the activities_write scope.

Request body

FIELDTYPEDESCRIPTION
ids[]array of string · requiredComplete ordered list of every activity status id belonging to the team.

Code samples

curl --request POST \
  --url 'https://api.cornerspot.net/c/api/v1/activity_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/activity_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/activity_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/activity_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/activity_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/activity_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 all statuses in their new order
401 Unauthorizedmissing or invalid API key
403 Forbiddenthe key lacks the activities_write scope
422 Unprocessable Contentincomplete reorder — ids does not match every status in the team

Was this article helpful?