Outline Auth API
`Auth` represents the current API Keys authentication details. It can be used to check that a token is still valid and load the IDs for the current user and workspace.
`Auth` represents the current API Keys authentication details. It can be used to check that a token is still valid and load the IDs for the current user and workspace.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/outline-auth-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Outline Auth API
description: '# Introduction
The Outline API is structured in an RPC style.'
version: 0.1.0
contact:
email: hello@getoutline.com
license:
name: BSD-3-Clause
url: https://github.com/outline/openapi/blob/main/LICENSE
servers:
- url: https://app.getoutline.com/api
description: Cloud hosted
- url: https://{domain}/api
description: Self-hosted on your own server
variables:
domain:
default: example.com
security:
- BearerAuth: []
- OAuth2:
- read
- write
tags:
- name: Auth
description: '`Auth` represents the current API Keys authentication details. It can be
used to check that a token is still valid and load the IDs for the current
user and workspace.'
paths:
/auth.info:
post:
tags:
- Auth
summary: Retrieve auth
description: Retrieve authentication details for the current API key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Auth'
'401':
$ref: '#/components/responses/Unauthenticated'
'429':
$ref: '#/components/responses/RateLimited'
operationId: authInfo
/auth.config:
post:
tags:
- Auth
summary: Retrieve auth config
description: Retrieve authentication options
security: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
name:
type: string
example: Acme Inc
hostname:
type: string
example: acme-inc.getoutline.com
services:
type: array
items:
type: object
properties:
id:
type: string
example: slack
name:
type: string
example: Slack
authUrl:
type: string
example: https://acme-inc.getoutline.com/auth/slack
'429':
$ref: '#/components/responses/RateLimited'
operationId: authConfig
components:
schemas:
Auth:
type: object
properties:
user:
$ref: '#/components/schemas/User'
team:
$ref: '#/components/schemas/Team'
Error:
type: object
properties:
ok:
type: boolean
example: false
error:
type: string
message:
type: string
status:
type: number
data:
type: object
Team:
type: object
properties:
id:
type: string
description: Unique identifier for the object.
readOnly: true
format: uuid
name:
type: string
description: The name of this workspace, it is usually auto-generated when the first SSO connection is made but can be changed if necessary.
description:
type:
- string
- 'null'
description: A short description of this workspace.
avatarUrl:
type: string
format: uri
description: The URL for the image associated with this workspace, it will be displayed in the workspace switcher and in the top left of the knowledge base along with the name.
sharing:
type: boolean
description: Whether this workspace has share links globally enabled. If this value is false then all sharing UI and APIs are disabled.
defaultCollectionId:
type: string
description: If set then the referenced collection is where users will be redirected to after signing in instead of the Home screen
format: uuid
defaultUserRole:
$ref: '#/components/schemas/UserRole'
memberCollectionCreate:
type: boolean
description: Whether members are allowed to create new collections. If false then only admins can create collections.
memberTeamCreate:
type: boolean
description: Whether members are allowed to create new groups. If false then only admins can create groups.
documentEmbeds:
type: boolean
description: Whether this workspace has embeds in documents globally enabled. It can be disabled to reduce potential data leakage to third parties.
inviteRequired:
type: boolean
description: Whether an invite is required to join this workspace, if false users may join with a linked SSO provider.
allowedDomains:
type: array
items:
type: string
description: A hostname that user emails are restricted to
guestSignin:
type: boolean
description: Whether this workspace has guest signin enabled. Guests can signin with an email address and are not required to have a Google Workspace/Slack SSO account once invited.
subdomain:
type: string
description: Represents the subdomain at which this workspace's knowledge base can be accessed.
domain:
type:
- string
- 'null'
description: The custom domain configured for this workspace, if any.
url:
type: string
description: The fully qualified URL at which this workspace's knowledge base can be accessed.
readOnly: true
format: uri
passkeysEnabled:
type: boolean
description: Whether passkey authentication is enabled for this workspace.
preferences:
type:
- object
- 'null'
description: Workspace-level preference flags.
guidanceMCP:
type:
- string
- 'null'
description: Guidance text provided to MCP integrations.
UserRole:
type: string
enum:
- admin
- member
- viewer
- guest
User:
type: object
properties:
id:
type: string
description: Unique identifier for the object.
readOnly: true
format: uuid
name:
type: string
description: The name of this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if necessary.
example: Jane Doe
avatarUrl:
type: string
format: uri
description: The URL for the image associated with this user, it will be displayed in the application UI and email notifications.
color:
type: string
description: A color representing the user, used in the UI for avatars without an image.
readOnly: true
email:
type: string
description: The email associated with this user, it is migrated from Slack or Google Workspace when the SSO connection is made but can be changed if necessary.
format: email
readOnly: true
role:
$ref: '#/components/schemas/UserRole'
isSuspended:
type: boolean
description: Whether this user has been suspended.
readOnly: true
lastActiveAt:
type:
- string
- 'null'
description: The last time this user made an API request, this value is updated at most every 5 minutes.
readOnly: true
format: date-time
timezone:
type:
- string
- 'null'
description: The timezone this user has registered.
createdAt:
type: string
description: The date and time that this user first signed in or was invited as a guest.
readOnly: true
format: date-time
updatedAt:
type: string
description: The date and time that this user was last updated.
readOnly: true
format: date-time
deletedAt:
type:
- string
- 'null'
description: The date and time that this user was deleted, if applicable.
readOnly: true
format: date-time
headers:
RateLimit-Limit:
schema:
type: integer
description: The maximum requests available in the current duration.
Retry-After:
schema:
type: integer
description: Seconds in the future to retry the request, if rate limited.
RateLimit-Reset:
schema:
type: string
description: Timestamp in the future the duration will reset.
RateLimit-Remaining:
schema:
type: integer
description: How many requests are left in the current duration.
responses:
Unauthenticated:
description: The API key is missing or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimited:
description: The request was rate limited.
headers:
Retry-After:
$ref: '#/components/headers/Retry-After'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: false
error:
type: string
example: rate_limit_exceeded
status:
type: number
example: 429
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://app.getoutline.com/oauth/authorize
tokenUrl: https://app.getoutline.com/oauth/token
refreshUrl: https://app.getoutline.com/oauth/token
scopes:
read: Read access
write: Write access