I think 403 is about moderation.
Error Codes (copied from https://openrouter.ai/docs#errors)
400: Bad Request (invalid or missing params, CORS)
401: Invalid credentials (OAuth session expired, disabled/invalid API key)
402: Out of credits
403: Your chosen model requires moderation and your input was flagged
408: Your request time out
429: You are being rate limited
502: Your chosen model is down or we received an invalid response from it
(I'm a user working on implementing code in my app to catch these errors, so I have no idea if this is relevant to you.)