API version: dev

---

# GET /\<uuid>/related — Get related

Endpoint returns all nodes directly connected to a given central node, as well as the relations between the central and
outer nodes, regardless of type.

In the following example the id of the `Center`-node is used in the `/<uuid>/related` endpoint, which will return the
following elements in the endpoint's response:

- the nodes `Parent`, `Child`, `Outer 1` and `Outer 2`
- both `OWNS`-relations
- both `RELATED`-relations

```json graph-example
[
  {"id":"center","type":"Data","data":{"name":"Center"}},
  {"id":"parent","type":"Data","data":{"name":"Parent"}},
  {"id":"child","type":"Data","data":{"name":"Child"}},
  {"id":"outer1","type":"Data","data":{"name":"Outer 1"}},
  {"id":"outer2","type":"Data","data":{"name":"Outer 2"}},
  {"id":"owns1","type":"OWNS","start":"parent","end":"center","data":{}},
  {"id":"owns2","type":"OWNS","start":"center","end":"child","data":{}},
  {"id":"related1","type":"RELATED","start":"outer1","end":"center","data":{}},
  {"id":"related2","type":"RELATED","start":"center","end":"outer2","data":{}}
]
```

As the get related endpoint returns all nodes and relations regardless of type, it means that it can be considered to be
a **superset** of the get children and get parents endpoint. However, as this endpoint returns _every_ element directly
connected, the overall number of elements can be way higher.\
Use the specialized get children and get parents endpoint in situations, where only the ownership relation is relevant.

## Request

```bash
curl \
  -H 'Authorization: Bearer secret-token:PIPeJGUt7c00ENn8a5uDlc' \
  https://api.example.com/74a8fcd9-6cb0-4b0d-8d42-0b6c3c54d1ac/related
```

## Response

### 200 · OK

Center element found and returning its related elements in a collection response.

#### Body

```json
{
  "type": "_PartialCollection",
  "id": "/45482998-274a-43d0-a466-f31d0b24cc0a/related",
  "totalNodes": 3,
  "links": {
    "first": "/45482998-274a-43d0-a466-f31d0b24cc0a/related",
    "previous": null,
    "next": null,
    "last": "/45482998-274a-43d0-a466-f31d0b24cc0a/related"
  },
  "nodes": [
    {
      "type": "Comment",
      "id": "251654a1-588e-4dc4-836f-b1e334d91aae",
      "data": {
        "created": "2025-09-27T10:39:51+00:00",
        "name": "Yellow",
        "updated": "2025-09-27T10:39:51+00:00",
        "content": "Yellow is the color between green and orange on the spectrum of light. It is evoked by light with a dominant wavelength of roughly 575–585 nm. It is a primary color in subtractive color systems, used in painting or color printing. In the RGB color model, used to create colors on television and computer screens, yellow is a secondary color made by combining red and green at equal intensity. Carotenoids give the characteristic yellow color to autumn leaves, corn, canaries, daffodils, and lemons, as well as egg yolks, buttercups, and bananas. They absorb light energy and protect plants from photo damage in some cases. Sunlight has a slight yellowish hue when the Sun is near the horizon, due to atmospheric scattering of shorter wavelengths (green, blue, and violet)."
      }
    },
    {
      "type": "Sphere",
      "id": "56fda20c-b238-4034-b555-1df47c47e17a",
      "data": {
        "created": "2025-09-27T10:39:51+00:00",
        "name": "Tag",
        "updated": "2025-09-27T10:39:51+00:00"
      }
    },
    {
      "type": "Comment",
      "id": "5bd2a18a-6d26-4fcd-99a7-9705794b63fc",
      "data": {
        "created": "2025-09-27T10:39:51+00:00",
        "name": "Additive color model",
        "updated": "2025-09-27T10:39:51+00:00",
        "content": "Additive color or additive mixing is a property of a color model that predicts the appearance of colors made by coincident component lights, i.e. the perceived color can be predicted by summing the numeric representations of the component colors. Modern formulations of Grassmann's laws describe the additivity in the color perception of light mixtures in terms of algebraic equations. Additive color predicts perception and not any sort of change in the photons of light themselves. These predictions are only applicable in the limited scope of color matching experiments where viewers match small patches of uniform color isolated against a grey or black background."
      }
    }
  ],
  "relations": [
    {
      "type": "HAS_TAG",
      "id": "39a3c287-89f1-494f-8d1d-725320ca2d1f",
      "start": "251654a1-588e-4dc4-836f-b1e334d91aae",
      "end": "45482998-274a-43d0-a466-f31d0b24cc0a",
      "data": {
        "created": "2025-09-27T10:39:58+00:00",
        "updated": "2025-09-27T10:39:58+00:00"
      }
    },
    {
      "type": "OWNS",
      "id": "bc1ba1ad-5866-4c23-a58e-15282994c72c",
      "start": "56fda20c-b238-4034-b555-1df47c47e17a",
      "end": "45482998-274a-43d0-a466-f31d0b24cc0a",
      "data": {
        "created": "2025-09-27T10:39:58+00:00",
        "updated": "2025-09-27T10:39:58+00:00"
      }
    },
    {
      "type": "HAS_TAG",
      "id": "e293d714-9dd3-4186-b0e5-c7531cf74baa",
      "start": "5bd2a18a-6d26-4fcd-99a7-9705794b63fc",
      "end": "45482998-274a-43d0-a466-f31d0b24cc0a",
      "data": {
        "created": "2025-09-27T10:39:58+00:00",
        "updated": "2025-09-27T10:39:58+00:00"
      }
    }
  ]
}
```

#### Headers

```http
Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method
Access-Control-Allow-Methods: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Location
Allow: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK
Cache-Control: no-cache, private
ETag: "YgbFC4u5EgC"
X-Powered-By: Ember Nexus API
```

#### Schema

```json
{
  "type": "object",
  "required": [
    "type",
    "id",
    "totalNodes",
    "links",
    "nodes",
    "relations"
  ],
  "properties": {
    "type": {
      "type": "string",
      "enum": "_PartialCollection"
    },
    "id": {
      "type": "string",
      "description": "URL of the current collection page."
    },
    "totalNodes": {
      "type": "integer"
    },
    "links": {
      "type": "object",
      "required": [
        "first",
        "previous",
        "next",
        "last"
      ],
      "properties": {
        "first": {
          "type": "string",
          "description": "URL to the collection's first page."
        },
        "previous": {
          "type": "string",
          "description": "URL to the collection's previous page, relative to the current page.",
          "nullable": true
        },
        "next": {
          "type": "string",
          "description": "URL to the collection's next page, relative to the current page.",
          "nullable": true
        },
        "last": {
          "type": "string",
          "description": "URL to the collection's last page."
        }
      }
    },
    "nodes": {
      "type": "array",
      "items": {
        "type": "#/components/schemas/Element"
      }
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "#/components/schemas/Element"
      }
    }
  }
}
```

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) · [HTTP.dev](https://http.dev/200)

### 304 · Not Modified

Not modified. Returned when `If-None-Match` header matches current `ETag`.

#### Headers

```http
Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method
Access-Control-Allow-Methods: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Location
Allow: GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK
Cache-Control: no-cache, private
ETag: "YgbFC4u5EgC"
X-Powered-By: Ember Nexus API
```

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/304) · [HTTP.dev](https://http.dev/304)

### 401 · Unauthorized

The provided token is either invalid or expired.

#### Body

```json
{
  "type": "https://api.example.com/error/401/unauthorized",
  "title": "Unauthorized",
  "status": 401,
  "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)."
}
```

#### Headers

`Access-Control-Allow-Headers`, `Access-Control-Allow-Methods`, `Access-Control-Allow-Origin`, `Access-Control-Expose-Headers`, `Allow`, `Cache-Control`, `X-Powered-By`. Descriptions and example values are in the Response Header section below.

#### Schema

Same as `Problem` — see the Response Schema section below.

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/401) · [HTTP.dev](https://http.dev/401)

### 404 · Not Found

Element does not exist, or the current user does not have permissions to access the element.

#### Body

```json
{
  "type": "https://api.example.com/error/404/not-found",
  "title": "Not Found",
  "status": 404,
  "detail": "Requested element was not found."
}
```

#### Headers

`Access-Control-Allow-Headers`, `Access-Control-Allow-Methods`, `Access-Control-Allow-Origin`, `Access-Control-Expose-Headers`, `Allow`, `Cache-Control`, `X-Powered-By`. Descriptions and example values are in the Response Header section below.

#### Schema

Same as `Problem` — see the Response Schema section below.

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/404) · [HTTP.dev](https://http.dev/404)

### 412 · Precondition Failed

Precondition failed. `If-Match` or `If-None-Match` condition not met.

#### Body

```json
{
  "type": "https://api.example.com/error/412/precondition-failed",
  "title": "Precondition Failed",
  "status": 412,
  "detail": "Precondition does not match."
}
```

#### Headers

`Access-Control-Allow-Headers`, `Access-Control-Allow-Methods`, `Access-Control-Allow-Origin`, `Access-Control-Expose-Headers`, `Allow`, `Cache-Control`, `X-Powered-By`. Descriptions and example values are in the Response Header section below.

#### Schema

Same as `Problem` — see the Response Schema section below.

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/412) · [HTTP.dev](https://http.dev/412)

## Request Parameters

### `uuid` (required)

`path · string · uuid`

### `page` (optional)

`query · integer · default 1 · ≥ 1`

Index of the page to be accessed. First page / index is 1.

Example: `1`

[Pagination tutorial](/guide/pagination.md)

### `pageSize` (optional)

`query · integer · default 25 · ≥ 1`

Number of elements to be returned in a single page.

Example: `25`

[Pagination tutorial](/guide/pagination.md)

## Request Header

### `Authorization` (optional)

Bearer token for user authentication. If omitted, the request is processed as an anonymous user; if provided, the associated user account is used.

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Authorization) · [HTTP.dev](https://http.dev/authorization) · [Authentication guide](/guide/authentication.md)

### `If-Match` (optional)

Used primarily for optimistic concurrency control — the request is only executed if the resource's `ETag` matches the provided value.

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/If-Match) · [HTTP.dev](https://http.dev/if-match) · [Caching guide](/guide/caching-and-conditional-requests.md)

### `If-None-Match` (optional)

Used primarily for caching — skips re-downloading an unchanged resource by returning `304 Not Modified` if the resource's `ETag` matches the provided value.

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/If-None-Match) · [HTTP.dev](https://http.dev/if-none-match) · [Caching guide](/guide/caching-and-conditional-requests.md)

## Response Schema

### `Problem`

RFC 7807 Problem Details object.

```json
{
  "$schema": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Schema",
  "type": "object",
  "description": "RFC 7807 Problem Details object.",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "detail": {
      "type": "string"
    }
  }
}
```

## Response Header

### `ETag` (optional)

Entity tag used for caching and optimistic concurrency control.

**Note**: ETag is not included for collections which are too big.

Example: `"YgbFC4u5EgC"`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/ETag) · [HTTP.dev](https://http.dev/etag) · [Caching guide](/guide/caching-and-conditional-requests.md)

### Other Headers

#### `Access-Control-Allow-Headers` (always)

Specifies which HTTP headers can be used during a cross-origin request, returned in preflight responses.

Example: `Authorization, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Headers) · [HTTP.dev](https://http.dev/access-control-allow-headers)

#### `Access-Control-Allow-Methods` (always)

Indicates which HTTP methods are permitted for cross-origin requests, typically returned in preflight responses.

Example: `GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Methods) · [HTTP.dev](https://http.dev/access-control-allow-methods)

#### `Access-Control-Allow-Origin` (always)

Specifies which origin(s) may access the resource.

Example: `*`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Origin) · [HTTP.dev](https://http.dev/access-control-allow-origin)

#### `Access-Control-Expose-Headers` (always)

Lists the response headers that browsers are allowed to access from JavaScript beyond the default restricted set.

Example: `ETag, Location`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Expose-Headers) · [HTTP.dev](https://http.dev/access-control-expose-headers)

#### `Allow` (always)

Lists the HTTP methods supported by the endpoint; returned alongside a `405 Method Not Allowed` response.

Example: `GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Allow) · [HTTP.dev](https://http.dev/allow)

#### `Cache-Control` (always)

Directives controlling caching behavior for the response.

Example: `no-cache, private`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control) · [HTTP.dev](https://http.dev/cache-control)

#### `X-Powered-By` (always)

Identifies the underlying API implementation.

Example: `Ember Nexus API`

[MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Powered-By) · [HTTP.dev](https://http.dev/x-powered-by)

---

Home: [Ember Nexus API docs](/index.md)

Full site map: [llms.txt](/llms.txt)

Previous: [Get children](/api/get-children.md)

Next: [Post index](/api/post-index.md)
