databases
add-permissions
Add database permissions
Adds or replaces direct content permissions for the specified principals on a database. Permissions for other principals are preserved; use PUT to replace all permissions at once.
A principal can hold only one read or update permission. Adding read for a principal that currently has update downgrades that principal to read; adding update upgrades them. If the same request contains both operations for a principal, update takes precedence.
Reasserting a principal's existing permission is idempotent and returns a successful response without creating a duplicate entry.
Permissions required: Permission to edit the database or administer the space.
POST /databases/{id}/permissions
| Flag | Type | Required | Description |
|---|---|---|---|
--allow-self-lockout | string | No | If false (default), the request is rejected when it would remove the calling user's own edit access. |
Set to true to allow the operation even when it locks out the caller. | |||
--body | string | No | request body (JSON string, @file, or - for stdin) |
--id | string | Yes | The ID of the database. |
Example:
cf databases add-permissions --id <id>create
Create database
Creates a database in the space.
Permissions required: Permission to view the corresponding space. Permission to create a database in the space.
POST /databases
| Flag | Type | Required | Description |
|---|---|---|---|
--body | string | No | request body (JSON string, @file, or - for stdin) |
--private | string | No | The database will be private. Only the user who creates this database will have permission to view and edit one. |
Example:
cf databases createcreate-property
Create content property for database
Creates a new content property for a database.
Permissions required: Permission to update the database.
POST /databases/{id}/properties
| Flag | Type | Required | Description |
|---|---|---|---|
--body | string | No | request body (JSON string, @file, or - for stdin) |
--id | string | Yes | The ID of the database to create a property for. |
Example:
cf databases create-property --id <id>delete
Delete database
Delete a database by id.
Deleting a database moves the database to the trash, where it can be restored later
Permissions required: Permission to view the database and its corresponding space. Permission to delete databases in the space.
DELETE /databases/{id}
| Flag | Type | Required | Description |
|---|---|---|---|
--id | string | Yes | The ID of the database to be deleted. |
Example:
cf databases delete --id <id>delete-permissions
Delete database permissions
Deletes direct content permissions from a database. See DELETE /pages/{id}/permissions for filter semantics.
Permissions required: Permission to edit the database or administer the space.
DELETE /databases/{id}/permissions
| Flag | Type | Required | Description |
|---|---|---|---|
--allow-self-lockout | string | No | If false (default), the request is rejected when it would remove the calling user's own edit access. |
Set to true to allow the operation even when it locks out the caller. | |||
--id | string | Yes | The ID of the database. |
--operation | string | No | Filter by operation. Must be provided together with principal-type and principal-id. |
--principal-id | string | No | Filter by principal ID. Must be provided together with principal-type. |
--principal-type | string | No | Filter by principal type. Must be provided together with principal-id. |
Example:
cf databases delete-permissions --id <id>delete-property-by-id
Delete content property for database by id
Deletes a content property for a database by its id.
Permissions required: Permission to edit the database.
DELETE /databases/{database-id}/properties/{property-id}
| Flag | Type | Required | Description |
|---|---|---|---|
--database-id | string | Yes | The ID of the database the property belongs to. |
--property-id | string | Yes | The ID of the property to be deleted. |
Example:
cf databases delete-property-by-id --database-id <database-id> --property-id <property-id>get-ancestors
Get all ancestors of database
Returns all ancestors for a given database by ID in top-to-bottom order (that is, the highest ancestor is the first item in the response payload). The number of results is limited by the limit parameter and additional results (if available) will be available by calling this endpoint with the ID of first ancestor in the response payload.
This endpoint returns minimal information about each ancestor. To fetch more details, use a related endpoint, such as Get database by id.
Permissions required: Permission to access the Confluence site ('Can use' global permission). Permission to view the database and its corresponding space
GET /databases/{id}/ancestors
| Flag | Type | Required | Description |
|---|---|---|---|
--id | string | Yes | The ID of the database. |
--limit | string | No | Maximum number of items per result to return. If more results exist, call the endpoint with the highest ancestor's ID to fetch the next set of results. |
Example:
cf databases get-ancestors --id <id>get-by-id
Get database by id
Returns a specific database.
Permissions required: Permission to view the database and its corresponding space.
GET /databases/{id}
| Flag | Type | Required | Description |
|---|---|---|---|
--id | string | Yes | The ID of the database to be returned |
--include-collaborators | string | No | Includes collaborators on the database. |
--include-direct-children | string | No | Includes direct children of the database, as defined in the ChildrenResponse object. |
--include-operations | string | No | Includes operations associated with this database in the response, as defined in the Operation object. |
| The number of results will be limited to 50 and sorted in the default sort order. | |||
A meta and _links property will be present to indicate if more results are available and a link to retrieve the rest of the results. | |||
--include-properties | string | No | Includes content properties associated with this database in the response. |
| The number of results will be limited to 50 and sorted in the default sort order. | |||
A meta and _links property will be present to indicate if more results are available and a link to retrieve the rest of the results. |
Example:
cf databases get-by-id --id <id>get-classification-level
Get database classification level
Returns the classification level for a specific database.
Permissions required: 'Permission to access the Confluence site ('Can use' global permission) and permission to view the database.
GET /databases/{id}/classification-level
| Flag | Type | Required | Description |
|---|---|---|---|
--id | string | Yes | The ID of the database for which classification level should be returned. |
Example:
cf databases get-classification-level --id <id>get-content-properties
Get content properties for database
Retrieves Content Properties tied to a specified database.
Permissions required: Permission to view the database.
GET /databases/{id}/properties
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Used for pagination, this opaque cursor will be returned in the next URL in the Link response header. Use the relative URL in the Link header to retrieve the next set of results. |
--id | string | Yes | The ID of the database for which content properties should be returned. |
--key | string | No | Filters the response to return a specific content property with matching key (case sensitive). |
--limit | string | No | Maximum number of attachments per result to return. If more results exist, use the Link header to retrieve a relative URL that will return the next set of results. |
--sort | string | No | Used to sort the result by a particular field. |
Example:
cf databases get-content-properties --id <id>get-content-properties-by-id
Get content property for database by id
Retrieves a specific Content Property by ID that is attached to a specified database.
Permissions required: Permission to view the database.
GET /databases/{database-id}/properties/{property-id}
| Flag | Type | Required | Description |
|---|---|---|---|
--database-id | string | Yes | The ID of the database for which content properties should be returned. |
--property-id | string | Yes | The ID of the content property being requested. |
Example:
cf databases get-content-properties-by-id --database-id <database-id> --property-id <property-id>get-descendants
Get descendants of a database
Returns descendants in the content tree for a given database by ID in top-to-bottom order (that is, the highest descendant is the first item in the response payload). The number of results is limited by the limit parameter and additional results (if available) will be available by calling this endpoint with the cursor in the response payload. There is also a depth parameter specifying depth of descendants to be fetched.
The following types of content will be returned:
- Database
- Embed
- Folder
- Page
- Whiteboard
This endpoint returns minimal information about each descendant. To fetch more details, use a related endpoint based on the content type, such as:
Permissions required: Permission to access the Confluence site ('Can use' global permission). Permission to view the database and its corresponding space
GET /databases/{id}/descendants
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Used for pagination, this opaque cursor will be returned in the next URL in the Link response header. Use the relative URL in the Link header to retrieve the next set of results. |
--depth | string | No | Maximum depth of descendants to return. If more results are required, use the endpoint corresponding to the content type of the deepest descendant to fetch more descendants. |
--id | string | Yes | The ID of the database. |
--limit | string | No | Maximum number of items per result to return. If more results exist, call the endpoint with the cursor to fetch the next set of results. |
Example:
cf databases get-descendants --id <id>get-direct-children
Get direct children of a database
Returns all children for given database id in the content tree. The number of results is limited by the limit parameter and additional results (if available) will be available through the next URL present in the Link response header.
The following types of content will be returned:
- Database
- Embed
- Folder
- Page
- Whiteboard
This endpoint returns minimal information about each child. To fetch more details, use a related endpoint based on the content type, such as:
Permissions required: Permission to access the Confluence site ('Can use' global permission). Only content that the user has permission to view will be returned.
GET /databases/{id}/direct-children
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Used for pagination, this opaque cursor will be returned in the next URL in the Link response header. Use the relative URL in the Link header to retrieve the next set of results. |
--id | string | Yes | The ID of the parent database. |
--limit | string | No | Maximum number of items per result to return. If more results exist, use the Link header to retrieve a relative URL that will return the next set of results. |
--sort | string | No | Used to sort the result by a particular field. |
Example:
cf databases get-direct-children --id <id>get-entries
Get entries for database
Returns the entries (rows) of a database, with optional filtering, sorting, and cursor-based pagination. Entry values are keyed by field ID; use Get fields for database (GET /databases/{id}/fields) to map field IDs to names.
Filtering is expressed with bracket-scoped query parameters keyed on field ID. The exact operators vary by field type and are documented on the filter parameter. Multiple filters are combined with AND. Unsupported operators and non-filterable fields return distinct structured 400 responses.
Pagination uses opaque, offset-based continuation tokens and is best effort while a database is changing. Concurrent inserts, deletes, or changes to a sort value can cause duplicate or omitted rows across pages. Restart from the first page when a consistent export is required.
Results are based on the database, not a particular view. A view's filters, sorting, grouping, and field visibility do not affect the response.
Consistency: Responses may not immediately reflect recent changes. Clients requiring read-after-write confirmation should poll with bounded backoff.
Experimental: This operation is experimental and may change in backwards-incompatible ways without notice.
Permissions required: Permission to view the database and its corresponding space.
GET /databases/{id}/entries
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Opaque, offset-based continuation token obtained from _links.next or the |
Link response header. A cursor is scoped to the database, collection | |||
| endpoint, filters, sort, and page size that produced it. Reusing a | |||
| well-formed cursor with any different query context returns | |||
CURSOR_QUERY_MISMATCH; malformed or structurally invalid cursors return | |||
INVALID_CURSOR, and a decoded but unsupported version returns | |||
UNSUPPORTED_CURSOR_VERSION. |
Cursor versions remain decodable for at least 24 hours, but the API does not promise TTL-expiration detection. Cursors are continuation state, not caller-scoped credentials, and authorization is re-evaluated on every request. Their query-context fingerprint is unsigned and must not be treated as authentication or tamper protection.
Pagination is best effort under concurrent mutation. Inserts, deletes, or changes to sort values can cause duplicate or omitted rows; restart from the first page when a consistent export is required. | | --filter | string | No | Filters entries by field value. Bracket-scoped on field ID, for example filter[fieldId]=value. The grammar forms are:
filter[fieldId]=value(implicit equality)filter[fieldId]=eq:value(explicit equality)filter[fieldId]=in:value1,value2filter[fieldId]=$emptyfilter[fieldId][gte\|lte\|gt\|lt]=value(date and number fields only)
The supported capability matrix is:
| Field type | Operators | | --- | --- | | text | eq, $empty | | number | eq, in, gte, lte, gt, lt, $empty | | checkbox | eq | | date | eq, gte, lte, gt, lt, $empty | | select | eq, in, $empty | | user, pageLink, jiraIssue, entryLink | eq, in, $empty | | attachment | $empty only | | all other field types | not filterable |
Bare equality and eq: use projected scalar identifiers; in: uses a comma-separated list of those identifiers. Text and reference-field values remain strings even when they resemble booleans, null, numbers, operators, or sentinels. Checkbox accepts only boolean equality, and an unset checkbox is treated as false. Date values must match the field's includesTime mode: YYYY-MM-DD for a date-only field, or an offset-bearing datetime for a datetime field. Number values are canonical finite decimals.
An initial <prefix>: is operator-like only when the colon is not immediately followed by /, so a URL such as https://example.com is an ordinary bare literal. A recognized leading eq: or in: selects that operator; any unknown operator-like prefix is an unsupported operator. Use explicit equality to escape a literal containing such a prefix, for example eq:foo:bar. A leading $ is reserved for sentinels: $empty is accepted only where the matrix lists it, while eq:$value compares the literal string $value. An unknown bare $... value returns INVALID_FILTER. The in: syntax treats every comma as a value delimiter and provides no escaping for commas within a member. Use equality for a single comma-bearing literal; such a literal cannot be included as one member of a multi-value in: expression. An unknown operator, or an operator unsupported by the referenced field type, returns UNSUPPORTED_FILTER_OPERATOR. A field type with no filtering support returns FIELD_NOT_FILTERABLE.
Note: This two-level nesting pattern is not represented portably across OpenAPI generators. Consumers may need to construct the bracket-scoped parameter names explicitly. | | --id | string | Yes | The Confluence content ID of the database, represented as an ASCII decimal-digit string. | | --limit | string | No | Maximum number of results to return. The value must be a positive integer without a sign, decimal point, or leading zero. The default is 50 and the maximum is 250. | | --sort | string | No | Used to sort the result by a single field ID. Prefix the field ID with - to sort in descending order. Text, number, checkbox, date, select, and hyperlink fields are sortable. Other field types return FIELD_NOT_SORTABLE. The fieldId:modifier form is reserved and returns UNSUPPORTED_SORT_MODIFIER.
Empty values sort after non-empty values in both directions. Text uses the projected plain value and fixed, locale-independent en-US collation with numeric comparison and upper-case before lower-case. Numbers compare numerically, checkboxes order false before true, and select values use configured option order. Date-only values compare chronologically; datetime values compare as absolute UTC instants. For hyperlinks, each link's key is its non-empty label or, when the label is absent or empty, its URL. A multi-link value uses the minimum link key under the same fixed string collation. AI Summary and all dependency-backed field types are not sortable. |
Example:
cf databases get-entries --id <id>get-entry-by-id
Get entry by id
Returns a single entry (row) from a database by ID.
Consistency: Responses may not immediately reflect recent changes. Clients requiring read-after-write confirmation should poll with bounded backoff.
Experimental: This operation is experimental and may change in backwards-incompatible ways without notice.
Permissions required: Permission to view the database and its corresponding space.
GET /databases/{id}/entries/{entryId}
| Flag | Type | Required | Description |
|---|---|---|---|
--entryId | string | Yes | The ID of the entry to be returned. |
--id | string | Yes | The Confluence content ID of the database, represented as an ASCII decimal-digit string. |
Example:
cf databases get-entry-by-id --entryId <entryId> --id <id>get-fields
Get fields for database
Returns the field definitions (schema) for a database, ordered by the user-defined column order, using cursor-based pagination.
Consistency: Responses may not immediately reflect recent changes. Clients requiring read-after-write confirmation should poll with bounded backoff.
Experimental: This operation is experimental and may change in backwards-incompatible ways without notice.
Permissions required: Permission to view the database and its corresponding space.
GET /databases/{id}/fields
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Opaque, offset-based continuation token obtained from _links.next or the |
Link response header. A cursor is scoped to the database, collection | |||
| endpoint, filters, sort, and page size that produced it. Reusing a | |||
| well-formed cursor with any different query context returns | |||
CURSOR_QUERY_MISMATCH; malformed or structurally invalid cursors return | |||
INVALID_CURSOR, and a decoded but unsupported version returns | |||
UNSUPPORTED_CURSOR_VERSION. |
Cursor versions remain decodable for at least 24 hours, but the API does not promise TTL-expiration detection. Cursors are continuation state, not caller-scoped credentials, and authorization is re-evaluated on every request. Their query-context fingerprint is unsigned and must not be treated as authentication or tamper protection.
Pagination is best effort under concurrent mutation. Inserts, deletes, or changes to sort values can cause duplicate or omitted rows; restart from the first page when a consistent export is required. | | --id | string | Yes | The Confluence content ID of the database, represented as an ASCII decimal-digit string. | | --limit | string | No | Maximum number of results to return. The value must be a positive integer without a sign, decimal point, or leading zero. The default is 50 and the maximum is 250. |
Example:
cf databases get-fields --id <id>get-operations
Get permitted operations for a database
Returns the permitted operations on specific database.
Permissions required: Permission to view the database and its corresponding space.
GET /databases/{id}/operations
| Flag | Type | Required | Description |
|---|---|---|---|
--id | string | Yes | The ID of the database for which operations should be returned. |
Example:
cf databases get-operations --id <id>get-permissions
Get database permissions
Returns the direct content permissions on a database with optional filtering. Results are cursor-paginated (max 250 per page).
Permissions required: Permission to view the database.
GET /databases/{id}/permissions
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Opaque cursor for pagination. Use the value from the previous response's _links.next. |
--id | string | Yes | The ID of the database. |
--limit | string | No | Maximum number of permission entries to return. Must be between 1 and 250. |
--operation | string | No | Filter by operation (read or update). |
--principal-id | string | No | Filter by principal ID. Must be provided together with principal-type. |
--principal-type | string | No | Filter by principal type (user or group). May be used without principal-id to return all permissions for that type. |
Example:
cf databases get-permissions --id <id>get-restriction-state
Get database restriction state
Returns the restriction state of a database.
Permissions required: Permission to view the database.
GET /databases/{id}/restriction-state
| Flag | Type | Required | Description |
|---|---|---|---|
--id | string | Yes | The ID of the database. |
Example:
cf databases get-restriction-state --id <id>get-views
Get views for database
Returns the views defined on a database using cursor-based pagination. Only view IDs, names, and types are returned; view configuration is not exposed.
Consistency: Responses may not immediately reflect recent changes. Clients requiring read-after-write confirmation should poll with bounded backoff.
Experimental: This operation is experimental and may change in backwards-incompatible ways without notice.
Permissions required: Permission to view the database and its corresponding space.
GET /databases/{id}/views
| Flag | Type | Required | Description |
|---|---|---|---|
--cursor | string | No | Opaque, offset-based continuation token obtained from _links.next or the |
Link response header. A cursor is scoped to the database, collection | |||
| endpoint, filters, sort, and page size that produced it. Reusing a | |||
| well-formed cursor with any different query context returns | |||
CURSOR_QUERY_MISMATCH; malformed or structurally invalid cursors return | |||
INVALID_CURSOR, and a decoded but unsupported version returns | |||
UNSUPPORTED_CURSOR_VERSION. |
Cursor versions remain decodable for at least 24 hours, but the API does not promise TTL-expiration detection. Cursors are continuation state, not caller-scoped credentials, and authorization is re-evaluated on every request. Their query-context fingerprint is unsigned and must not be treated as authentication or tamper protection.
Pagination is best effort under concurrent mutation. Inserts, deletes, or changes to sort values can cause duplicate or omitted rows; restart from the first page when a consistent export is required. | | --id | string | Yes | The Confluence content ID of the database, represented as an ASCII decimal-digit string. | | --limit | string | No | Maximum number of results to return. The value must be a positive integer without a sign, decimal point, or leading zero. The default is 50 and the maximum is 250. |
Example:
cf databases get-views --id <id>post-classification-level
Reset database classification level
Resets the classification level for a specific database for the space default classification level.
Permissions required: 'Permission to access the Confluence site ('Can use' global permission) and permission to view the database.
POST /databases/{id}/classification-level/reset
| Flag | Type | Required | Description |
|---|---|---|---|
--body | string | No | request body (JSON string, @file, or - for stdin) |
--id | string | Yes | The ID of the database for which classification level should be updated. |
Example:
cf databases post-classification-level --id <id>put-classification-level
Update database classification level
Updates the classification level for a specific database.
Permissions required: 'Permission to access the Confluence site ('Can use' global permission) and permission to edit the database.
PUT /databases/{id}/classification-level
| Flag | Type | Required | Description |
|---|---|---|---|
--body | string | No | request body (JSON string, @file, or - for stdin) |
--id | string | Yes | The ID of the database for which classification level should be updated. |
Example:
cf databases put-classification-level --id <id>set-permissions
Set database permissions
Replaces all direct content permissions on a database with the provided set.
Permissions required: Permission to edit the database or administer the space.
PUT /databases/{id}/permissions
| Flag | Type | Required | Description |
|---|---|---|---|
--allow-self-lockout | string | No | If false (default), the request is rejected when it would remove the calling user's own edit access. |
Set to true to allow the operation even when it locks out the caller. | |||
--body | string | No | request body (JSON string, @file, or - for stdin) |
--id | string | Yes | The ID of the database. |
Example:
cf databases set-permissions --id <id>set-restriction-state
Set database restriction state
Sets the restriction state of a database.
Permissions required: Permission to edit the database or administer the space.
PUT /databases/{id}/restriction-state
| Flag | Type | Required | Description |
|---|---|---|---|
--allow-self-lockout | string | No | If false (default), the request is rejected when it would remove the calling user's own edit access. |
Set to true to allow the operation even when it locks out the caller. | |||
--body | string | No | request body (JSON string, @file, or - for stdin) |
--id | string | Yes | The ID of the database. |
Example:
cf databases set-restriction-state --id <id>update-property-by-id
Update content property for database by id
Update a content property for a database by its id.
Permissions required: Permission to edit the database.
PUT /databases/{database-id}/properties/{property-id}
| Flag | Type | Required | Description |
|---|---|---|---|
--body | string | No | request body (JSON string, @file, or - for stdin) |
--database-id | string | Yes | The ID of the database the property belongs to. |
--property-id | string | Yes | The ID of the property to be updated. |
Example:
cf databases update-property-by-id --database-id <database-id> --property-id <property-id>