openapi: 3.0.1 info: title: 'Atlassian wiki/rest/api/relation/' description: Needs description. termsOfService: https://atlassian.com/terms/ version: 1.0.0 externalDocs: description: The online and complete version of the Confluence Cloud REST API docs. url: https://developer.atlassian.com/cloud/confluence/rest/ servers: - url: //your-domain.atlassian.net tags: - name: Relation paths: /wiki/rest/api/relation/{relationName}/from/{sourceType}/{sourceKey}/to/{targetType}: get: tags: - Relation summary: Atlassian Find Target Entities Related To A Source Entity description: >- Returns all target entities that have a particular relationship to the
source entity. Note, relationships are one way.

For example, the following method finds all content that the current user
has an 'ignore' relationship with:
`GET /wiki/rest/api/relation/ignore/from/user/current/to/content`
Note, 'ignore' is an example custom relationship type.

**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:
Permission to view both the target entity and source entity. operationId: atlassianFindtargetfromsource parameters: - name: relationName in: path description: >- The name of the relationship. This method supports relationships created via [Create relationship](#api-wiki-rest-api-relation-relationname-from-sourcetype-sourcekey-to-targettype-targetkey-put). Note, this method does not support 'like' or 'favourite' relationships. required: true schema: type: string - name: sourceType in: path description: The source entity type of the relationship. required: true schema: type: string enum: - user - content - space - name: sourceKey in: path description: >- The identifier for the source entity: - If `sourceType` is `user`, then specify either `current` (logged-in user), the user key of the user, or the account ID of the user. Note that the user key has been deprecated in favor of the account ID for this parameter. See the [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/) for details. - If `sourceType` is 'content', then specify the content ID. - If `sourceType` is 'space', then specify the space key. required: true schema: type: string - name: targetType in: path description: The target entity type of the relationship. required: true schema: type: string enum: - user - content - space - name: sourceStatus in: query description: |- The status of the source. This parameter is only used when the `sourceType` is 'content'. schema: type: string - name: targetStatus in: query description: |- The status of the target. This parameter is only used when the `targetType` is 'content'. schema: type: string - name: sourceVersion in: query description: |- The version of the source. This parameter is only used when the `sourceType` is 'content' and the `sourceStatus` is 'historical'. schema: type: integer format: int32 - name: targetVersion in: query description: |- The version of the target. This parameter is only used when the `targetType` is 'content' and the `targetStatus` is 'historical'. schema: type: integer format: int32 - name: expand in: query description: |- A multi-value parameter indicating which properties of the response object to expand. - `relationData` returns information about the relationship, such as who created it and when it was created. - `source` returns the source entity. - `target` returns the target entity. style: form explode: false schema: type: array items: type: string enum: - relationData - source - target - name: start in: query description: The starting index of the returned relationships. schema: minimum: 0 type: integer format: int32 default: 0 - name: limit in: query description: |- The maximum number of relationships to return per page. Note, this may be restricted by fixed system limits. schema: minimum: 0 type: integer format: int32 default: 25 responses: '200': description: Returned if the requested relationships are returned. content: application/json: schema: $ref: '#/components/schemas/RelationArray' '400': description: Returned if the request is invalid. content: {} '403': description: |- Returned if the user does not have permission to view the relationships. content: {} '404': description: Returned if the target entity does not exist. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.summary x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.summary - scheme: oAuthDefinitions state: Beta scopes: - read:relation:confluence - read:content-details:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-connect-scope: READ /wiki/rest/api/relation/{relationName}/from/{sourceType}/{sourceKey}/to/{targetType}/{targetKey}: get: tags: - Relation summary: Atlassian Find Relationship From Source To Target description: >- Find whether a particular type of relationship exists from a source
entity to a target entity. Note, relationships are one way.

For example, you can use this method to find whether the current user has
selected a particular page as a favorite (i.e. 'save for later'):
`GET /wiki/rest/api/relation/favourite/from/user/current/to/content/123`

**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:
Permission to view both the target entity and source entity. operationId: atlassianGetrelationship parameters: - name: relationName in: path description: >- The name of the relationship. This method supports the 'favourite' (i.e. 'save for later') relationship as well as any other relationship types created via [Create relationship](#api-wiki-rest-api-relation-relationname-from-sourcetype-sourcekey-to-targettype-targetkey-put). required: true schema: type: string - name: sourceType in: path description: |- The source entity type of the relationship. This must be 'user', if the `relationName` is 'favourite'. required: true schema: type: string enum: - user - content - space - name: sourceKey in: path description: >- - The identifier for the source entity: - If `sourceType` is `user`, then specify either `current` (logged-in user), the user key of the user, or the account ID of the user. Note that the user key has been deprecated in favor of the account ID for this parameter. See the [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/) for details. - If `sourceType` is 'content', then specify the content ID. - If `sourceType` is 'space', then specify the space key. required: true schema: type: string - name: targetType in: path description: |- The target entity type of the relationship. This must be 'space' or 'content', if the `relationName` is 'favourite'. required: true schema: type: string enum: - user - content - space - name: targetKey in: path description: >- The identifier for the target entity: - If `targetType` is `user`, then specify either `current` (logged-in user), the user key of the user, or the account ID of the user. Note that the user key has been deprecated in favor of the account ID for this parameter. See the [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/) for details. - If `targetType` is 'content', then specify the content ID. - If `targetType` is 'space', then specify the space key. required: true schema: type: string - name: sourceStatus in: query description: |- The status of the source. This parameter is only used when the `sourceType` is 'content'. schema: type: string - name: targetStatus in: query description: |- The status of the target. This parameter is only used when the `targetType` is 'content'. schema: type: string - name: sourceVersion in: query description: |- The version of the source. This parameter is only used when the `sourceType` is 'content' and the `sourceStatus` is 'historical'. schema: type: integer format: int32 - name: targetVersion in: query description: |- The version of the target. This parameter is only used when the `targetType` is 'content' and the `targetStatus` is 'historical'. schema: type: integer format: int32 - name: expand in: query description: |- A multi-value parameter indicating which properties of the response object to expand. - `relationData` returns information about the relationship, such as who created it and when it was created. - `source` returns the source entity. - `target` returns the target entity. style: form explode: false schema: type: array items: type: string enum: - relationData - source - target responses: '200': description: Returned if the relationship exists. content: application/json: schema: $ref: '#/components/schemas/Relation' '400': description: Returned if the request is invalid. content: {} '401': description: |- Returned if the authentication credentials are incorrect or missing from the request. content: {} '403': description: |- Returned if the user does not have permission to view the relationship. content: {} '404': description: Returned if the relationship does not exist. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.summary x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.summary - scheme: oAuthDefinitions state: Beta scopes: - read:relation:confluence - read:content-details:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-connect-scope: READ put: tags: - Relation summary: Atlassian Create Relationship description: >- Creates a relationship between two entities (user, space, content). The
'favourite' relationship is supported by default, but you can use this method
to create any type of relationship between two entities.

For example, the following method creates a 'sibling' relationship between
two pieces of content:
`GET /wiki/rest/api/relation/sibling/from/content/123/to/content/456`

**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:
Permission to access the Confluence site ('Can use' global permission). operationId: atlassianCreaterelationship parameters: - name: relationName in: path description: |- The name of the relationship. This method supports the 'favourite' (i.e. 'save for later') relationship. You can also specify any other value for this parameter to create a custom relationship type. required: true schema: type: string - name: sourceType in: path description: |- The source entity type of the relationship. This must be 'user', if the `relationName` is 'favourite'. required: true schema: type: string enum: - user - content - space - name: sourceKey in: path description: >- - The identifier for the source entity: - If `sourceType` is 'user', then specify either 'current' (logged-in user) or the user key. - If `sourceType` is 'content', then specify the content ID. - If `sourceType` is 'space', then specify the space key. required: true schema: type: string - name: targetType in: path description: |- The target entity type of the relationship. This must be 'space' or 'content', if the `relationName` is 'favourite'. required: true schema: type: string enum: - user - content - space - name: targetKey in: path description: >- - The identifier for the target entity: - If `sourceType` is 'user', then specify either 'current' (logged-in user) or the user key. - If `sourceType` is 'content', then specify the content ID. - If `sourceType` is 'space', then specify the space key. required: true schema: type: string - name: sourceStatus in: query description: |- The status of the source. This parameter is only used when the `sourceType` is 'content'. schema: type: string - name: targetStatus in: query description: |- The status of the target. This parameter is only used when the `targetType` is 'content'. schema: type: string - name: sourceVersion in: query description: |- The version of the source. This parameter is only used when the `sourceType` is 'content' and the `sourceStatus` is 'historical'. schema: type: integer format: int32 - name: targetVersion in: query description: |- The version of the target. This parameter is only used when the `targetType` is 'content' and the `targetStatus` is 'historical'. schema: type: integer format: int32 responses: '200': description: Returned if the relationship is created. content: application/json: schema: $ref: '#/components/schemas/Relation' '400': description: Returned if the request is invalid. content: {} '401': description: |- Returned if the authentication credentials are incorrect or missing from the request. content: {} '403': description: Returned if the user does not have permission to use Confluence. content: {} '404': description: Returned if the user, space or content could not be found. content: {} security: - basicAuth: [] - oAuthDefinitions: - write:confluence-content x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - write:confluence-content - scheme: oAuthDefinitions state: Beta scopes: - read:relation:confluence - read:space:confluence - read:user:confluence - read:content:confluence - write:relation:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-connect-scope: WRITE delete: tags: - Relation summary: Atlassian Delete Relationship description: >- Deletes a relationship between two entities (user, space, content).

**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:
Permission to access the Confluence site ('Can use' global permission).
For favourite relationships, the current user can only delete their own
favourite relationships. A space administrator can delete favourite
relationships for any user. operationId: atlassianDeleterelationship parameters: - name: relationName in: path description: The name of the relationship. required: true schema: type: string - name: sourceType in: path description: |- The source entity type of the relationship. This must be 'user', if the `relationName` is 'favourite'. required: true schema: type: string enum: - user - content - space - name: sourceKey in: path description: >- - The identifier for the source entity: - If `sourceType` is 'user', then specify either 'current' (logged-in user) or the user key. - If `sourceType` is 'content', then specify the content ID. - If `sourceType` is 'space', then specify the space key. required: true schema: type: string - name: targetType in: path description: |- The target entity type of the relationship. This must be 'space' or 'content', if the `relationName` is 'favourite'. required: true schema: type: string enum: - user - content - space - name: targetKey in: path description: >- - The identifier for the target entity: - If `sourceType` is 'user', then specify either 'current' (logged-in user) or the user key. - If `sourceType` is 'content', then specify the content ID. - If `sourceType` is 'space', then specify the space key. required: true schema: type: string - name: sourceStatus in: query description: |- The status of the source. This parameter is only used when the `sourceType` is 'content'. schema: type: string - name: targetStatus in: query description: |- The status of the target. This parameter is only used when the `targetType` is 'content'. schema: type: string - name: sourceVersion in: query description: |- The version of the source. This parameter is only used when the `sourceType` is 'content' and the `sourceStatus` is 'historical'. schema: type: integer format: int32 - name: targetVersion in: query description: |- The version of the target. This parameter is only used when the `targetType` is 'content' and the `targetStatus` is 'historical'. schema: type: integer format: int32 responses: '204': description: |- Returned if the relationship is deleted or the relationship didn't exist. content: {} '400': description: Returned if the request is invalid. content: {} '401': description: |- Returned if the authentication credentials are incorrect or missing from the request. content: {} '403': description: |- Returned if the user does not have permission to delete the relationship. content: {} '404': description: Returned if the user, space or content could not be found. content: {} security: - basicAuth: [] - oAuthDefinitions: - write:confluence-content x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - write:confluence-content - scheme: oAuthDefinitions state: Beta scopes: - write:relation:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-connect-scope: WRITE /wiki/rest/api/relation/{relationName}/to/{targetType}/{targetKey}/from/{sourceType}: get: tags: - Relation summary: Atlassian Find Source Entities Related To A Target Entity description: >- Returns all target entities that have a particular relationship to the
source entity. Note, relationships are one way.

For example, the following method finds all users that have a 'collaborator'
relationship to a piece of content with an ID of '1234':
`GET /wiki/rest/api/relation/collaborator/to/content/1234/from/user`
Note, 'collaborator' is an example custom relationship type.

**[Permissions](https://confluence.atlassian.com/x/_AozKw) required**:
Permission to view both the target entity and source entity. operationId: atlassianFindsourcesfortarget parameters: - name: relationName in: path description: >- The name of the relationship. This method supports relationships created via [Create relationship](#api-wiki-rest-api-relation-relationname-from-sourcetype-sourcekey-to-targettype-targetkey-put). Note, this method does not support 'like' or 'favourite' relationships. required: true schema: type: string - name: sourceType in: path description: The source entity type of the relationship. required: true schema: type: string enum: - user - content - space - name: targetType in: path description: The target entity type of the relationship. required: true schema: type: string enum: - user - content - space - name: targetKey in: path description: >- The identifier for the target entity: - If `targetType` is `user`, then specify either `current` (logged-in user), the user key of the user, or the account ID of the user. Note that the user key has been deprecated in favor of the account ID for this parameter. See the [migration guide](https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/) for details. - If `targetType` is 'content', then specify the content ID. - If `targetType` is 'space', then specify the space key. required: true schema: type: string - name: sourceStatus in: query description: |- The status of the source. This parameter is only used when the `sourceType` is 'content'. schema: type: string - name: targetStatus in: query description: |- The status of the target. This parameter is only used when the `targetType` is 'content'. schema: type: string - name: sourceVersion in: query description: |- The version of the source. This parameter is only used when the `sourceType` is 'content' and the `sourceStatus` is 'historical'. schema: type: integer format: int32 - name: targetVersion in: query description: |- The version of the target. This parameter is only used when the `targetType` is 'content' and the `targetStatus` is 'historical'. schema: type: integer format: int32 - name: expand in: query description: |- A multi-value parameter indicating which properties of the response object to expand. - `relationData` returns information about the relationship, such as who created it and when it was created. - `source` returns the source entity. - `target` returns the target entity. style: form explode: false schema: type: array items: type: string enum: - relationData - source - target - name: start in: query description: The starting index of the returned relationships. schema: minimum: 0 type: integer format: int32 default: 0 - name: limit in: query description: |- The maximum number of relationships to return per page. Note, this may be restricted by fixed system limits. schema: minimum: 0 type: integer format: int32 default: 25 responses: '200': description: Returned if the requested relationships are returned. content: application/json: schema: $ref: '#/components/schemas/RelationArray' '400': description: Returned if the request is invalid. content: {} '403': description: |- Returned if the user does not have permission to view the relationship content: {} '404': description: Returned if the target entity does not exist. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.summary x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.summary - scheme: oAuthDefinitions state: Beta scopes: - read:relation:confluence - read:content-details:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: false x-atlassian-connect-scope: READ components: schemas: RelationArray: required: - _links - limit - results - size - start type: object properties: results: type: array items: $ref: '#/components/schemas/Relation' start: type: integer format: int32 limit: type: integer format: int32 size: type: integer format: int32 _links: $ref: '#/components/schemas/GenericLinks' Relation: required: - _links - name type: object properties: name: type: string relationData: $ref: '#/components/schemas/RelationData' source: oneOf: - $ref: '#/components/schemas/Content' - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/Space' target: oneOf: - $ref: '#/components/schemas/Content' - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/Space' _expandable: type: object properties: relationData: type: string source: type: string target: type: string _links: $ref: '#/components/schemas/GenericLinks' x-atlassian-narrative: documents: - title: About anchor: about body: >- This is the reference for the Confluence Cloud REST API. This API is the primary way to get and modify data in Confluence Cloud, whether you are developing an app or any other integration. Use it to interact with Confluence entities, like pages and blog posts, spaces, users, groups, and more. - title: Authentication and authorization anchor: auth body: >- **Authentication:** If you are building a Cloud app, authentication is implemented via JWT or OAuth 2.0, depending on what you are building (see [Security overview](https://developer.atlassian.com/cloud/confluence/security-overview/)). Otherwise, if you are authenticating directly against the REST API, the REST API supports basic auth (see [Basic auth for REST APIs](https://developer.atlassian.com/cloud/confluence/basic-auth-for-rest-apis/)). **Authorization:** If you are building a Cloud app, authorization can be implemented by [scopes](https://developer.atlassian.com/cloud/confluence/scopes/) or by [OAuth 2.0 user impersonation](https://developer.atlassian.com/cloud/confluence/oauth-2-jwt-bearer-tokens-for-apps). Otherwise, if you are making calls directly against the REST API, authorization is based on the user used in the authentication process. See [Security overview](https://developer.atlassian.com/cloud/confluence/security-overview/) for more details on authentication and authorization. - title: Status codes anchor: status-code body: >- The Confluence REST API uses the [standard HTTP status codes](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). Responses that return an error status code will also return a response body, similar to the following: ```json { "statusCode": 404, "data": { "authorized": false, "valid": false, "errors": [ { "message": { "translation": "This is an example error message.", "args": [] } } ], "successful": false }, "message": "This is an example error message." } ``` - title: Using the REST API anchor: using body: >- **Expansion:** The Confluence REST API uses resource expansion: some parts of a resource are not returned unless explicitly specified. This simplifies responses and minimizes network traffic. To expand part of a resource in a request, use the `expand` query parameter and specify the entities to be expanded. If you need to expand nested entities, use the `.` dot notation. For example, the following request will expand information about the requested content's space and labels: ``` GET /wiki/rest/api/content/{id}?expand=space,metadata.labels ``` **Pagination:** The Confluence REST API uses pagination: a method that returns a response with multiple objects can only return a limited number at one time. This limits the size of responses and conserves server resources. Use the 'limit' and 'start' query parameters to specify pagination: - `limit` is the number of objects to return per page. This may be restricted by system limits. - `start` is the index of the first item returned in the page of results. The base index is 0. For example, the following request will return ten content objects, starting from the fifth object. ``` GET /wiki/rest/api/content?start=4&limit=10 ``` **Special headers:** - `X-Atlassian-Token: no-check` request header must be specified for methods that are protected from Cross Site Request Forgery (XSRF/CSRF) attacks. This is stated in the method description, if required. For more information, see this [KB article](https://confluence.atlassian.com/cloudkb/xsrf-check-failed-when-calling-cloud-apis-826874382.html). - title: Capabilities anchor: capabilities body: >- **Webhooks:** A webhook is a user-defined callback over HTTP. You can use Confluence webhooks to notify your app or web application when certain events occur in Confluence. For example, when a page is created or updated. To learn more, see [Webhooks](https://developer.atlassian.com/cloud/confluence/modules/webhook/). **Content properties:** Content properties are a key-value storage associated with a piece of Confluence content. If you are building an app, this is one form of persistence that you can use. You can use the Confluence REST API to get, update, and delete content properties. To learn more, see [Content properties in the REST API](https://developer.atlassian.com/cloud/confluence/content-properties/). **CQL:** The Confluence Query Language (CQL) allows you to perform complex searches for content using an SQL-like syntax in the `search` resource. To learn more, see [Advanced searching using CQL](https://developer.atlassian.com/cloud/confluence/advanced-searching-using-cql/).