node package manager


Build Status


This code is not production ready. Pilotfish developers are practicing README driven development, so this documentation is being written before the code is actually done. :) If the project interests you and you would like to be notified when the first release is ready, let us know. TODO: Link to newsletter signup.


This is the API for the pilotfish user experience platform, that supports any plugins that require a server side component. It also supports the pilotfish-console, which is a thick client frontend for all the data in this api.

Pilotfish has a platform-as-a-service that runs at (recommended), and it runs this code in a reliable, scalable environment. If you would like to run the API in your own environment, see Running the API on your own.

Using the API

Quick examples

For full examples, see the tests or the documentation

Entry points

Scribbled quickly, to paint a picture of what kinds of things we might support:

  • /api/v1/publisher
    • basic info
    • config for what modules they want enabled (input via the)
  • /api/v1/events (everything you would need to support Mix Panel or Kiss Metrics)
    • clicks
    • views
    • enter
    • exit
    • login
    • error
    • register
    • custom defined
      • events
      • events with arbitrary data
      • goals/success/failure (for funnel analysis)
  • /api/v1/events/query - get stats back on the above
  • /api/v1/user
    • store arbitrary key / values for that user - publisher can do whatever they want with it to personalize data.
    • user auth
    • Singly?
  • /api/v1/plugins/sendFeedback
  • /api/v1/plugins/surveys
  • /api/v1/plugins/ratings
    • set
    • get
  • /api/v1/plugins/captcha
  • /api/v1/plugins/jslog (capture javascript errors)


Oauth2 and API key?

Running the API on your own


  • node >= 0.8?


git clone 
cd pilotfish-api
npm install


It's recommended that you run this with a watchdog service such as forever or supervisord.


There is a full test harness that exercises all of the functionality of the API. npm test will start the server, issue http requests, and check the results for the expected behavior. These tests will be run upon every commit with travis-ci (see build status icon at the top)

More information

  • The docs
  • Google Group
  • File issues on github