Outline DataAttributes API
`DataAttributes` represent custom metadata fields that can be attached to documents. They allow workspaces to add structured data like status, priority, or any other custom properties to their documents.
`DataAttributes` represent custom metadata fields that can be attached to documents. They allow workspaces to add structured data like status, priority, or any other custom properties to their documents.
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-dataattributes-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 Data Attributes 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: DataAttributes
description: '`DataAttributes` represent custom metadata fields that can be attached to
documents. They allow workspaces to add structured data like status, priority,
or any other custom properties to their documents.'
paths:
/dataAttributes.info:
post:
x-badges:
- name: Business
- name: Enterprise
tags:
- DataAttributes
summary: Retrieve a data attribute
description: Retrieve a data attribute by its unique identifier.
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier for the data attribute.
format: uuid
required:
- id
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/DataAttribute'
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: dataAttributesInfo
/dataAttributes.list:
post:
x-badges:
- name: Business
- name: Enterprise
tags:
- DataAttributes
summary: List all data attributes
description: List all data attributes.
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Pagination'
- $ref: '#/components/schemas/Sorting'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/DataAttribute'
pagination:
$ref: '#/components/schemas/Pagination'
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
operationId: dataAttributesList
/dataAttributes.create:
post:
x-badges:
- name: Business
- name: Enterprise
tags:
- DataAttributes
summary: Create a data attribute
description: Create a new data attribute. Only admins can create data attributes.
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the data attribute.
example: Status
description:
type: string
description: Description of the data attribute.
example: The current status of the document.
dataType:
$ref: '#/components/schemas/DataAttributeDataType'
options:
$ref: '#/components/schemas/DataAttributeOptions'
pinned:
type: boolean
description: Whether the data attribute is pinned to the top of document.
default: false
required:
- name
- dataType
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/DataAttribute'
policies:
type: array
items:
$ref: '#/components/schemas/Policy'
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
operationId: dataAttributesCreate
/dataAttributes.update:
post:
x-badges:
- name: Business
- name: Enterprise
tags:
- DataAttributes
summary: Update a data attribute
description: Update an existing data attribute. Only admins can update data attributes. Note that the dataType cannot be changed after creation.
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier for the data attribute.
format: uuid
name:
type: string
description: Name of the data attribute.
example: Status
description:
type: string
description: Description of the data attribute.
options:
$ref: '#/components/schemas/DataAttributeOptions'
pinned:
type: boolean
description: Whether the data attribute is pinned to the top of document.
required:
- id
- name
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/DataAttribute'
policies:
type: array
items:
$ref: '#/components/schemas/Policy'
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: dataAttributesUpdate
/dataAttributes.delete:
post:
x-badges:
- name: Business
- name: Enterprise
tags:
- DataAttributes
summary: Delete a data attribute
description: Delete a data attribute. Only admins can delete data attributes.
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier for the data attribute.
format: uuid
required:
- id
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
'401':
$ref: '#/components/responses/Unauthenticated'
'403':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
operationId: dataAttributesDelete
components:
schemas:
Pagination:
type: object
properties:
offset:
type: number
example: 0
limit:
type: number
example: 25
DataAttributeDataType:
type: string
description: The data type of the attribute value.
enum:
- string
- number
- boolean
- list
DataAttribute:
type: object
properties:
id:
type: string
description: Unique identifier for the object.
readOnly: true
format: uuid
name:
type: string
description: The name of this data attribute.
example: Status
description:
type: string
description: A description of the data attribute.
example: The current status of the document.
dataType:
$ref: '#/components/schemas/DataAttributeDataType'
options:
$ref: '#/components/schemas/DataAttributeOptions'
pinned:
type: boolean
description: Whether this data attribute is pinned to the top of documents.
default: false
createdAt:
type: string
description: The date and time that this object was created
readOnly: true
format: date-time
updatedAt:
type: string
description: The date and time that this object was last changed
readOnly: true
format: date-time
deletedAt:
type:
- string
- 'null'
description: The date and time that this object was deleted
readOnly: true
format: date-time
Ability:
description: A single permission granted by a policy
example: true
oneOf:
- type: array
items:
type: string
- type: boolean
Sorting:
type: object
properties:
sort:
type: string
example: updatedAt
direction:
type: string
example: DESC
enum:
- ASC
- DESC
Policy:
type: object
properties:
id:
type: string
description: Unique identifier for the object this policy references.
format: uuid
readOnly: true
abilities:
type: object
description: The abilities that are allowed by this policy, if an array is returned then the individual ID's in the array represent the memberships that grant the ability.
additionalProperties:
$ref: '#/components/schemas/Ability'
example:
read: true
update: true
delete: false
Error:
type: object
properties:
ok:
type: boolean
example: false
error:
type: string
message:
type: string
status:
type: number
data:
type: object
DataAttributeOptions:
type: object
description: Additional options for certain data attribute types.
properties:
icon:
type: string
description: An icon representing the data attribute from the outline-icons package.
options:
type: array
description: Valid options for list data type.
items:
type: object
properties:
value:
type: string
description: The label/value of the option.
color:
type: string
description: Optional color for the option.
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'
NotFound:
description: The specified resource was not found.
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