This guide describes a set of HTTP+JSON API design practices, originally extracted from work on the Heroku Platform API.
This guide informs additions to that API and also guides new internal APIs at Heroku. We hope it’s also of interest to API designers outside of Heroku.
Our goals here are consistency and focusing on business logic while avoiding design bikeshedding. We’re looking for a good, consistent, well-documented way to design APIs, not necessarily the only/ideal way.
We assume you’re familiar with the basics of HTTP+JSON APIs and won’t cover all of the fundamentals of those in this guide.
Available for online reading and in multiple formats at gitbook.
We welcome contributions to this guide.
See Summary for Table of Contents.
For the best reading experience, we recommend reading via GitBook.
- English
- Italian (based on f12db3e), by @diegomariani
- Simplified Chinese (based on 40d114b), by @ZhangBohan
- Korean (based on f38dba6), by @yoondo
- Portuguese (based on fba98f08b5), by @Gutem
- Simplified Chinese (based on 337c4a0), by @ZhangBohan
- Spanish (based on 2a74f45), by @jmnavarro
- Traditional Chinese (based on 232f8dc), by @kcyeu
- Turkish (based on c03842f), by @hkulekci