This is expected behavior. The API will return the last violation that occurred even if it is far in the past.
When you access the API endpoint for violations, it returns the most recent evaluation of the policy_block that includes violations. It's important to note that this may not necessarily be the most recent evaluation of the policy_block overall.