Skip to main content

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