These days, I almost exclusively use Postman to write the API spec before I even start to write the first line of code. Since postman also generates a good looking UI from the spec, it's much easier to share that documentation within the team for feedback and comments.
I've also experimented with writing Protobuf files. The advantage that Protobuf provides is that also allows me to create shared data types and map entity objects across the domain. Unfortunately, Protobuf doesn't have a good documentation generator. Maybe, my next weekend project? :P