Using an API token configured for a user doesn't allow access to the api e.g. accessing https://user:apitoken@jenkins/crumbIssuer/api/json causes a redirect to the saml auth provider instead of authenticating with the users apitoken.
I've just regenerated the tokens under a user that authenticates with saml and it works now. The user for which it was failing was a user that wouldn't be authenticated via saml and was probably using a legacy api token.