I run a service that integrates with pager duty on behalf of our users, and man oh man did they make some poor design choices with their API. The most glaring one is their integration keys, which is how you trigger an alert. They’re just v4 uuids with the hyphens removed, or in other words, completely random. This is fine by itself, except they have two versions of their event API, and keys for the v1 API don’t work…
One of the nice little features that I appreciate about Twilio, and have adopted myself, is their API keys are always prefixed with a 2 character type. e.g. "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "phone_number_sid": "PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "sid": "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
I qualify "when stored as strings" because id numbers in database rows are in a sufficiently strong context on their own, for instance. But once they get serialized to strings, you really ought to stick a prefix on them. You may only change 10% of your ids, but the saving on that 10% will be well worth the cost of prefixing your ids.