Outline Events API
`Events` represent an artifact of an action. Whether it is creating a user, editing a document, changing permissions, or any other action – an event is created that can be used as an audit trail or activity stream.
`Events` represent an artifact of an action. Whether it is creating a user, editing a document, changing permissions, or any other action – an event is created that can be used as an audit trail or activity stream.
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-events-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 Events 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: Events
description: '`Events` represent an artifact of an action. Whether it is creating a user,
editing a document, changing permissions, or any other action – an event
is created that can be used as an audit trail or activity stream.'
paths:
/events.list:
post:
tags:
- Events
summary: List all events
description: Events are an audit trail of important events that happen in the knowledge base.
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Pagination'
- $ref: '#/components/schemas/Sorting'
- type: object
properties:
name:
type: string
description: Filter to a specific event, e.g. "collections.create". Event names are in the format "objects.verb"
actorId:
type: string
format: uuid
description: Filter to events performed by the selected user
documentId:
type: string
format: uuid
description: Filter to events performed in the selected document
collectionId:
type: string
format: uuid
description: Filter to events performed in the selected collection
auditLog:
type: boolean
description: Whether to return detailed events suitable for an audit log. Without this flag less detailed event types will be returned.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Event'
pagination:
$ref: '#/components/schemas/Pagination'
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
operationId: eventsList
components:
schemas:
Pagination:
type: object
properties:
offset:
type: number
example: 0
limit:
type: number
example: 25
Event:
type: object
properties:
id:
type: string
description: Unique identifier for the object.
readOnly: true
format: uuid
name:
type: string
example: documents.create
readOnly: true
modelId:
type: string
description: Identifier for the object this event is associated with when it is not one of document, collection, or user.
format: uuid
readOnly: true
userId:
type: string
description: Identifier for the user associated with the event, if any.
format: uuid
readOnly: true
actorId:
type: string
description: The user that performed the action.
format: uuid
readOnly: true
actorIpAddress:
type: string
description: The ip address the action was performed from. This field is only returned when the `auditLog` boolean is true.
example: 60.169.88.100
readOnly: true
collectionId:
type: string
format: uuid
description: Identifier for the associated collection, if any
readOnly: true
documentId:
type: string
format: uuid
description: Identifier for the associated document, if any
readOnly: true
createdAt:
type: string
description: The date and time that this event was created
readOnly: true
format: date-time
data:
type: object
example:
name: Equipment list
description: Additional unstructured data associated with the event
readOnly: true
changes:
type:
- object
- 'null'
description: The set of changes made by this event. This field is only returned when the `auditLog` boolean is true.
readOnly: true
actor:
$ref: '#/components/schemas/User'
Sorting:
type: object
properties:
sort:
type: string
example: updatedAt
direction:
type: string
example: DESC
enum:
- ASC
- DESC
Error:
type: object
properties:
ok:
type: boolean
example: false
error:
type: string
message:
type: string
status:
type: number
data:
type: object
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
responses:
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
Unauthenticated:
description: The API key is missing or otherwise invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: The current API key is not authorized to perform this action.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
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.
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