Users API
This document outlines the API endpoints for managing users in PySpur.
Users and sessions are required for deploying agents and chatbots that maintain message history.
Create User
Description: Creates a new user. If a user with the given external ID already exists, returns the existing user.
URL: /user/
Method: POST
Request Payload:
class UserCreate:
external_id: str # External identifier for the user
user_metadata: Optional[Dict[str, Any]] = None # Additional metadata about the user
Response Schema:
class UserResponse:
id: str # User ID (prefixed with 'U')
external_id: str # External identifier for the user
user_metadata: Optional[Dict[str, Any]] # Additional metadata about the user
created_at: datetime # When the user was created
updated_at: datetime # When the user was last updated
List Users
Description: Lists users with pagination.
URL: /user/
Method: GET
Query Parameters:
skip: int = 0 # Number of users to skip (min: 0)
limit: int = 10 # Number of users to return (min: 1, max: 100)
Response Schema:
class UserListResponse:
users: List[UserResponse] # List of users
total: int # Total number of users
Get User
Description: Gets a specific user by ID.
URL: /user/{user_id}/
Method: GET
Parameters:
user_id: str # User ID (prefixed with 'U')
Response Schema:
class UserResponse:
id: str # User ID (prefixed with 'U')
external_id: str # External identifier for the user
user_metadata: Optional[Dict[str, Any]] # Additional metadata about the user
created_at: datetime # When the user was created
updated_at: datetime # When the user was last updated
Update User
Description: Updates a user.
URL: /user/{user_id}/
Method: PATCH
Parameters:
user_id: str # User ID (prefixed with 'U')
Request Payload:
class UserUpdate:
external_id: Optional[str] = None # External identifier for the user
user_metadata: Optional[Dict[str, Any]] = None # Additional metadata about the user
Response Schema:
class UserResponse:
id: str # User ID (prefixed with 'U')
external_id: str # External identifier for the user
user_metadata: Optional[Dict[str, Any]] # Additional metadata about the user
created_at: datetime # When the user was created
updated_at: datetime # When the user was last updated
Delete User
Description: Deletes a user.
URL: /user/{user_id}/
Method: DELETE
Parameters:
user_id: str # User ID (prefixed with 'U')
Response: 204 No Content