Steve Klabnik outlines some best practices in API design in “Nobody Understands REST or HTTP”, some of which I admit I need to follow more consistently. As he states in the end:
Seriously, most of the problems that you’re solving are social, not technical. The web is decades old at this point, most people have considered these kinds of problems in the past. That doesn’t mean that they always have the right answer, but they usually do have an answer, and it’d behoove you to know what it is before you invent something on your own.
Good article with clear to use tips.