Outline is built on an open, best-in-class, API

As developers, it’s our mission to make the API as great as possible. While Outline is still in public beta, we might make small adjustments, including breaking changes to the API.

Making requests

Outline’s API follows simple RPC style conventions where each API endpoint is a method on<METHOD>. Both GET and POST methods are supported but it’s recommended that you make all calls using POST. Only HTTPS is supported in production.

For GET requests query string parameters are expected (e.g./api/ When making POST requests, request parameters are parsed depending on Content-Type header. To make a call using JSON payload, one must pass Content-Type: application/json header:

Example POST request:

  -H 'authorization: Bearer API_KEY'
  -H 'content-type: application/json'
  -H 'accept: application/json'
  -d '{"id": "outline-api-NTpezNwhUP"}'

Example GET request:



To access private API endpoints, you must provide a valid API key. You can create new API keys in your account settings. Be careful when handling your keys as they give access to all of your documents.

To authenticate with Outline API, you can supply the API key as a header (Authorization: Bearer YOUR_API_KEY) or as part of the payload using token parameter. If you’re making GET requests, header based authentication is recommended so that your keys don’t leak into logs.

Some API endpoints allow unauhenticated requests for public resources and they can be called without an API key.


All successful API requests will be returned with 200 status code and ok: true in the response payload. If there’s an error while making the request, appropriate status code is returned with the error message:

  "ok": false,
  "error: "Not Found"