apidoc /apidoc

RESTful web API Documentation Generator.

★ 9,639⑂ 1,618
JavaScriptCreated 2013-04-20apidocjs.com
9,639
stars
+-1+-2+-7
1,618
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

Important note

This project is currently not active maintained!
See discussion https://github.com/apidoc/apidoc/issues/1436

 apiDoc

apiDoc creates a documentation from API descriptions in your source code.

!validate



 Documentation: apidocjs.com

 Live DEMO

 Installation

bash
$ npm install -g apidoc


 Usage

Add some apidoc comments anywhere in your source code:

java
/
  @api {get} /user/:id Request User information
  @apiName GetUser
  @apiGroup User
 
  @apiParam {Number} id User's unique ID.
 
  @apiSuccess {String} firstname Firstname of the User.
  @apiSuccess {String} lastname  Lastname of the User.
 /


Now generate the documentation from src/ into doc/.

bash
$ apidoc -i src/ -o doc/


This repository contains and example folder from which you can generate a very complete documentation on an example api endpoint. It also contains best practice hints (in the footer.md file).

bash
$ git clone https://github.com/apidoc/apidoc && cd apidoc
$ npm install --prod
$ ./bin/apidoc -i example -o /tmp/doc
$ $BROWSER /tmp/doc


 Programmatic usage

You can generate the documentation programmatically:

ts
import path from 'path'
import { createDoc } from 'apidoc'

const doc = createDoc({
  src: path.resolve(__dirname, 'src'),
  dest: path.resolve(__dirname, 'doc'), // can be omitted if dryRun is true
  // if you don't want to generate the output files:
  dryRun: true,
  // if you don't want to see any log output:
  silent: true,
})

if (typeof doc !== 'boolean') {
  // Documentation was generated!
  console.log(doc.data) // the parsed api documentation object
  console.log(doc.project) // the project information
}


Install type definitions (see @types/apidoc):

bash
$ npm install -D @types/apidoc


 Docker image

You can use apidoc in Docker like this:

~~~bash
 first build the image after cloning this repository
docker build -t apidoc/apidoc .
 run it
docker run --rm -v $(pwd):/home/node/apidoc apidoc/apidoc -o outputdir -i inputdir
~~~

 Supported programming languages

  C, Go, Dart, Java, JavaScript, PHP, Scala (all DocStyle capable languages):

   javascript
   /
      This is a comment.
     /
   

  Clojure:

   clojure
   ;;;;
   ;; This is a comment.
   ;;;;
   

  CoffeeScript:

   coffeescript
   
   This is a comment.
   
   

  Elixir:

   elixir
   {
    This is a comment.
   }
   

  Erlang:

   erlang
   %{
   % This is a comment.
   %}
   

  Perl

   perl
   
    This is a comment.
   
   

   perl
   =pod
   This is a comment.
   =cut
   

  Python

   python
   """
   This is a comment.
   """
   

  Ruby

   ruby
   =begin
   This is a comment.
   =end
   

 Plugins (extend apiDoc)

apiDoc will auto include installed plugins.

  apidoc-plugin-schema Generates and inject apidoc elements from api schemas. npm install apidoc-plugin-schema

For details and an example on how to implement your own plugin, please view apidoc-plugin-test.

 Support

Please create a new issue if you have a suggestion/question or if you found a p

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON