El problema aquí es que estás tratando de truncar la tabla "apikeps" en cada iteración del bucle while. Esto provoca que los datos se borren después del primer ciclo, de modo que las actualizaciones para los siguientes registros de 'apikeps' no logran encontrar ningún dato correspondiente.
Para solucionar esto, puedes realizar el TRUNCATE una vez hayas terminado con todas las actualizaciones. Mueve la operación TRUNCATE fuera del bucle while, tu código debería quedar así:
PHP:
$klip = mysqli_query($conexion,"SELECT * FROM apikeps where gastado >= '0.001' ORDER BY id DESC");
while($fila = mysqli_fetch_assoc($klip)){
$came = mysqli_query($conexion,"SELECT SUM(gastado) as gastado FROM apikeps where email='".$fila['email']."'");
$capps = mysqli_fetch_assoc($came);
mysqli_query($conexion,"UPDATE profileuser SET spentoday='".$capps['gastado']."' where email = '".$fila['email']."'");
}
mysqli_query($conexion,"TRUNCATE TABLE apikeps");
Por favor, recuerda que es bueno practicar siempre programación segura y evitar la inyección SQL, considera usar consultas preparadas.