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.

Operations 2

POST /auth.info Retrieve auth #
POST /auth.config Retrieve auth config #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/outline-auth-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

outline-auth-api-openapi.yml Raw ↑
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