post /<uuid>
Post element
Creates a new child node, attached to the referenced parent-node. The current user needs HAS_CREATE_ACCESS to the parent, and the parent must itself be a node - a relation can not own children.
Endpoint can not be used to create relations, as the behavior of a relation “owning” other elements is undefined. Use the POST / endpoint to create relations instead. A handful of properties can not be set directly - see Reserved properties.
Note: New elements take up to a second before they become searchable in Elasticsearch.
Request
curl \ -H 'Authorization: Bearer secret-token:PIPeJGUt7c00ENn8a5uDlc' \ -H 'Content-Type: application/json' \ -d '{ "type": "Demo", "data": { "hello": "world :D" } }' \ https://api.example.com/7b80b203-2b82-40f5-accd-c7089fe6114eimport requests
url = "https://api.example.com/7b80b203-2b82-40f5-accd-c7089fe6114e"
payload = { "type": "Demo", "data": { "hello": "world :D" }}headers = { "Authorization": "Bearer secret-token:PIPeJGUt7c00ENn8a5uDlc", "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = 'https://api.example.com/7b80b203-2b82-40f5-accd-c7089fe6114e';const options = { method: 'POST', headers: { Authorization: 'Bearer secret-token:PIPeJGUt7c00ENn8a5uDlc', 'Content-Type': 'application/json' }, body: '{"type":"Demo","data":{"hello":"world :D"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.example.com/7b80b203-2b82-40f5-accd-c7089fe6114e', [ 'body' => '{"type": "Demo", "data": {"hello": "world :D"}}', 'headers' => [ 'Authorization' => 'Bearer secret-token:PIPeJGUt7c00ENn8a5uDlc', 'Content-Type' => 'application/json', ],]);
echo $response->getBody();Response
400 · Bad Request
General issues with the user provided request, e.g. missing properties, malformed properties, failing validation logic etc.
404 · Not Found
The referenced parent element does not exist, is not a node (e.g. it is a relation), or the current user does not have permission to create elements under it.
response has no body
Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-MethodAccess-Control-Allow-Methods: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKAccess-Control-Allow-Origin: *Access-Control-Expose-Headers: ETag, LocationAllow: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKCache-Control: no-cache, privateLocation: /455a89b9-4ec7-4b02-b023-bcfbcbba9a9fX-Powered-By: Ember Nexus APIno schema available
{ "type": "https://api.example.com/error/400/missing-property", "title": "Missing property", "status": 400, "detail": "Endpoint requires that the request contains property 'type' to be set to a valid type."}Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-MethodAccess-Control-Allow-Methods: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKAccess-Control-Allow-Origin: *Access-Control-Expose-Headers: ETag, LocationAllow: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKCache-Control: no-cache, privateX-Powered-By: Ember Nexus API{ "$schema": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Schema", "type": "object", "description": "RFC 7807 Problem Details object.", "properties": { "type": { "type": "string", "format": "uri" }, "title": { "type": "string" }, "status": { "type": "integer" }, "detail": { "type": "string" } }}{ "type": "https://api.example.com/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)."}Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-MethodAccess-Control-Allow-Methods: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKAccess-Control-Allow-Origin: *Access-Control-Expose-Headers: ETag, LocationAllow: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKCache-Control: no-cache, privateX-Powered-By: Ember Nexus API{ "$schema": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Schema", "type": "object", "description": "RFC 7807 Problem Details object.", "properties": { "type": { "type": "string", "format": "uri" }, "title": { "type": "string" }, "status": { "type": "integer" }, "detail": { "type": "string" } }}{ "type": "https://api.example.com/error/404/not-found", "title": "Not Found", "status": 404, "detail": "Requested element was not found."}Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-MethodAccess-Control-Allow-Methods: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKAccess-Control-Allow-Origin: *Access-Control-Expose-Headers: ETag, LocationAllow: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCKCache-Control: no-cache, privateX-Powered-By: Ember Nexus API{ "$schema": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Schema", "type": "object", "description": "RFC 7807 Problem Details object.", "properties": { "type": { "type": "string", "format": "uri" }, "title": { "type": "string" }, "status": { "type": "integer" }, "detail": { "type": "string" } }}Request Header
Authorization
optional
Bearer token for user authentication. If omitted, the request is processed as an anonymous user; if provided, the associated user account is used.
Request Body
{ "type": "Demo", "id": "f9a619e1-f3f5-4fbf-a80e-fa8f7dd88103", "data": { "hello": "world :D" }}{ "type": "object", "required": [ "type", "data" ], "properties": { "type": { "type": "string", "description": "The type of element to be created.", "example": "Demo" }, "id": { "type": "string", "format": "uuid", "description": "The element's UUID. Auto-generated if not provided.", "example": "f9a619e1-f3f5-4fbf-a80e-fa8f7dd88103" }, "data": { "type": "object", "description": "Arbitrary data related to the element.", "additionalProperties": true, "example": { "hello": "world :D" } } }}Response Header
Access-Control-Allow-Headers
always
Specifies which HTTP headers can be used during a cross-origin request, returned in preflight responses.
Access-Control-Allow-Methods
always
Indicates which HTTP methods are permitted for cross-origin requests, typically returned in preflight responses.
Access-Control-Allow-Origin
always
Specifies which origin(s) may access the resource.
Access-Control-Expose-Headers
always
Lists the response headers that browsers are allowed to access from JavaScript beyond the default restricted set.
Allow
always
Lists the HTTP methods supported by the endpoint; returned alongside a 405 Method Not Allowed response.
Cache-Control
always
Directives controlling caching behavior for the response.