Create a new operation
curl --request POST \
--url https://api.ctrl-hub.com/v3/operations \
--header 'Content-Type: application/vnd.api+json' \
--header 'X-Session-Token: <api-key>' \
--data '
{
"data": {
"type": "operations",
"attributes": {
"name": "Installation Operation",
"status": "todo",
"code": "OP001",
"description": "Install new equipment at customer property",
"requires_meter_details": true,
"dates": {
"scheduled": {
"start": "2024-01-15T09:00:00Z",
"end": "2024-01-15T17:00:00Z"
}
},
"labels": [
{
"key": "Your label key",
"value": "Your label value"
}
],
"requirements": {
"forms": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": true
}
]
},
"done_reason": "completed"
},
"relationships": {
"organisation": {},
"work_order": {},
"appointment": {},
"template": {},
"type": {}
}
}
}
'import requests
url = "https://api.ctrl-hub.com/v3/operations"
payload = { "data": {
"type": "operations",
"attributes": {
"name": "Installation Operation",
"status": "todo",
"code": "OP001",
"description": "Install new equipment at customer property",
"requires_meter_details": True,
"dates": { "scheduled": {
"start": "2024-01-15T09:00:00Z",
"end": "2024-01-15T17:00:00Z"
} },
"labels": [
{
"key": "Your label key",
"value": "Your label value"
}
],
"requirements": { "forms": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": True
}
] },
"done_reason": "completed"
},
"relationships": {
"organisation": {},
"work_order": {},
"appointment": {},
"template": {},
"type": {}
}
} }
headers = {
"X-Session-Token": "<api-key>",
"Content-Type": "application/vnd.api+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Session-Token': '<api-key>', 'Content-Type': 'application/vnd.api+json'},
body: JSON.stringify({
data: {
type: 'operations',
attributes: {
name: 'Installation Operation',
status: 'todo',
code: 'OP001',
description: 'Install new equipment at customer property',
requires_meter_details: true,
dates: {scheduled: {start: '2024-01-15T09:00:00Z', end: '2024-01-15T17:00:00Z'}},
labels: [{key: 'Your label key', value: 'Your label value'}],
requirements: {forms: [{id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', required: true}]},
done_reason: 'completed'
},
relationships: {organisation: {}, work_order: {}, appointment: {}, template: {}, type: {}}
}
})
};
fetch('https://api.ctrl-hub.com/v3/operations', 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.ctrl-hub.com/v3/operations",
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([
'data' => [
'type' => 'operations',
'attributes' => [
'name' => 'Installation Operation',
'status' => 'todo',
'code' => 'OP001',
'description' => 'Install new equipment at customer property',
'requires_meter_details' => true,
'dates' => [
'scheduled' => [
'start' => '2024-01-15T09:00:00Z',
'end' => '2024-01-15T17:00:00Z'
]
],
'labels' => [
[
'key' => 'Your label key',
'value' => 'Your label value'
]
],
'requirements' => [
'forms' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'required' => true
]
]
],
'done_reason' => 'completed'
],
'relationships' => [
'organisation' => [
],
'work_order' => [
],
'appointment' => [
],
'template' => [
],
'type' => [
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/vnd.api+json",
"X-Session-Token: <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.ctrl-hub.com/v3/operations"
payload := strings.NewReader("{\n \"data\": {\n \"type\": \"operations\",\n \"attributes\": {\n \"name\": \"Installation Operation\",\n \"status\": \"todo\",\n \"code\": \"OP001\",\n \"description\": \"Install new equipment at customer property\",\n \"requires_meter_details\": true,\n \"dates\": {\n \"scheduled\": {\n \"start\": \"2024-01-15T09:00:00Z\",\n \"end\": \"2024-01-15T17:00:00Z\"\n }\n },\n \"labels\": [\n {\n \"key\": \"Your label key\",\n \"value\": \"Your label value\"\n }\n ],\n \"requirements\": {\n \"forms\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"required\": true\n }\n ]\n },\n \"done_reason\": \"completed\"\n },\n \"relationships\": {\n \"organisation\": {},\n \"work_order\": {},\n \"appointment\": {},\n \"template\": {},\n \"type\": {}\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Session-Token", "<api-key>")
req.Header.Add("Content-Type", "application/vnd.api+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.ctrl-hub.com/v3/operations")
.header("X-Session-Token", "<api-key>")
.header("Content-Type", "application/vnd.api+json")
.body("{\n \"data\": {\n \"type\": \"operations\",\n \"attributes\": {\n \"name\": \"Installation Operation\",\n \"status\": \"todo\",\n \"code\": \"OP001\",\n \"description\": \"Install new equipment at customer property\",\n \"requires_meter_details\": true,\n \"dates\": {\n \"scheduled\": {\n \"start\": \"2024-01-15T09:00:00Z\",\n \"end\": \"2024-01-15T17:00:00Z\"\n }\n },\n \"labels\": [\n {\n \"key\": \"Your label key\",\n \"value\": \"Your label value\"\n }\n ],\n \"requirements\": {\n \"forms\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"required\": true\n }\n ]\n },\n \"done_reason\": \"completed\"\n },\n \"relationships\": {\n \"organisation\": {},\n \"work_order\": {},\n \"appointment\": {},\n \"template\": {},\n \"type\": {}\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ctrl-hub.com/v3/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Session-Token"] = '<api-key>'
request["Content-Type"] = 'application/vnd.api+json'
request.body = "{\n \"data\": {\n \"type\": \"operations\",\n \"attributes\": {\n \"name\": \"Installation Operation\",\n \"status\": \"todo\",\n \"code\": \"OP001\",\n \"description\": \"Install new equipment at customer property\",\n \"requires_meter_details\": true,\n \"dates\": {\n \"scheduled\": {\n \"start\": \"2024-01-15T09:00:00Z\",\n \"end\": \"2024-01-15T17:00:00Z\"\n }\n },\n \"labels\": [\n {\n \"key\": \"Your label key\",\n \"value\": \"Your label value\"\n }\n ],\n \"requirements\": {\n \"forms\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"required\": true\n }\n ]\n },\n \"done_reason\": \"completed\"\n },\n \"relationships\": {\n \"organisation\": {},\n \"work_order\": {},\n \"appointment\": {},\n \"template\": {},\n \"type\": {}\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "operations",
"attributes": {
"name": "<string>",
"status": "done",
"code": "<string>",
"description": "<string>",
"requires_meter_details": false,
"dates": {
"scheduled": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
}
},
"labels": [
{
"key": "Your label key",
"value": "Your label value"
}
],
"requirements": {
"forms": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": true
}
]
},
"done_reason": "aborted"
},
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"counts": {
"streets": 0,
"properties": 0,
"locations": 0
},
"related_data": {
"properties": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"postcode": "<string>"
}
]
}
},
"relationships": {
"organisation": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "organisations"
}
},
"scheme": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "schemes"
}
},
"work_order": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "work-orders"
}
},
"appointment": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "appointments"
}
},
"permits": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "permits"
}
]
},
"template": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "operation-templates"
}
},
"type": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "operation-types"
}
},
"teams": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "teams"
}
]
},
"assignees": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "users"
}
]
},
"properties": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "properties"
}
]
},
"locations": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "locations"
}
]
},
"streets": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "streets"
}
]
}
}
},
"jsonapi": {
"version": "1.0"
},
"included": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "forms",
"attributes": {
"name": "<string>",
"description": "<string>",
"status": "draft"
},
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"counts": {
"schemas": 0,
"categories": 0,
"submissions": 0,
"submission_versions": 0
}
},
"relationships": {
"organisation": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "organisations"
}
},
"categories": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-categories"
}
]
},
"schemas": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-schemas"
}
]
},
"author": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "users"
}
},
"workflow": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "workflow-definitions"
}
},
"latest_schema": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-schemas"
}
},
"submissions": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-submissions"
}
]
}
}
}
]
}{
"id": "98ca4a78-b66f-4234-9719-aaf832ee6669",
"status": "400",
"title": "A validation error was encountered",
"source": {
"parameter": "include"
},
"meta": {
"resource": "wrong_value"
}
}{
"id": "05fc9c8d-73b9-4697-9337-57f7a567a48f",
"status": "401",
"title": "You are not authorised to access this resource",
"detail": "In order to access this resource, you need the 'admin' role.",
"code": "AUTH.001"
}{
"id": "8e2f9a34-b5c6-4d7e-9f8a-2b3c4d5e6f7g",
"status": "409",
"title": "Conflict",
"detail": "The request conflicts with the current state of the resource.",
"code": "CONFLICT.001"
}{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}Operations
Create an operation
Create a new operation.
POST
/
v3
/
operations
Create a new operation
curl --request POST \
--url https://api.ctrl-hub.com/v3/operations \
--header 'Content-Type: application/vnd.api+json' \
--header 'X-Session-Token: <api-key>' \
--data '
{
"data": {
"type": "operations",
"attributes": {
"name": "Installation Operation",
"status": "todo",
"code": "OP001",
"description": "Install new equipment at customer property",
"requires_meter_details": true,
"dates": {
"scheduled": {
"start": "2024-01-15T09:00:00Z",
"end": "2024-01-15T17:00:00Z"
}
},
"labels": [
{
"key": "Your label key",
"value": "Your label value"
}
],
"requirements": {
"forms": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": true
}
]
},
"done_reason": "completed"
},
"relationships": {
"organisation": {},
"work_order": {},
"appointment": {},
"template": {},
"type": {}
}
}
}
'import requests
url = "https://api.ctrl-hub.com/v3/operations"
payload = { "data": {
"type": "operations",
"attributes": {
"name": "Installation Operation",
"status": "todo",
"code": "OP001",
"description": "Install new equipment at customer property",
"requires_meter_details": True,
"dates": { "scheduled": {
"start": "2024-01-15T09:00:00Z",
"end": "2024-01-15T17:00:00Z"
} },
"labels": [
{
"key": "Your label key",
"value": "Your label value"
}
],
"requirements": { "forms": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": True
}
] },
"done_reason": "completed"
},
"relationships": {
"organisation": {},
"work_order": {},
"appointment": {},
"template": {},
"type": {}
}
} }
headers = {
"X-Session-Token": "<api-key>",
"Content-Type": "application/vnd.api+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Session-Token': '<api-key>', 'Content-Type': 'application/vnd.api+json'},
body: JSON.stringify({
data: {
type: 'operations',
attributes: {
name: 'Installation Operation',
status: 'todo',
code: 'OP001',
description: 'Install new equipment at customer property',
requires_meter_details: true,
dates: {scheduled: {start: '2024-01-15T09:00:00Z', end: '2024-01-15T17:00:00Z'}},
labels: [{key: 'Your label key', value: 'Your label value'}],
requirements: {forms: [{id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', required: true}]},
done_reason: 'completed'
},
relationships: {organisation: {}, work_order: {}, appointment: {}, template: {}, type: {}}
}
})
};
fetch('https://api.ctrl-hub.com/v3/operations', 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.ctrl-hub.com/v3/operations",
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([
'data' => [
'type' => 'operations',
'attributes' => [
'name' => 'Installation Operation',
'status' => 'todo',
'code' => 'OP001',
'description' => 'Install new equipment at customer property',
'requires_meter_details' => true,
'dates' => [
'scheduled' => [
'start' => '2024-01-15T09:00:00Z',
'end' => '2024-01-15T17:00:00Z'
]
],
'labels' => [
[
'key' => 'Your label key',
'value' => 'Your label value'
]
],
'requirements' => [
'forms' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'required' => true
]
]
],
'done_reason' => 'completed'
],
'relationships' => [
'organisation' => [
],
'work_order' => [
],
'appointment' => [
],
'template' => [
],
'type' => [
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/vnd.api+json",
"X-Session-Token: <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.ctrl-hub.com/v3/operations"
payload := strings.NewReader("{\n \"data\": {\n \"type\": \"operations\",\n \"attributes\": {\n \"name\": \"Installation Operation\",\n \"status\": \"todo\",\n \"code\": \"OP001\",\n \"description\": \"Install new equipment at customer property\",\n \"requires_meter_details\": true,\n \"dates\": {\n \"scheduled\": {\n \"start\": \"2024-01-15T09:00:00Z\",\n \"end\": \"2024-01-15T17:00:00Z\"\n }\n },\n \"labels\": [\n {\n \"key\": \"Your label key\",\n \"value\": \"Your label value\"\n }\n ],\n \"requirements\": {\n \"forms\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"required\": true\n }\n ]\n },\n \"done_reason\": \"completed\"\n },\n \"relationships\": {\n \"organisation\": {},\n \"work_order\": {},\n \"appointment\": {},\n \"template\": {},\n \"type\": {}\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Session-Token", "<api-key>")
req.Header.Add("Content-Type", "application/vnd.api+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.ctrl-hub.com/v3/operations")
.header("X-Session-Token", "<api-key>")
.header("Content-Type", "application/vnd.api+json")
.body("{\n \"data\": {\n \"type\": \"operations\",\n \"attributes\": {\n \"name\": \"Installation Operation\",\n \"status\": \"todo\",\n \"code\": \"OP001\",\n \"description\": \"Install new equipment at customer property\",\n \"requires_meter_details\": true,\n \"dates\": {\n \"scheduled\": {\n \"start\": \"2024-01-15T09:00:00Z\",\n \"end\": \"2024-01-15T17:00:00Z\"\n }\n },\n \"labels\": [\n {\n \"key\": \"Your label key\",\n \"value\": \"Your label value\"\n }\n ],\n \"requirements\": {\n \"forms\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"required\": true\n }\n ]\n },\n \"done_reason\": \"completed\"\n },\n \"relationships\": {\n \"organisation\": {},\n \"work_order\": {},\n \"appointment\": {},\n \"template\": {},\n \"type\": {}\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ctrl-hub.com/v3/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Session-Token"] = '<api-key>'
request["Content-Type"] = 'application/vnd.api+json'
request.body = "{\n \"data\": {\n \"type\": \"operations\",\n \"attributes\": {\n \"name\": \"Installation Operation\",\n \"status\": \"todo\",\n \"code\": \"OP001\",\n \"description\": \"Install new equipment at customer property\",\n \"requires_meter_details\": true,\n \"dates\": {\n \"scheduled\": {\n \"start\": \"2024-01-15T09:00:00Z\",\n \"end\": \"2024-01-15T17:00:00Z\"\n }\n },\n \"labels\": [\n {\n \"key\": \"Your label key\",\n \"value\": \"Your label value\"\n }\n ],\n \"requirements\": {\n \"forms\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"required\": true\n }\n ]\n },\n \"done_reason\": \"completed\"\n },\n \"relationships\": {\n \"organisation\": {},\n \"work_order\": {},\n \"appointment\": {},\n \"template\": {},\n \"type\": {}\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "operations",
"attributes": {
"name": "<string>",
"status": "done",
"code": "<string>",
"description": "<string>",
"requires_meter_details": false,
"dates": {
"scheduled": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
}
},
"labels": [
{
"key": "Your label key",
"value": "Your label value"
}
],
"requirements": {
"forms": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required": true
}
]
},
"done_reason": "aborted"
},
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"counts": {
"streets": 0,
"properties": 0,
"locations": 0
},
"related_data": {
"properties": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"postcode": "<string>"
}
]
}
},
"relationships": {
"organisation": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "organisations"
}
},
"scheme": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "schemes"
}
},
"work_order": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "work-orders"
}
},
"appointment": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "appointments"
}
},
"permits": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "permits"
}
]
},
"template": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "operation-templates"
}
},
"type": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "operation-types"
}
},
"teams": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "teams"
}
]
},
"assignees": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "users"
}
]
},
"properties": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "properties"
}
]
},
"locations": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "locations"
}
]
},
"streets": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "streets"
}
]
}
}
},
"jsonapi": {
"version": "1.0"
},
"included": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "forms",
"attributes": {
"name": "<string>",
"description": "<string>",
"status": "draft"
},
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"counts": {
"schemas": 0,
"categories": 0,
"submissions": 0,
"submission_versions": 0
}
},
"relationships": {
"organisation": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "organisations"
}
},
"categories": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-categories"
}
]
},
"schemas": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-schemas"
}
]
},
"author": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "users"
}
},
"workflow": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "workflow-definitions"
}
},
"latest_schema": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-schemas"
}
},
"submissions": {
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "form-submissions"
}
]
}
}
}
]
}{
"id": "98ca4a78-b66f-4234-9719-aaf832ee6669",
"status": "400",
"title": "A validation error was encountered",
"source": {
"parameter": "include"
},
"meta": {
"resource": "wrong_value"
}
}{
"id": "05fc9c8d-73b9-4697-9337-57f7a567a48f",
"status": "401",
"title": "You are not authorised to access this resource",
"detail": "In order to access this resource, you need the 'admin' role.",
"code": "AUTH.001"
}{
"id": "8e2f9a34-b5c6-4d7e-9f8a-2b3c4d5e6f7g",
"status": "409",
"title": "Conflict",
"detail": "The request conflicts with the current state of the resource.",
"code": "CONFLICT.001"
}{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}Authorizations
SessionOAuth2Cookie
Session token for authentication.
Body
application/vnd.api+json
The operation to create.
Show child attributes
Show child attributes
Response
An individual operation.
JSON API response object
An operation
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Related resources that can be included when an operation is returned
A form
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
Show child attributes
Show child attributes