Great question! API design is long-term product design. Here are principles for aging well:
1. DESIGN FOR BREAKING CHANGES FROM DAY ONE. Assume you WILL need to change things. Build mechanisms for it.
2. NEVER REMOVE, ONLY DEPRECATE. Have a deprecation cycle that gives users time to migrate.
3. DESIGN EXTENSIBILITY INTO EVERYTHING. Have metadata fields, version fields, and flexible schemas.
4. VERSION IN THE URL. Use api/v1/users, api/v2/users - not in headers.
The key insight: Your API today will be wrong tomorrow. Design for graceful evolution, not perfection.
Want me to design a concrete example with versioning strategy?