diff --git a/server/pages/Api.js b/server/pages/Api.js
index 023153c41..e3cb48c52 100644
--- a/server/pages/Api.js
+++ b/server/pages/Api.js
@@ -2,38 +2,92 @@
import React from 'react';
import Grid from 'styled-components-grid';
import { Helmet } from 'react-helmet';
+import styled from 'styled-components';
+
+const Container = styled.div`
+ max-width: 720px;
+ margin: 0 auto;
+
+ pre {
+ padding: 0.5em 1em;
+ background: #f9fbfc;
+ border-radius: 4px;
+ border: 1px solid #e8ebed;
+ overflow: scroll;
+ }
+
+ code {
+ font-size: 15px;
+ }
+
+ table {
+ border-collapse: collapse;
+
+ thead {
+ td {
+ padding: 5px 12px 5px 0;
+ border-bottom: 1px solid #ddd;
+ vertical-align: bottom;
+ font-weight: 500;
+ }
+ }
+
+ tbody,
+ thead {
+ td {
+ padding: 5px 12px 5px 0;
+ }
+
+ td:last-child {
+ width: 100%;
+ padding-right: 0;
+ }
+ }
+ }
+
+ h3 {
+ code {
+ font-size: 1.08em;
+ }
+ }
+`;
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.
+ 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.
+ 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
@@ -41,8 +95,7 @@ export default function Pricing() {
- 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 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.
+ 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
- This method returns information for a document with a specific ID. Following
- identifiers are allowed:
+ This method returns information for a document with a specific ID.
+ Following identifiers are allowed:
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.
+ Outline's API follows simple RPC style conventions where each API
+ endpoint is a method on{' '}
+ 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:
+ For 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
+ {`curl https://www.getoutline.com/api/documents.info
-X POST
-H 'authorization: Bearer API_KEY'
-H 'content-type: application/json'
@@ -57,8 +110,7 @@ curl https://www.getoutline.com/api/documents.info
@@ -66,36 +118,38 @@ curl https://www.getoutline.com/api/documents.info?id=outline-api-NTpezNwhUP&tok
- {`
-curl https://www.getoutline.com/api/documents.info?id=outline-api-NTpezNwhUP&token=API_KEY
+ {`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.
+ 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.
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:
+ 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"
}
@@ -116,59 +170,90 @@ curl https://www.getoutline.com/api/documents.info?id=outline-api-NTpezNwhUP&tok
-
outline-api-i48ZEZc5zjXndcP)
+ UUID - id field of the document
+ outline-api-i48ZEZc5zjXndcP)
parentDocument to set parent document.
+ This method allows you to publish a new document under an existing
+ collection. By default a document is set to the parent collection
+ root. If you want to create a subdocument, you can pass{' '}
+ parentDocument to set parent document.
ID of the collection to which the document is created
+ ID of the collection to which the document is
+ created
}
required
/>
-
{props.method} - {props.label}
{`${process.env.URL}/api/${props.method}`}
{props.children}
; -const Arguments = (props: { children: React.Element<*> }) => ( +const Description = (props: { children: React.Element<*> }) => ( +{props.children}
+); + +type ArgumentsProps = { + pagination?: boolean, + children?: React.Element<*> | string, +}; + +const Arguments = (props: ArgumentsProps) => ({props.id}
+