# Documentation tools

**URL:** https://discuss.jsonapi.org/t/documentation-tools/227
**Category:** Uncategorized
**Created:** [November 23, 2015, 9:26am UTC](https://discuss.jsonapi.org/t/documentation-tools/227 "2015-11-23T09:26:55Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Tubia](https://avatars.discourse-cdn.com/v4/letter/t/6de8d8/32.png) [@Tubia](https://discuss.jsonapi.org/u/Tubia)
#### Post date: [November 23, 2015, 9:26am UTC](https://discuss.jsonapi.org/t/documentation-tools/227/1 "2015-11-23T09:26:55Z")

</div>

Hi,  
so we have our beautiful set of APIs that adheres to JSON:API specification.  
Now, is there a suggested way to create documentation for the APIs?  
Well, without using some API description language, unless you think is necessary.  
Any tool for create API documentation you want to share is appreciated!

---

<div class="post-metadata">

### Author: ![ethanresnick](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ethanresnick](https://discuss.jsonapi.org/u/ethanresnick)
#### Post date: [November 23, 2015, 10:06am UTC](https://discuss.jsonapi.org/t/documentation-tools/227/2 "2015-11-23T10:06:46Z")

</div>

I don’t know of any tools (though others might!), but one of the nice things about JSON:API-compliant APIs is that they all work the same way for tasks like sorting, filtering, etc etc. So, all an individual API really has to document is its different models, urls, and perhaps things like which optional parts of the spec it supports.

Therefore, what I’ve done in my personal projects is just document the models etc (in a human readable table) and then point users to the JSON API specification and examples page (or to this forum) for details on using all the other features.

That’s not a perfect solution, since the spec can still be a bit hard for newcomers to penetrate (help with that would be very much appreciated!), but it works ok, and will only become a better option as more people get familiar with JSON API.

Hope that helps at least a bit!

P.S. Here’s [the template](https://github.com/ethanresnick/json-api/tree/master/templates) I use for documenting all my models. It’s reasonably pretty and I could spin it out into a standalone project (with better documentation about the input data format) if there’s demand.

---

<div class="post-metadata">

### Author: ![shicholas](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.jsonapi.org/shicholas/32/141_2.png) [@shicholas](https://discuss.jsonapi.org/u/shicholas)
#### Post date: [November 27, 2015, 9:06am UTC](https://discuss.jsonapi.org/t/documentation-tools/227/3 "2015-11-27T09:06:54Z")

</div>

I am definitely curious to how people are documenting their APIs too. FWIW, at my work we are documenting our JSON API with raml.

To Ethan’s point about query parameters (sorting, filtering, etc.). I’ve found that RAML’s [traits](http://docs.raml.org/specs/1.0/#applying-resource-types-and-traits) are nice because we can essentially DRY up those query parameters leaving only what is unique to a model (e.g. a requesting a client requesting an article resource can also [include](http://jsonapi.org/format/#fetching-includes) tags) to be determined when documenting an endpoint.

---

<div class="post-metadata">

### Author: ![shicholas](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.jsonapi.org/shicholas/32/141_2.png) [@shicholas](https://discuss.jsonapi.org/u/shicholas)
#### Post date: [November 27, 2015, 9:07am UTC](https://discuss.jsonapi.org/t/documentation-tools/227/4 "2015-11-27T09:07:26Z")

</div>

Another compelling reason why we opted for RAML were its sample projects such as this: [http://docs.raml.org/apis/instagram/](http://docs.raml.org/apis/instagram/)

---

<div class="post-metadata">

### Author: ![gr2m](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.jsonapi.org/gr2m/32/142_2.png) [@gr2m](https://discuss.jsonapi.org/u/gr2m)
#### Post date: [November 27, 2015, 10:00pm UTC](https://discuss.jsonapi.org/t/documentation-tools/227/5 "2015-11-27T22:00:59Z")

</div>

I’m very happy with [API Blueprint](https://apiblueprint.org) for documenting REST APIs, so it is well suited for JSON API. There is a hosted service for it: APIARY. And a lot of great tooling, a lot around automated testing. I’m not affiliated with them, just a fan 😄

Here is an example how we used it for a generic account JSON API:  
[http://docs.accountjsonapi.apiary.io](http://docs.accountjsonapi.apiary.io)

I’m very curious what other people are using though. Maybe we could at a list of “Projects using JSON API” on the website? We are still very new to JSON API, and I’m sure we have tons of issues in our spec, and learning from others is always a great way to get better at it.
