You can certainly get the per-residue or residue/residue energy breakdown, but I haven’t seen a way to get a per-atom energy breakdown with Rosetta.
Rosetta’s really set up to do everything on a per-residue basis. The internal data structures which accumulate and store the energies only go down to the granularity of residues (with some sub-residue granularity, like backbone versus sidechain). It varies somewhat based on which energy term you’re talking about, but, in general, the functions which calculate the energies loop over all the atoms in the residues – there isn’t normally a separate function to handle atom-atom energies.
If you’re just interested in fa_atr and fa_rep, you may be able to get something from core::scoring::etable::EtableEnergy::atom_pair_energy() and similar functions (name from C++, so that should be something like core.scoring.etable.EtableEnergy.atom_pair_energy() in Python), but those are templated and overloaded functions primarily intended for internal use by the fa_atr/fa_rep calculation code, so I don’t know if they’re exposed to PyRosetta in any meaningful/useful way.
As an alternative, if you’re just scoring and not doing any sort of minimization/optimization, you may be able to get away with replacing the ligand with a smaller ligand with which you want the interaction energy. For example, if you’re interested in the interactions with a carboxylate, replace the entire ligand with just an acetate or a formate at the coordinates of the carboxylate. If the energy terms you’re dealing with are atom pairwise decomposable, protein-ligand carboxylate interaction energies should be about the same (modulo an extra hydrogen or so) to the energies for just the formate/acetate.