---
title: "List relations"
method: GET
path: "/api/v1/relations"
tags: ["Relation"]
---

# List relations

`GET /api/v1/relations`

Retrieve all relation objects (annotations from queues not with `active` status are excluded).

## Query parameters

- `page_size` integer
- `cursor` string
- `id` integer[]
- `type` 'edit' | 'attachment' | 'duplicate'
- `parent` integer
- `key` string
- `annotation` integer[]
- `ordering` 'type' | '-type' | 'parent' | '-parent' | 'key' | '-key'

## Response `200`

OK

- object
  - `pagination` Pagination, required
    - `next` string, uri, nullable — URL for the next page of results. Contains an opaque signed `cursor` query parameter. Use this URL directly to fetch the next page — do not attempt to construct or modify the cursor value.
    - `previous` string, uri, nullable — URL for the previous page of results. Contains an opaque signed `cursor` query parameter. Use this URL directly to fetch the previous page — do not attempt to construct or modify the cursor value.
  - `results` Relation[], required
    - `id` integer, required — ID of the relation
    - `type` 'edit' | 'attachment' | 'duplicate', required — Type of relationship. Possible values are: `edit`, `attachment`, `duplicate`. - `edit` relation is created after editing annotation in user interface (rotation or split of the document) - `attachment` is a relationship representing the state that one or more documents are attachments to another document - `duplicate` relation is created after importing the same document that already exists in Rossum for current organization
    - `key` string, nullable, required — Key used to distinguish several instances of the same type. - For `attachment` relations, this is null - For `duplicate` relations, this is set to a hash of document content - For `edit` relations, this is typically null
    - `parent` string, uri, nullable, required — URL of the parent annotation in case of 1-M relationship
    - `annotations` string[], required — List of related annotations
    - `url` string, uri, required — URL of the relation

## Other responses

- `400` — Invalid input data.
- `401` — The username/password is invalid or token is invalid (e.g. expired).
- `403` — Insufficient permission, missing authentication, invalid CSRF token and similar issue.
- `404` — The specified resource was not found.
- `409` — Conflict
- `429` — Request rate is too high, wait before sending more requests. See [Rate Limiting](/guides/overview#rate-limiting) for more details.
- `500` — Server failure while processing the request.
- `502` — Invalid response from the upstream server.
- `503` — We're temporarily offline for maintenance. Please try again later.
- `504` — Upstream server could not complete the request in time.

---

[API](https://skmtc.dev/rossum/apis/rossum-api.md) · [All operations](https://skmtc.dev/rossum/apis/rossum-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/rossum/rossum-api/revisions/f1b5a910991d/schema)
