Custom user field that’s hidden from user and editable by API?

I think that you’d make it not required at signup, hide it from the signup page with CSS and have it not be editable after signup. You could then edit it with an admin API key.

If the risk that a user might contrive to find the hidden field at account creation time then you’d need a plugin, I think.

Saying more about what you’re actually trying to do might be of use here. You’re proposing a solution here, and not the problem that it’s solving.