Good API:
- Fast
- Good match of data required to data returned: In other words, API responses contain enough data to meet the needs of the app, and very little extraneous
- Response shapes:
- Nesting is limited
- Data needs little manual normalization on client side
- Useful, ideally machine-parsable, errors
- Consistent representation: Entities/objects should be consistent in terms of naming, data types, structure, etc. from endpoint to endpoint