diff --git a/package.json b/package.json
index 22f42910..1a062f37 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"NODE_ENV=production webpack --config webpack.config.prod.js --json | webpack-bundle-size-analyzer",
"build": "npm run clean && npm run build:webpack",
"start": "NODE_ENV=production node index.js",
- "dev": "NODE_ENV=development nodemon --inspect --watch server index.js",
+ "dev": "NODE_ENV=development nodemon --watch server index.js",
"lint": "npm run lint:flow && npm run lint:js",
"lint:js": "eslint app",
"lint:flow": "flow",
diff --git a/server/pages/Api.js b/server/pages/Api.js
new file mode 100644
index 00000000..f5b580e0
--- /dev/null
+++ b/server/pages/Api.js
@@ -0,0 +1,200 @@
+// @flow
+import React from 'react';
+import Grid from 'styled-components-grid';
+import { Helmet } from 'react-helmet';
+import Flex from '../../shared/components/Flex';
+
+export default function Pricing() {
+ return (
+
+ First thing we build for Outline was its API. It's the heart and sole of the service and
+ as developers, it's our mission to make the API as rich and easy to use as possible.
+
+
+ While Outline is still in public beta, we might make small adjustments, including
+ breaking changes to the API.
+
+
+ Outline's API follows simple RPC style conventions where each API endpoint is a method on{' '}
+
+ For
+ Example POST request:
+
+ 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 (
+ 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 Outline API
+ Making requests
+ https://www.getoutline.com/api/<METHOD>
. Both GET
and{' '}
+ POST
methods are supported but it's recommeded that you make all call using{' '}
+ POST
. Only HTTPS is supported in production.
+ GET
requests query string parameters are expected (e.g.
+ /api/document.info?id=...&token=...
). 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:
+
+
+
+
+ {`
+curl https://www.getoutline.com/api/documents.info
+ -X POST
+ -H 'authorization: Bearer API_KEY'
+ -H 'content-type: application/json'
+ -H 'accept: application/json'
+ -d '{"id": "outline-api-NTpezNwhUP"}'
+`}
+
+
+
+
+
+ {`
+curl https://www.getoutline.com/api/documents.info?id=outline-api-NTpezNwhUP&token=API_KEY
+`}
+
+ Authentication
+
+
+ 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.
+ Errors
+
+ 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"
+}
+`}
+
+ Methods
+
+
{props.method}
- {props.label}
+
+ {`${process.env.URL}/api/${props.method}`}
+
{props.children}
; +const Arguments = (props: { children: React.Element<*> }) => ( +Argument | +Required | +Description | +