curl --request POST \
--url https://api.sonderplan.com/v2/time-entry \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"owner_id": 872383,
"name": "Colour Grading",
"start": 1547501100,
"owner": {
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"icon": {
"id": 2390323,
"name": "SCR-20250220-jnua",
"alias": "030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90",
"extension": "jpeg",
"mime_type": "image/jpeg"
}
},
"description": "Opening scenes completed",
"end": 1547538900,
"start_date_time_iso": "2022-02-22T09:00:00+11:00",
"end_date_time_iso": "2022-02-22T17:00:00+11:00",
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"booking": [
{
"id": 1,
"name": "Test Booking",
"start": 1547501100,
"end": 1547538900,
"resources": [
{
"id": 9458
}
]
}
],
"billable": "false",
"locked": "false"
}
'import requests
url = "https://api.sonderplan.com/v2/time-entry"
payload = {
"owner_id": 872383,
"name": "Colour Grading",
"start": 1547501100,
"owner": {
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"icon": {
"id": 2390323,
"name": "SCR-20250220-jnua",
"alias": "030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90",
"extension": "jpeg",
"mime_type": "image/jpeg"
}
},
"description": "Opening scenes completed",
"end": 1547538900,
"start_date_time_iso": "2022-02-22T09:00:00+11:00",
"end_date_time_iso": "2022-02-22T17:00:00+11:00",
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"booking": [
{
"id": 1,
"name": "Test Booking",
"start": 1547501100,
"end": 1547538900,
"resources": [{ "id": 9458 }]
}
],
"billable": "false",
"locked": "false"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
owner_id: 872383,
name: 'Colour Grading',
start: 1547501100,
owner: {
first_name: 'Jane',
last_name: 'Smith',
primary_email: '[email protected]',
icon: {
id: 2390323,
name: 'SCR-20250220-jnua',
alias: '030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90',
extension: 'jpeg',
mime_type: 'image/jpeg'
}
},
description: 'Opening scenes completed',
end: 1547538900,
start_date_time_iso: '2022-02-22T09:00:00+11:00',
end_date_time_iso: '2022-02-22T17:00:00+11:00',
project: [{id: 2342354, start: 1547501100, end: 1547538900}],
booking: [
{
id: 1,
name: 'Test Booking',
start: 1547501100,
end: 1547538900,
resources: [{id: 9458}]
}
],
billable: 'false',
locked: 'false'
})
};
fetch('https://api.sonderplan.com/v2/time-entry', 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.sonderplan.com/v2/time-entry",
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([
'owner_id' => 872383,
'name' => 'Colour Grading',
'start' => 1547501100,
'owner' => [
'first_name' => 'Jane',
'last_name' => 'Smith',
'primary_email' => '[email protected]',
'icon' => [
'id' => 2390323,
'name' => 'SCR-20250220-jnua',
'alias' => '030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90',
'extension' => 'jpeg',
'mime_type' => 'image/jpeg'
]
],
'description' => 'Opening scenes completed',
'end' => 1547538900,
'start_date_time_iso' => '2022-02-22T09:00:00+11:00',
'end_date_time_iso' => '2022-02-22T17:00:00+11:00',
'project' => [
[
'id' => 2342354,
'start' => 1547501100,
'end' => 1547538900
]
],
'booking' => [
[
'id' => 1,
'name' => 'Test Booking',
'start' => 1547501100,
'end' => 1547538900,
'resources' => [
[
'id' => 9458
]
]
]
],
'billable' => 'false',
'locked' => 'false'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sonderplan.com/v2/time-entry"
payload := strings.NewReader("{\n \"owner_id\": 872383,\n \"name\": \"Colour Grading\",\n \"start\": 1547501100,\n \"owner\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"icon\": {\n \"id\": 2390323,\n \"name\": \"SCR-20250220-jnua\",\n \"alias\": \"030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90\",\n \"extension\": \"jpeg\",\n \"mime_type\": \"image/jpeg\"\n }\n },\n \"description\": \"Opening scenes completed\",\n \"end\": 1547538900,\n \"start_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"end_date_time_iso\": \"2022-02-22T17:00:00+11:00\",\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"booking\": [\n {\n \"id\": 1,\n \"name\": \"Test Booking\",\n \"start\": 1547501100,\n \"end\": 1547538900,\n \"resources\": [\n {\n \"id\": 9458\n }\n ]\n }\n ],\n \"billable\": \"false\",\n \"locked\": \"false\"\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))
}HttpResponse<String> response = Unirest.post("https://api.sonderplan.com/v2/time-entry")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"owner_id\": 872383,\n \"name\": \"Colour Grading\",\n \"start\": 1547501100,\n \"owner\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"icon\": {\n \"id\": 2390323,\n \"name\": \"SCR-20250220-jnua\",\n \"alias\": \"030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90\",\n \"extension\": \"jpeg\",\n \"mime_type\": \"image/jpeg\"\n }\n },\n \"description\": \"Opening scenes completed\",\n \"end\": 1547538900,\n \"start_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"end_date_time_iso\": \"2022-02-22T17:00:00+11:00\",\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"booking\": [\n {\n \"id\": 1,\n \"name\": \"Test Booking\",\n \"start\": 1547501100,\n \"end\": 1547538900,\n \"resources\": [\n {\n \"id\": 9458\n }\n ]\n }\n ],\n \"billable\": \"false\",\n \"locked\": \"false\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sonderplan.com/v2/time-entry")
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 \"owner_id\": 872383,\n \"name\": \"Colour Grading\",\n \"start\": 1547501100,\n \"owner\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"icon\": {\n \"id\": 2390323,\n \"name\": \"SCR-20250220-jnua\",\n \"alias\": \"030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90\",\n \"extension\": \"jpeg\",\n \"mime_type\": \"image/jpeg\"\n }\n },\n \"description\": \"Opening scenes completed\",\n \"end\": 1547538900,\n \"start_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"end_date_time_iso\": \"2022-02-22T17:00:00+11:00\",\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"booking\": [\n {\n \"id\": 1,\n \"name\": \"Test Booking\",\n \"start\": 1547501100,\n \"end\": 1547538900,\n \"resources\": [\n {\n \"id\": 9458\n }\n ]\n }\n ],\n \"billable\": \"false\",\n \"locked\": \"false\"\n}"
response = http.request(request)
puts response.read_body{
"success": {
"id": 2384
}
}{
"error": {
"code": 400,
"message": "name is required... Name of the tax"
}
}Create Time Entry
WRITE access to the ADMIN module is required to access this endpointAll users are able to create, edit and delete their own time entries, however this uses a separate API not currently available for public access.
Please contact our Support team if you are interested in accessing this private API.
curl --request POST \
--url https://api.sonderplan.com/v2/time-entry \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"owner_id": 872383,
"name": "Colour Grading",
"start": 1547501100,
"owner": {
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"icon": {
"id": 2390323,
"name": "SCR-20250220-jnua",
"alias": "030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90",
"extension": "jpeg",
"mime_type": "image/jpeg"
}
},
"description": "Opening scenes completed",
"end": 1547538900,
"start_date_time_iso": "2022-02-22T09:00:00+11:00",
"end_date_time_iso": "2022-02-22T17:00:00+11:00",
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"booking": [
{
"id": 1,
"name": "Test Booking",
"start": 1547501100,
"end": 1547538900,
"resources": [
{
"id": 9458
}
]
}
],
"billable": "false",
"locked": "false"
}
'import requests
url = "https://api.sonderplan.com/v2/time-entry"
payload = {
"owner_id": 872383,
"name": "Colour Grading",
"start": 1547501100,
"owner": {
"first_name": "Jane",
"last_name": "Smith",
"primary_email": "[email protected]",
"icon": {
"id": 2390323,
"name": "SCR-20250220-jnua",
"alias": "030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90",
"extension": "jpeg",
"mime_type": "image/jpeg"
}
},
"description": "Opening scenes completed",
"end": 1547538900,
"start_date_time_iso": "2022-02-22T09:00:00+11:00",
"end_date_time_iso": "2022-02-22T17:00:00+11:00",
"project": [
{
"id": 2342354,
"start": 1547501100,
"end": 1547538900
}
],
"booking": [
{
"id": 1,
"name": "Test Booking",
"start": 1547501100,
"end": 1547538900,
"resources": [{ "id": 9458 }]
}
],
"billable": "false",
"locked": "false"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
owner_id: 872383,
name: 'Colour Grading',
start: 1547501100,
owner: {
first_name: 'Jane',
last_name: 'Smith',
primary_email: '[email protected]',
icon: {
id: 2390323,
name: 'SCR-20250220-jnua',
alias: '030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90',
extension: 'jpeg',
mime_type: 'image/jpeg'
}
},
description: 'Opening scenes completed',
end: 1547538900,
start_date_time_iso: '2022-02-22T09:00:00+11:00',
end_date_time_iso: '2022-02-22T17:00:00+11:00',
project: [{id: 2342354, start: 1547501100, end: 1547538900}],
booking: [
{
id: 1,
name: 'Test Booking',
start: 1547501100,
end: 1547538900,
resources: [{id: 9458}]
}
],
billable: 'false',
locked: 'false'
})
};
fetch('https://api.sonderplan.com/v2/time-entry', 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.sonderplan.com/v2/time-entry",
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([
'owner_id' => 872383,
'name' => 'Colour Grading',
'start' => 1547501100,
'owner' => [
'first_name' => 'Jane',
'last_name' => 'Smith',
'primary_email' => '[email protected]',
'icon' => [
'id' => 2390323,
'name' => 'SCR-20250220-jnua',
'alias' => '030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90',
'extension' => 'jpeg',
'mime_type' => 'image/jpeg'
]
],
'description' => 'Opening scenes completed',
'end' => 1547538900,
'start_date_time_iso' => '2022-02-22T09:00:00+11:00',
'end_date_time_iso' => '2022-02-22T17:00:00+11:00',
'project' => [
[
'id' => 2342354,
'start' => 1547501100,
'end' => 1547538900
]
],
'booking' => [
[
'id' => 1,
'name' => 'Test Booking',
'start' => 1547501100,
'end' => 1547538900,
'resources' => [
[
'id' => 9458
]
]
]
],
'billable' => 'false',
'locked' => 'false'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sonderplan.com/v2/time-entry"
payload := strings.NewReader("{\n \"owner_id\": 872383,\n \"name\": \"Colour Grading\",\n \"start\": 1547501100,\n \"owner\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"icon\": {\n \"id\": 2390323,\n \"name\": \"SCR-20250220-jnua\",\n \"alias\": \"030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90\",\n \"extension\": \"jpeg\",\n \"mime_type\": \"image/jpeg\"\n }\n },\n \"description\": \"Opening scenes completed\",\n \"end\": 1547538900,\n \"start_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"end_date_time_iso\": \"2022-02-22T17:00:00+11:00\",\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"booking\": [\n {\n \"id\": 1,\n \"name\": \"Test Booking\",\n \"start\": 1547501100,\n \"end\": 1547538900,\n \"resources\": [\n {\n \"id\": 9458\n }\n ]\n }\n ],\n \"billable\": \"false\",\n \"locked\": \"false\"\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))
}HttpResponse<String> response = Unirest.post("https://api.sonderplan.com/v2/time-entry")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"owner_id\": 872383,\n \"name\": \"Colour Grading\",\n \"start\": 1547501100,\n \"owner\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"icon\": {\n \"id\": 2390323,\n \"name\": \"SCR-20250220-jnua\",\n \"alias\": \"030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90\",\n \"extension\": \"jpeg\",\n \"mime_type\": \"image/jpeg\"\n }\n },\n \"description\": \"Opening scenes completed\",\n \"end\": 1547538900,\n \"start_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"end_date_time_iso\": \"2022-02-22T17:00:00+11:00\",\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"booking\": [\n {\n \"id\": 1,\n \"name\": \"Test Booking\",\n \"start\": 1547501100,\n \"end\": 1547538900,\n \"resources\": [\n {\n \"id\": 9458\n }\n ]\n }\n ],\n \"billable\": \"false\",\n \"locked\": \"false\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sonderplan.com/v2/time-entry")
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 \"owner_id\": 872383,\n \"name\": \"Colour Grading\",\n \"start\": 1547501100,\n \"owner\": {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"primary_email\": \"[email protected]\",\n \"icon\": {\n \"id\": 2390323,\n \"name\": \"SCR-20250220-jnua\",\n \"alias\": \"030fb130bdf3c6cd5fa533fabb26fc9d90b66542cd343a318b2bfe5474923f90\",\n \"extension\": \"jpeg\",\n \"mime_type\": \"image/jpeg\"\n }\n },\n \"description\": \"Opening scenes completed\",\n \"end\": 1547538900,\n \"start_date_time_iso\": \"2022-02-22T09:00:00+11:00\",\n \"end_date_time_iso\": \"2022-02-22T17:00:00+11:00\",\n \"project\": [\n {\n \"id\": 2342354,\n \"start\": 1547501100,\n \"end\": 1547538900\n }\n ],\n \"booking\": [\n {\n \"id\": 1,\n \"name\": \"Test Booking\",\n \"start\": 1547501100,\n \"end\": 1547538900,\n \"resources\": [\n {\n \"id\": 9458\n }\n ]\n }\n ],\n \"billable\": \"false\",\n \"locked\": \"false\"\n}"
response = http.request(request)
puts response.read_body{
"success": {
"id": 2384
}
}{
"error": {
"code": 400,
"message": "name is required... Name of the tax"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Stores time entries on bookings and projects
ID of the user that owns this time entry
872383
Name of the activity that is being worked on
"Colour Grading"
Unix Time Entry Start
1547501100
User that owns this time entry
Show child attributes
Show child attributes
Short description or notes about what was worked on
"Opening scenes completed"
Unix Time Entry End
1547538900
ISO-8601 formatted result of the time entry start
"2022-02-22T09:00:00+11:00"
ISO-8601 formatted result of the time entry end
"2022-02-22T17:00:00+11:00"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Is the time tracked billable?
"false"
Is this time entry locked for further changes?
"false"
Response
Successful Operation
Show child attributes
Show child attributes