Start here. This is the direct spoken answer to practice first.
Why this question matters
In an ASP.NET Core API, 401 usually comes from an authentication challenge because no acceptable identity was produced; 403 comes from a forbid result after authentication succeeded but authorization failed.
I start with the status code. For 401, I verify that the credential is present and that the selected authentication scheme accepts it: signature, issuer, audience, lifetime, and token format all matter. For 403, I confirm the user is authenticated, then inspect the endpoint's policy, required claims or roles, and any resource or tenant checks. That keeps login problems separate from permission problems.