---
title: "List Resource Instances Detailed"
method: GET
path: "/v2/facts/{proj_id}/{env_id}/resource_instances/detailed"
tags: ["Resource Instances"]
---

# List Resource Instances Detailed

`GET /v2/facts/{proj_id}/{env_id}/resource_instances/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}/resource_instances/detailed`
- Auth: HTTP bearer

Lists all the resource instances 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

- `tenant` string: The tenant key or id to filter by
- `resource` string: The resource key or id to filter by
- `search` string[]: The resource instance key or id to filter by, matched exactly (supports multi-value like this url?search=key-1&search=key-2). Split larger key sets into successive requests of at most 100 values each.
- `page` integer: Page number of the results to fetch, starting at 1.
- `per_page` integer: The number of results per page (max 100).

## Response `200`

Successful Response

- PaginatedResultResourceInstanceDetailedRead
  - `data` ResourceInstanceDetailedRead[], required: List of Resource Instance Detaileds
    - `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`.
    - `id` string, uuid, required: Unique id of the resource instance
    - `organization_id` string, uuid, required: Unique id of the organization that the resource instance belongs to.
    - `project_id` string, uuid, required: Unique id of the project that the resource instance belongs to.
    - `environment_id` string, uuid, required: Unique id of the environment that the resource instance belongs to.
    - `created_at` string, date-time, required: Date and time when the resource instance was created (ISO_8601 format).
    - `updated_at` string, date-time, required: Date and time when the resource instance was created (ISO_8601 format).
    - `resource_id` string, uuid, required: Unique id of the resource
    - `tenant_id` string, uuid, required: Unique id of the tenant
    - `attributes` object: Arbitrary resource attributes that will be used to enforce attribute-based access control policies.
    - `relationships` RelationshipTupleBlockRead[], required: The relationships of the resource instance.
      - `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
  - `total_count` integer, required
  - `page_count` integer

## Other responses

- `422`: Validation Error

## Changes

- **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/resource_instances/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)
