---
title: "List Relationship Tuples Detailed"
method: GET
path: "/v2/facts/{proj_id}/{env_id}/relationship_tuples/detailed"
tags: ["Relationship tuples"]
---

# List Relationship Tuples Detailed

`GET /v2/facts/{proj_id}/{env_id}/relationship_tuples/detailed`

## Request

- Base URL: `https://api.permit.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.permit.io/v2/facts/{proj_id}/{env_id}/relationship_tuples/detailed`
- Auth: HTTP bearer

Lists the relationship tuples defined within an environment.

## Path parameters

- `proj_id` string, required: Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").
- `env_id` string, required: Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").

## Query parameters

- `page` integer: Page number of the results to fetch, starting at 1.
- `per_page` integer: The number of results per page (max 100).
- `tenant` string: The tenant key or id to filter by
- `subject` string: The subject to filter by, accepts either the resource instance id or resource_type:resource_instance
- `relation` string: The relation id or key to filter by
- `object` string: The object to filter by, accepts either the resource instance id or resource_type:resource_instance
- `object_type` string: The object type to filter by, accepts resource type id or key
- `subject_type` string: The subject type to filter by, accepts resource type id or key

## Response `200`

Successful Response

- PaginatedResultRelationshipTupleDetailedRead
  - `data` RelationshipTupleDetailedRead[], required: List of Relationship Tuple Detaileds
    - `subject` string, required: resource_key:resource_instance_key of the subject
    - `relation` string, required: key of the assigned relation
    - `object` string, required: resource_key:resource_instance_key of the object
    - `id` string, uuid, required: Unique id of the relationship tuple
    - `tenant` string, required: The tenant the relationship tuple is associated with
    - `subject_id` string, uuid, required: Unique id of the subject
    - `relation_id` string, uuid, required: Unique id of the relation
    - `object_id` string, uuid: Unique id of the object (null = all resources of this type)
    - `tenant_id` string, uuid, required: Unique id of the tenant
    - `organization_id` string, uuid, required: Unique id of the organization that the relationship tuple belongs to.
    - `project_id` string, uuid, required: Unique id of the project that the relationship tuple belongs to.
    - `environment_id` string, uuid, required: Unique id of the environment that the relationship tuple belongs to.
    - `created_at` string, date-time, required: Date and time when the relationship tuple was created (ISO_8601 format).
    - `updated_at` string, date-time, required: Date and time when the relationship tuple was created (ISO_8601 format).
    - `subject_details` ResourceInstanceBlockRead
      - `key` string, required: A unique identifier by which Permit will identify the resource instance for permission checks. You will later pass this identifier to the `permit.check()` API. A key can be anything: for example the resource db id, a url slug, a UUID or anything else as long as it's unique on your end. The resource instance key must be url-friendly.
      - `tenant` string, required: the *key* of the tenant that this resource belongs to, used to enforce tenant boundaries in multi-tenant apps.
      - `resource` string, required: the *key* of the resource (type) of this resource instance. For example: if this resource instance is the annual budget document, the key of the resource might be `document`.
      - `attributes` object: Arbitrary resource attributes that will be used to enforce attribute-based access control policies.
    - `relation_details` StrippedRelationBlockRead
      - `key` string, required: A URL-friendly name of the relation (i.e: slug). You will be able to query later using this key instead of the id (UUID) of the relation.
      - `name` string, required: The name of the relation
      - `description` string: An optional longer description of what this relation represents in your system
    - `object_details` ResourceInstanceBlockRead
      - `key` string, required: A unique identifier by which Permit will identify the resource instance for permission checks. You will later pass this identifier to the `permit.check()` API. A key can be anything: for example the resource db id, a url slug, a UUID or anything else as long as it's unique on your end. The resource instance key must be url-friendly.
      - `tenant` string, required: the *key* of the tenant that this resource belongs to, used to enforce tenant boundaries in multi-tenant apps.
      - `resource` string, required: the *key* of the resource (type) of this resource instance. For example: if this resource instance is the annual budget document, the key of the resource might be `document`.
      - `attributes` object: Arbitrary resource attributes that will be used to enforce attribute-based access control policies.
    - `tenant_details` TenantBlockRead
      - `key` string, required: A unique id by which Permit will identify the tenant. The tenant key must be url-friendly (slugified).
      - `name` string, required: A descriptive name for the tenant
      - `description` string: an optional longer description of the tenant
      - `attributes` object: Arbitraty tenant attributes that will be used to enforce attribute-based access control policies.
  - `total_count` integer, required
  - `page_count` integer

## Other responses

- `422`: Validation Error

## Changes

- **2026-07-13** `97d5f9fec6b0`: 5 breaking
  - the response property `data/items/object_details` became optional for the status `200`
  - the response property `data/items/object_id` became optional for the status `200`
  - the response property `data/items/relation_details` became optional for the status `200`
  - the response property `data/items/subject_details` became optional for the status `200`
  - …1 more
- **2025-09-16** `05b99f06db87`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/permit/apis/permit-io-api/changes/v2/facts/:proj_id/:env_id/relationship_tuples/detailed/get.md)

---

[API](https://skmtc.dev/permit/apis/permit-io-api.md) - [All operations](https://skmtc.dev/permit/apis/permit-io-api/llms.txt) - [OpenAPI document](https://skmtc.dev/permit/apis/permit-io-api/revisions/fa0edf4238b3?raw)
