Skip to main content
POST
/
tasks
Create a task
curl --request POST \
  --url https://api.smokeball.com/tasks \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json-patch+json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "staffId": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8",
  "matterId": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8",
  "completedByStaffId": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8",
  "assigneeIds": [
    "<string>"
  ],
  "subject": "Review contract for John Smith",
  "note": "Contract needs to be reviewed and discussed with John",
  "isCompleted": false,
  "categories": [
    "<string>"
  ],
  "completedDate": "2020-02-15T13:00:00Z",
  "completedDateOnly": "2020-02-15",
  "dueDate": "2020-02-15T13:00:00Z",
  "dueDateOnly": "2020-02-15",
  "duration": "PT4H33M"
}
'
import requests

url = "https://api.smokeball.com/tasks"

payload = {
"staffId": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8",
"matterId": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8",
"completedByStaffId": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8",
"assigneeIds": ["<string>"],
"subject": "Review contract for John Smith",
"note": "Contract needs to be reviewed and discussed with John",
"isCompleted": False,
"categories": ["<string>"],
"completedDate": "2020-02-15T13:00:00Z",
"completedDateOnly": "2020-02-15",
"dueDate": "2020-02-15T13:00:00Z",
"dueDateOnly": "2020-02-15",
"duration": "PT4H33M"
}
headers = {
"x-api-key": "<api-key>",
"Authorization": "<api-key>",
"Content-Type": "application/json-patch+json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
Authorization: '<api-key>',
'Content-Type': 'application/json-patch+json'
},
body: JSON.stringify({
staffId: '750eb5c5-ac0b-7d11-4997-e0ce9d8896c8',
matterId: '750eb5c5-ac0b-7d11-4997-e0ce9d8896c8',
completedByStaffId: '750eb5c5-ac0b-7d11-4997-e0ce9d8896c8',
assigneeIds: ['<string>'],
subject: 'Review contract for John Smith',
note: 'Contract needs to be reviewed and discussed with John',
isCompleted: false,
categories: ['<string>'],
completedDate: '2020-02-15T13:00:00Z',
completedDateOnly: '2020-02-15',
dueDate: '2020-02-15T13:00:00Z',
dueDateOnly: '2020-02-15',
duration: 'PT4H33M'
})
};

fetch('https://api.smokeball.com/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.smokeball.com/tasks",
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([
'staffId' => '750eb5c5-ac0b-7d11-4997-e0ce9d8896c8',
'matterId' => '750eb5c5-ac0b-7d11-4997-e0ce9d8896c8',
'completedByStaffId' => '750eb5c5-ac0b-7d11-4997-e0ce9d8896c8',
'assigneeIds' => [
'<string>'
],
'subject' => 'Review contract for John Smith',
'note' => 'Contract needs to be reviewed and discussed with John',
'isCompleted' => false,
'categories' => [
'<string>'
],
'completedDate' => '2020-02-15T13:00:00Z',
'completedDateOnly' => '2020-02-15',
'dueDate' => '2020-02-15T13:00:00Z',
'dueDateOnly' => '2020-02-15',
'duration' => 'PT4H33M'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json-patch+json",
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.smokeball.com/tasks"

payload := strings.NewReader("{\n \"staffId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"matterId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"completedByStaffId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"assigneeIds\": [\n \"<string>\"\n ],\n \"subject\": \"Review contract for John Smith\",\n \"note\": \"Contract needs to be reviewed and discussed with John\",\n \"isCompleted\": false,\n \"categories\": [\n \"<string>\"\n ],\n \"completedDate\": \"2020-02-15T13:00:00Z\",\n \"completedDateOnly\": \"2020-02-15\",\n \"dueDate\": \"2020-02-15T13:00:00Z\",\n \"dueDateOnly\": \"2020-02-15\",\n \"duration\": \"PT4H33M\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.smokeball.com/tasks")
.header("x-api-key", "<api-key>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"staffId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"matterId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"completedByStaffId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"assigneeIds\": [\n \"<string>\"\n ],\n \"subject\": \"Review contract for John Smith\",\n \"note\": \"Contract needs to be reviewed and discussed with John\",\n \"isCompleted\": false,\n \"categories\": [\n \"<string>\"\n ],\n \"completedDate\": \"2020-02-15T13:00:00Z\",\n \"completedDateOnly\": \"2020-02-15\",\n \"dueDate\": \"2020-02-15T13:00:00Z\",\n \"dueDateOnly\": \"2020-02-15\",\n \"duration\": \"PT4H33M\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.smokeball.com/tasks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"staffId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"matterId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"completedByStaffId\": \"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8\",\n \"assigneeIds\": [\n \"<string>\"\n ],\n \"subject\": \"Review contract for John Smith\",\n \"note\": \"Contract needs to be reviewed and discussed with John\",\n \"isCompleted\": false,\n \"categories\": [\n \"<string>\"\n ],\n \"completedDate\": \"2020-02-15T13:00:00Z\",\n \"completedDateOnly\": \"2020-02-15\",\n \"dueDate\": \"2020-02-15T13:00:00Z\",\n \"dueDateOnly\": \"2020-02-15\",\n \"duration\": \"PT4H33M\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "href": "<string>",
  "relation": "<string>",
  "method": "GET"
}
{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}
{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}

Authorizations

x-api-key
string
header
required
Authorization
string
header
required

Body

staffId
string
required

Unique identifier of the associated staff member creating or updating the task.

Minimum string length: 1
Example:

"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8"

matterId
string | null

Unique identifier of the matter associated to the task.

Example:

"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8"

completedByStaffId
string | null

Unique identifier of the associated staff member completing the task.

Example:

"750eb5c5-ac0b-7d11-4997-e0ce9d8896c8"

assigneeIds
string[] | null

Unique identifier(s) of the associated staff member(s) assigned to the task.

subject
string | null

The subject - this should be a short description of the task.

Example:

"Review contract for John Smith"

note
string | null

Notes on the task.

Example:

"Contract needs to be reviewed and discussed with John"

isCompleted
boolean

True when the task is completed.

Example:

false

categories
string[] | null

Categories for the task.

completedDate
string<date-time> | null
deprecated

Deprecated. Use CompletedDateOnly instead.

Completed date of the task in UTC. If not provided and IsCompleted is set to true, the current date will be used.

Example:

"2020-02-15T13:00:00Z"

completedDateOnly
string<date-time> | null

Completed date of the task. Takes precendence over CompletedDate if set. If not provided and IsCompleted is set to true, the current date will be used.

Any time/timezone information will be discarded and only the date portion will be considered.

Example:

"2020-02-15"

dueDate
string<date-time> | null
deprecated

Deprecated. Use DueDateOnly instead.

Due date of the task in UTC.

Example:

"2020-02-15T13:00:00Z"

dueDateOnly
string<date-time> | null

Due date of the task. Takes precendence over DueDate if set.

Any time/timezone information will be discarded and only the date portion will be considered.

Example:

"2020-02-15"

duration
string | null

Duration of the task in ISO 8601 duration format.

Example:

"PT4H33M"

Response

When request is accepted. Returns a hypermedia 'Link' object of the task to be created.

id
string | null
href
string | null
relation
string | null
method
string | null
default:GET