The quota does reset every 24 hours, but the time seems to wander. Some years ago, I seem to remember it resetting around midnight UTC, but it doesn't anymore.
Recently, the SmokeDetector bot started logging when its quota reset. Here are the logged times so far:
Day and Time (UTC) Log entry ------------------ -------------- Dec 23 6:04 PM API quota rolled over with 2001 requests remaining. Dec 22 6:04 PM API quota rolled over with 2014 requests remaining. Dec 21 6:04 PM API quota rolled over with 2851 requests remaining. Dec 20 6:04 PM API quota rolled over with 4665 requests remaining. Dec 19 11:36 AM API quota rolled over with 2580 requests remaining. Dec 18 11:36 AM API quota rolled over with 2824 requests remaining. Dec 17 ??? Site + API + Bot glitch. Rollover not certain. Dec 16 5:06 PM API quota rolled over with 1030 requests remaining. Dec 15 5:05 PM API quota rolled over with 900 requests remaining. Dec 14 5:05 PM API quota rolled over with 1896 requests remaining. Dec 13 5:05 PM API quota rolled over with 5506 requests remaining. Dec 12 5:05 PM API quota rolled over with 4118 requests remaining. Dec 11 5:05 PM API quota rolled over with 2598 requests remaining. Dec 10 5:05 PM API quota rolled over with 1640 requests remaining. Dec 9 5:05 PM API quota rolled over with 1624 requests remaining. Dec 8 5:04 PM API quota rolled over with 1981 requests remaining. Dec 7 5:04 PM API quota rolled over with 2866 requests remaining. Dec 6 5:04 PM API quota rolled over with 4596 requests remaining.
As you can see, the reset times tend to stay constant for a few days, then jump to a new time, then stay constant again. A "punctuated equilibrium".
We've yet to ascertain any rhyme or reason to it.