Retrieve call logs with optional filtering.
This endpoint retrieves call logs with extensive filtering options and pagination support. Access is restricted based on organization and API key permissions.
Security:
- Regular API keys can only access call logs for their organization's phone numbers
- Master API keys (is_master=true) can access call logs for any organization/phone number
- Organization's access is strictly limited to their own phone numbers
- When using a regular API key:
- Only returns call logs for phone numbers belonging to the API key's organization
- If a specific phone_number_id is provided, verifies it belongs to the organization
- Makes separate API calls for each organization's phone number and combines results
- When using a master API key:
- Can access call logs for any phone number
- Can specify a different organization using X-Organization-ID header
Parameters: request (Request): The FastAPI request object db (AsyncSession): The database session (injected) organization_id (Optional[int]): The organization ID from the API key or request assistant_id (Optional[str]): Filter by assistant ID phone_number_id (Optional[str]): Filter by phone number ID customer_id (Optional[str]): Filter by customer ID squad_id (Optional[str]): Filter by squad ID page (Optional[int]): Page number for pagination sort_order (Optional[SortOrder]): Sort order (ASC or DESC) limit (Optional[int]): Maximum number of items to return created_at_gt (Optional[datetime]): Filter by created after date created_at_lt (Optional[datetime]): Filter by created before date created_at_ge (Optional[datetime]): Filter by created after or on date created_at_le (Optional[datetime]): Filter by created before or on date updated_at_gt (Optional[datetime]): Filter by updated after date updated_at_lt (Optional[datetime]): Filter by updated before date updated_at_ge (Optional[datetime]): Filter by updated after or on date updated_at_le (Optional[datetime]): Filter by updated before or on date
Returns: Dict[str, Any]: The call logs data and pagination information
Raises: HTTPException: - 400: If organization ID is missing - 403: If access is denied to the requested phone number - 422: If there's a validation error - 500: If an unexpected error occurs