Objects
The workspace's own records — products, venues, courses, equipment. Their attributes come from a form rather than from fixed columns, and they link to each other, to files and to classification nodes.
List objects
Beta — this operation may change on 30 days notice. See versioning.
Filter by kind with obj_type, by business key with obj_key, by attribute with obj_content, and by classification with taxonomy — one node id, or several comma-separated to match only objects filed under every one of them. q searches names and business keys.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
query Parameters
cursor^[A-Za-z0-9_-]+$limitobj_activeobj_createdobj_formobj_idobj_keyobj_nameobj_state_itemobj_typeobj_updatedoffsetqsort^-?[a-z0-9_]+$taxonomyHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
List objects › Responses
Success
has_moreWhether more rows exist past this page.
next_cursorPass back as cursor for the next page. Null on the last page.
Create an object
Beta — this operation may change on 30 days notice. See versioning.
obj_content is checked against the form obj_form names, so an attribute the form does not declare is refused rather than stored. Leave obj_form out and the schema declaring this obj_type is used — you need not know its id. A kind with no schema behind it is accepted as sent.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Create an object › Request Body
obj_typeobj_nameobj_keyobj_formobj_contentobj_state_itemobj_repoobj_metadataobj_aclCreate an object › Responses
Created
obj_idobj_activeobj_createdobj_updatedobj_created_byobj_typeobj_keyobj_nameobj_formobj_contentobj_state_itemobj_repoobj_metadataGet an object
Beta — this operation may change on 30 days notice. See versioning.
Returns the object with its attributes and every relation it takes part in, in both directions.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get an object › Responses
Success
obj_idobj_activeobj_createdobj_updatedobj_created_byobj_typeobj_keyobj_nameobj_formobj_contentobj_state_itemobj_repoobj_metadataDelete an object
Beta — this operation may change on 30 days notice. See versioning.
Deactivates the object and drops every relation it took part in. Its business key becomes free for a new record to use.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Delete an object › Responses
Success. No content.
Update an object
Beta — this operation may change on 30 days notice. See versioning.
Applies the obj_-prefixed fields present in the body. obj_content replaces the stored attributes whole rather than merging into them.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Update an object › Request Body optional
obj_typeobj_nameobj_keyobj_formobj_contentobj_state_itemobj_repoobj_metadataobj_aclUpdate an object › Responses
Success
obj_idobj_activeobj_createdobj_updatedobj_created_byobj_typeobj_keyobj_nameobj_formobj_contentobj_state_itemobj_repoobj_metadataList relations
Beta — this operation may change on 30 days notice. See versioning.
The edges this object takes part in, oldest first. direction narrows to the ones leading out of it or into it; by default you get both.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
path Parameters
idquery Parameters
cursor^[A-Za-z0-9_-]+$directionlimitoffsetrel_typesort^-?[a-z0-9_]+$Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
List relations › Responses
Success
has_moreWhether more rows exist past this page.
next_cursorPass back as cursor for the next page. Null on the last page.
Create a relation
Beta — this operation may change on 30 days notice. See versioning.
Links this object to something else — another object, a file, or a taxonomy node with classified-as. rel_type is your own vocabulary, not a fixed list. Asserting an edge that already exists updates its metadata instead of failing.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Create a relation › Request Body
rel_typerel_torel_to_typerel_metadataCreate a relation › Responses
Success
rel_idrel_activerel_createdrel_created_byrel_typerel_fromrel_from_typerel_torel_to_typerel_metadataDelete a relation
Beta — this operation may change on 30 days notice. See versioning.
Removes the link. Neither end is otherwise affected.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
path Parameters
idrelation_idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Delete a relation › Responses
Success
Change object states
Beta — this operation may change on 30 days notice. See versioning.
Moves objects to another state in the flow that governs them. A move the flow does not allow is refused rather than forced.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Change object states › Request Body
obj_idstarget_state_idChange object states › Responses
Success
Upsert by key
Beta — this operation may change on 30 days notice. See versioning.
Creates or updates the object with this obj_type and obj_key, so an upstream system can send the same record repeatedly without producing duplicates. obj_content is validated against the schema declaring this obj_type, so a caller needs only its own vocabulary and never an id of ours. Answers 201 when it created one and 200 when it updated one.
Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Upsert by key › Request Body
obj_typeobj_keyobj_nameobj_formobj_contentobj_state_itemobj_repoobj_metadataUpsert by key › Responses
Success
obj_idobj_activeobj_createdobj_updatedobj_created_byobj_typeobj_keyobj_nameobj_formobj_contentobj_state_itemobj_repoobj_metadata