Spaces are isolated containers for organizing memories. Each space has its own set of memories, files, and configuration.
Create a space
from memvai import Memv
client = Memv()
# Create a new space
response = client.spaces.create(
name = "Personal Assistant" ,
description = "Memories for my AI assistant"
)
space = response.space
print ( f "Created space: { space.id } " )
Response structure
The response contains a space object with the following fields:
id - Unique space identifier
name - Space name
description - Space description
created_at - Creation timestamp
updated_at - Last update timestamp
List spaces
# List all spaces
response = client.spaces.list()
for space in response.spaces:
print ( f " { space.name } ( { space.id } )" )
Retrieve a space
# Get space by ID
response = client.spaces.retrieve( space_id = "space_abc123" )
space = response.space
print ( f "Name: { space.name } " )
print ( f "Description: { space.description } " )
Update a space
# Update space details
response = client.spaces.update(
space_id = "space_abc123" ,
name = "Updated Name" ,
description = "Updated description"
)
space = response.space
print ( f "Updated: { space.name } " )
Delete a space
# Delete a space
response = client.spaces.delete( space_id = "space_abc123" )
if response.success:
print ( "Space deleted successfully" )
Deleting a space permanently removes all memories, files, and data associated with it. This action cannot be undone.
Get space statistics
# Get space stats
stats = client.spaces.get_stats()
print ( f "Total memories: { stats.total_memories } " )
print ( f "Total files: { stats.total_files } " )
print ( f "Storage used: { stats.storage_bytes } bytes" )
Common patterns
Create space if not exists
def get_or_create_space ( client : Memv, name : str ) -> str :
"""Get existing space by name or create new one."""
# List existing spaces
response = client.spaces.list()
# Find by name
for space in response.spaces:
if space.name == name:
return space.id
# Create new space
response = client.spaces.create( name = name)
return response.space.id
# Usage
space_id = get_or_create_space(client, "My App" )
Batch operations
def create_multiple_spaces ( names : list[ str ]) -> list[ str ]:
"""Create multiple spaces."""
space_ids = []
for name in names:
response = client.spaces.create( name = name)
space_ids.append(response.space.id)
return space_ids
# Usage
space_ids = create_multiple_spaces([
"User Preferences" ,
"Chat History" ,
"Knowledge Base"
])
Best practices
Create separate spaces for different use cases or users: # User-specific spaces
user_space = client.spaces.create(
name = f "User { user_id } - Preferences" ,
description = "User preferences and settings"
)
# Feature-specific spaces
chat_space = client.spaces.create(
name = "Chat History" ,
description = "Conversation memories"
)
Give spaces clear, descriptive names that indicate their purpose.
Regularly delete spaces that are no longer needed to manage costs.
Error handling
import memvai
from memvai import Memv
client = Memv()
try :
response = client.spaces.create( name = "My Space" )
space_id = response.space.id
print ( f "Created: { space_id } " )
except memvai.AuthenticationError:
print ( "Invalid API key" )
except memvai.BadRequestError as e:
print ( f "Invalid request: { e.message } " )
except memvai.APIError as e:
print ( f "API error: { e } " )
Next steps
Memories Add memories to your space
Files Upload files to your space