I created a similar project recently! Main difference is that I use base64 to encode unique Snowflake IDs, which are timestamped: https://github.com/hopinc/pika :)
With prefixed-api-key, the hash of each token is stored in the database, so the timestamp can easily be added there.
Most of the time I don't see the utility in the client having the timestamp, outside of a scenario where you have a third party validate on their own (e. g. JWT w/ RSA keys). The best way you see if a token has expired is by trying to use it.
With UUIDs I prefer UUID4 to UUID1 most of the time.
I prefer to only include the relevant information and for API keys the client doesn't usually need the time the key was created.
(I work for MongoDB).