GenuineAIGenuineAI
For usersFor developers
  • Overview
  • Guides
  • How-to
  • API reference
Documentation
  • Quickstart
  • Authentication
  • Errors
  • Rate limits
  • API reference
Platform
  • Platform overview
  • Solutions
  • Pricing
  • Sign in
Company
  • Status
  • Trust Center
  • Contact
  • Terms of Service
  • Privacy Policy

© 2026 GenuineAI Ventures LLC

support@genuinehq.com
Overview
Core
Media library
AI
Documents
Knowledge
    Knowledge bases
    Knowledge base records
    Knowledge base schemas
    Objects
    Object taxonomies
    Object schemas
    Object lifecycle flows
      List flowsgetCreate a flowpostGet a flowgetUpdate a flowputDelete a flowdelete
    Object sources
Creative
Website & content
Automation
Customer channels
Administration
Schemas
GenuineAI API
GenuineAI API

Object lifecycle flows

The states records move through — draft, approved, end-of-life, whatever the workspace defines — and who may move them. Objects created while a flow is active start in its initial state.


List flows

GET
https://api.genuineai.app/api/v1
/object-lifecycle-flows

Beta — this operation may change on 30 days notice. See versioning.

Returns the workspace's object lifecycle flows, each with its states. At most one is active at a time.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

List flows › query Parameters

cursor
​string · maxLength: 512 · pattern: ^[A-Za-z0-9_-]+$
limit
​integer
offset
​integer · min: 0
sm_active
​boolean
sort
​string · minLength: 1 · maxLength: 64 · pattern: ^-?[a-z0-9_]+$

List flows › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List flows › Responses

Success

​ObjectLifecycleFlow[]
The states the workspace's records move through — who sees a record in each state, and who may move it on.
ObjectLifecycleFlow
sm_id
​string · uuid
sm_active
​boolean
sm_created
​string · date-time
sm_updated
​string · date-time
sm_object_criteria
​object
​object[]

The moves the machine allows. roles and users are alternatives — holding one of the roles or being one of the users is enough — and naming neither leaves the move open to anyone who can write the record.

sm_metadata
​object
​object[]

The flow's states, in display order.

GET/object-lifecycle-flows
curl https://api.genuineai.app/api/v1/object-lifecycle-flows \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
[ { "sm_id": "00000000-0000-0000-0000-000000000000", "sm_active": true, "sm_created": "2024-08-25T15:00:00Z", "sm_updated": "2024-08-25T15:00:00Z", "sm_object_criteria": {}, "sm_transitions": [ { "from": "00000000-0000-0000-0000-000000000000", "to": "00000000-0000-0000-0000-000000000000", "roles": [ "00000000-0000-0000-0000-000000000000" ], "users": [ "00000000-0000-0000-0000-000000000000" ], "label": "label", "back": true, "notify": true, "actions": [ "string" ] } ], "sm_metadata": {}, "states": [ { "si_id": "00000000-0000-0000-0000-000000000000", "si_label": "si_label", "si_color": "si_color", "si_order": 0, "si_initial": true, "si_final": true, "si_note": true, "si_roles": {}, "si_active": true } ] } ]
json
application/json

Create a flow

POST
https://api.genuineai.app/api/v1
/object-lifecycle-flows

Beta — this operation may change on 30 days notice. See versioning.

Defines the states objects move through and who may move them. New objects start in the initial state. Answers 409 while an active flow exists — update or delete that one instead.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Create a flow › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Create a flow › Request Body

​object[] · required
​array
sm_name
​string
sm_default
​boolean

Create a flow › Responses

Created

The states the workspace's records move through — who sees a record in each state, and who may move it on.
ObjectLifecycleFlow
sm_id
​string · uuid
sm_active
​boolean
sm_created
​string · date-time
sm_updated
​string · date-time
sm_object_criteria
​object
​object[]

The moves the machine allows. roles and users are alternatives — holding one of the roles or being one of the users is enough — and naming neither leaves the move open to anyone who can write the record.

sm_metadata
​object
​object[]

The flow's states, in display order.

POST/object-lifecycle-flows
curl https://api.genuineai.app/api/v1/object-lifecycle-flows \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "states": [ { "si_label": "si_label" } ], "transitions": [ {} ], "sm_name": "sm_name", "sm_default": true }'
Example Request Body
{ "states": [ { "si_label": "si_label" } ], "transitions": [ {} ], "sm_name": "sm_name", "sm_default": true }
json
Example Responses
{ "sm_id": "00000000-0000-0000-0000-000000000000", "sm_active": true, "sm_created": "2024-08-25T15:00:00Z", "sm_updated": "2024-08-25T15:00:00Z", "sm_object_criteria": {}, "sm_transitions": [ { "from": "00000000-0000-0000-0000-000000000000", "to": "00000000-0000-0000-0000-000000000000", "roles": [ "00000000-0000-0000-0000-000000000000" ], "users": [ "00000000-0000-0000-0000-000000000000" ], "label": "label", "back": true, "notify": true, "actions": [ "string" ] } ], "sm_metadata": {}, "states": [ { "si_id": "00000000-0000-0000-0000-000000000000", "si_label": "si_label", "si_color": "si_color", "si_order": 0, "si_initial": true, "si_final": true, "si_note": true, "si_roles": {}, "si_active": true } ] }
json
application/json

Get a flow

GET
https://api.genuineai.app/api/v1
/object-lifecycle-flows/{id}

Beta — this operation may change on 30 days notice. See versioning.

Returns the flow with its states, its transitions, and the roles each transition requires.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Get a flow › path Parameters

id
​string · uuid · required

Get a flow › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Get a flow › Responses

Success

The states the workspace's records move through — who sees a record in each state, and who may move it on.
ObjectLifecycleFlow
sm_id
​string · uuid
sm_active
​boolean
sm_created
​string · date-time
sm_updated
​string · date-time
sm_object_criteria
​object
​object[]

The moves the machine allows. roles and users are alternatives — holding one of the roles or being one of the users is enough — and naming neither leaves the move open to anyone who can write the record.

sm_metadata
​object
​object[]

The flow's states, in display order.

GET/object-lifecycle-flows/{id}
curl https://api.genuineai.app/api/v1/object-lifecycle-flows/:id \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "sm_id": "00000000-0000-0000-0000-000000000000", "sm_active": true, "sm_created": "2024-08-25T15:00:00Z", "sm_updated": "2024-08-25T15:00:00Z", "sm_object_criteria": {}, "sm_transitions": [ { "from": "00000000-0000-0000-0000-000000000000", "to": "00000000-0000-0000-0000-000000000000", "roles": [ "00000000-0000-0000-0000-000000000000" ], "users": [ "00000000-0000-0000-0000-000000000000" ], "label": "label", "back": true, "notify": true, "actions": [ "string" ] } ], "sm_metadata": {}, "states": [ { "si_id": "00000000-0000-0000-0000-000000000000", "si_label": "si_label", "si_color": "si_color", "si_order": 0, "si_initial": true, "si_final": true, "si_note": true, "si_roles": {}, "si_active": true } ] }
json
application/json

Update a flow

PUT
https://api.genuineai.app/api/v1
/object-lifecycle-flows/{id}

Beta — this operation may change on 30 days notice. See versioning.

Replaces the flow's states and transitions. Objects already sitting in a state the new definition drops keep that value until something moves them.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Update a flow › path Parameters

id
​string · uuid · required

Update a flow › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Update a flow › Request Body

​object[] · required
​array
sm_name
​string
sm_default
​boolean

Update a flow › Responses

Success

The states the workspace's records move through — who sees a record in each state, and who may move it on.
ObjectLifecycleFlow
sm_id
​string · uuid
sm_active
​boolean
sm_created
​string · date-time
sm_updated
​string · date-time
sm_object_criteria
​object
​object[]

The moves the machine allows. roles and users are alternatives — holding one of the roles or being one of the users is enough — and naming neither leaves the move open to anyone who can write the record.

sm_metadata
​object
​object[]

The flow's states, in display order.

PUT/object-lifecycle-flows/{id}
curl https://api.genuineai.app/api/v1/object-lifecycle-flows/:id \ --request PUT \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "states": [ { "si_label": "si_label" } ], "transitions": [ {} ], "sm_name": "sm_name", "sm_default": true }'
Example Request Body
{ "states": [ { "si_label": "si_label" } ], "transitions": [ {} ], "sm_name": "sm_name", "sm_default": true }
json
Example Responses
{ "sm_id": "00000000-0000-0000-0000-000000000000", "sm_active": true, "sm_created": "2024-08-25T15:00:00Z", "sm_updated": "2024-08-25T15:00:00Z", "sm_object_criteria": {}, "sm_transitions": [ { "from": "00000000-0000-0000-0000-000000000000", "to": "00000000-0000-0000-0000-000000000000", "roles": [ "00000000-0000-0000-0000-000000000000" ], "users": [ "00000000-0000-0000-0000-000000000000" ], "label": "label", "back": true, "notify": true, "actions": [ "string" ] } ], "sm_metadata": {}, "states": [ { "si_id": "00000000-0000-0000-0000-000000000000", "si_label": "si_label", "si_color": "si_color", "si_order": 0, "si_initial": true, "si_final": true, "si_note": true, "si_roles": {}, "si_active": true } ] }
json
application/json

Delete a flow

DELETE
https://api.genuineai.app/api/v1
/object-lifecycle-flows/{id}

Beta — this operation may change on 30 days notice. See versioning.

Stops objects being governed. Records keep the state they are in.

Requires the module-objects license feature. Without it the request is refused with 403 license_required — see plans and modules.

Delete a flow › path Parameters

id
​string · uuid · required

Delete a flow › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Delete a flow › Responses

Success. No content.

No data returned
DELETE/object-lifecycle-flows/{id}
curl https://api.genuineai.app/api/v1/object-lifecycle-flows/:id \ --request DELETE \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
No example specified for this content type

Object schemasObject sources