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
    Agents
    Threads
    Messages
    Spaces
      List spacesgetCreate a spacepostGet a spacegetDelete a spacedeleteUpdate a spacepatchList membersgetAdd or update a memberpostRemove a memberdeleteAdd a threadpostRemove a threaddelete
    Prompts
    Prompt categories
    Wildcards
    Memories
    Assist
Documents
Knowledge
Creative
Website & content
Automation
Customer channels
Administration
Schemas
GenuineAI API
GenuineAI API

Spaces

Shared homes for conversations, with their own membership.


List spaces

GET
https://api.genuineai.app/api/v1
/spaces

Spaces nest. Pass space_parent with a space id for that space's children, or the literal root for the top level.

List spaces › query Parameters

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

List spaces › 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 spaces › Responses

Success

​Space[] · required
has_more
​boolean · required

Whether more rows exist past this page.

next_cursor
​string | null · required

Pass back as cursor for the next page. Null on the last page.

GET/spaces
curl https://api.genuineai.app/api/v1/spaces \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "data": [ { "space_id": "00000000-0000-0000-0000-000000000000", "space_active": true, "space_created": "2024-08-25T15:00:00Z", "space_updated": "2024-08-25T15:00:00Z", "space_created_by": "space_created_by", "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "space_parent", "space_default_agent": "space_default_agent", "space_system_prompt": "space_system_prompt", "space_knowledge": "space_knowledge", "space_metadata": {}, "thread_count": 0, "child_count": 0 } ], "has_more": true, "next_cursor": "next_cursor" }
json
application/json

Create a space

POST
https://api.genuineai.app/api/v1
/spaces

Creates a space. Spaces can nest, and a thread lives in at most one of them.

Create a space › 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 space › Request Body

space_name
​string · minLength: 1 · required
space_description
​string
space_icon
​string
space_color
​string
space_parent
​string · uuid
space_default_agent
​string · uuid
space_system_prompt
​string
​array
space_metadata
​object
space_acl
​object

Create a space › Responses

Created

A shared home for conversations: who may see it, and what it collects.
Space
space_id
​string · uuid
space_active
​boolean
space_created
​string · date-time
space_updated
​string · date-time
space_created_by
​string
space_name
​string
space_description
​string
space_icon
​string
space_color
​string
space_parent
​string
space_default_agent
​string
space_system_prompt
​string
space_knowledge
​string
space_metadata
​object
thread_count
​integer
child_count
​integer
POST/spaces
curl https://api.genuineai.app/api/v1/spaces \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "00000000-0000-0000-0000-000000000000", "space_default_agent": "00000000-0000-0000-0000-000000000000", "space_system_prompt": "space_system_prompt", "space_knowledge": [ {} ], "space_metadata": {}, "space_acl": {} }'
Example Request Body
{ "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "00000000-0000-0000-0000-000000000000", "space_default_agent": "00000000-0000-0000-0000-000000000000", "space_system_prompt": "space_system_prompt", "space_knowledge": [ {} ], "space_metadata": {}, "space_acl": {} }
json
Example Responses
{ "space_id": "00000000-0000-0000-0000-000000000000", "space_active": true, "space_created": "2024-08-25T15:00:00Z", "space_updated": "2024-08-25T15:00:00Z", "space_created_by": "space_created_by", "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "space_parent", "space_default_agent": "space_default_agent", "space_system_prompt": "space_system_prompt", "space_knowledge": "space_knowledge", "space_metadata": {}, "thread_count": 0, "child_count": 0 }
json
application/json

Get a space

GET
https://api.genuineai.app/api/v1
/spaces/{id}

Returns the space with its membership and where it sits in the tree.

Get a space › path Parameters

id
​string · uuid · required

Get a space › 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 space › Responses

Success

A shared home for conversations: who may see it, and what it collects.
Space
space_id
​string · uuid
space_active
​boolean
space_created
​string · date-time
space_updated
​string · date-time
space_created_by
​string
space_name
​string
space_description
​string
space_icon
​string
space_color
​string
space_parent
​string
space_default_agent
​string
space_system_prompt
​string
space_knowledge
​string
space_metadata
​object
thread_count
​integer
child_count
​integer
GET/spaces/{id}
curl https://api.genuineai.app/api/v1/spaces/:id \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "space_id": "00000000-0000-0000-0000-000000000000", "space_active": true, "space_created": "2024-08-25T15:00:00Z", "space_updated": "2024-08-25T15:00:00Z", "space_created_by": "space_created_by", "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "space_parent", "space_default_agent": "space_default_agent", "space_system_prompt": "space_system_prompt", "space_knowledge": "space_knowledge", "space_metadata": {}, "thread_count": 0, "child_count": 0 }
json
application/json

Delete a space

DELETE
https://api.genuineai.app/api/v1
/spaces/{id}

Deletes the space itself. Threads inside it are not deleted — they revert to being personal threads belonging to whoever started them.

Delete a space › path Parameters

id
​string · uuid · required

Delete a space › 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 space › Responses

Success. No content.

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

Update a space

PATCH
https://api.genuineai.app/api/v1
/spaces/{id}

Applies the space_-prefixed fields present in the body. Only an owner may change who has access or move the space.

Update a space › path Parameters

id
​string · uuid · required

Update a space › 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 space › Request Body optional

space_name
​string · minLength: 1
space_description
​string
space_icon
​string
space_color
​string
space_parent
​string · uuid
space_default_agent
​string · uuid
space_system_prompt
​string
​array
space_metadata
​object
space_acl
​object
space_active
​boolean

Update a space › Responses

Success

A shared home for conversations: who may see it, and what it collects.
Space
space_id
​string · uuid
space_active
​boolean
space_created
​string · date-time
space_updated
​string · date-time
space_created_by
​string
space_name
​string
space_description
​string
space_icon
​string
space_color
​string
space_parent
​string
space_default_agent
​string
space_system_prompt
​string
space_knowledge
​string
space_metadata
​object
thread_count
​integer
child_count
​integer
PATCH/spaces/{id}
curl https://api.genuineai.app/api/v1/spaces/:id \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "00000000-0000-0000-0000-000000000000", "space_default_agent": "00000000-0000-0000-0000-000000000000", "space_system_prompt": "space_system_prompt", "space_knowledge": [ {} ], "space_metadata": {}, "space_acl": {}, "space_active": true }'
Example Request Body
{ "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "00000000-0000-0000-0000-000000000000", "space_default_agent": "00000000-0000-0000-0000-000000000000", "space_system_prompt": "space_system_prompt", "space_knowledge": [ {} ], "space_metadata": {}, "space_acl": {}, "space_active": true }
json
Example Responses
{ "space_id": "00000000-0000-0000-0000-000000000000", "space_active": true, "space_created": "2024-08-25T15:00:00Z", "space_updated": "2024-08-25T15:00:00Z", "space_created_by": "space_created_by", "space_name": "space_name", "space_description": "space_description", "space_icon": "space_icon", "space_color": "space_color", "space_parent": "space_parent", "space_default_agent": "space_default_agent", "space_system_prompt": "space_system_prompt", "space_knowledge": "space_knowledge", "space_metadata": {}, "thread_count": 0, "child_count": 0 }
json
application/json

List members

GET
https://api.genuineai.app/api/v1
/spaces/{id}/members

Each member with the operations they hold on the space.

List members › path Parameters

id
​string · uuid · required

List members › 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 members › Responses

Success

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

Add or update a member

POST
https://api.genuineai.app/api/v1
/spaces/{id}/members

One call for both: the member's entry is written to whatever role says, whether or not they were already a member. Only a space owner may call it.

Add or update a member › path Parameters

id
​string · uuid · required

Add or update a member › 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.

Add or update a member › Request Body

usr_id
​string · uuid · required
role
​string · enum · required
Enum values:
viewer
member
owner

Add or update a member › Responses

Success

No data returned
POST/spaces/{id}/members
curl https://api.genuineai.app/api/v1/spaces/:id/members \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "usr_id": "00000000-0000-0000-0000-000000000000", "role": "viewer" }'
Example Request Body
{ "usr_id": "00000000-0000-0000-0000-000000000000", "role": "viewer" }
json
Example Responses
No example specified for this content type

Remove a member

DELETE
https://api.genuineai.app/api/v1
/spaces/{id}/members/{user_id}

Removes one member. Threads they started stay in the space.

Remove a member › path Parameters

id
​string · uuid · required
user_id
​string · uuid · required

Remove a member › 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.

Remove a member › Responses

Success. No content.

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

Add a thread

POST
https://api.genuineai.app/api/v1
/spaces/{id}/threads/{thread_id}

Two permissions meet here, and both are required: write access to the space, and either ownership of the thread or write access to it. A private thread becomes visible to the space when it moves in; a thread already shared more widely keeps its sharing.

Add a thread › path Parameters

id
​string · uuid · required
thread_id
​string · uuid · required

Add a thread › 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.

Add a thread › Responses

Success

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

Remove a thread

DELETE
https://api.genuineai.app/api/v1
/spaces/{id}/threads/{thread_id}

Takes the thread out of the space without deleting it — it goes back to being the author's own.

Remove a thread › path Parameters

id
​string · uuid · required
thread_id
​string · uuid · required

Remove a thread › 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.

Remove a thread › Responses

Success. No content.

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

MessagesPrompts