Skip to main content
Version: 2.0.0

Overview

Retrieve relationship tuples that exist inside a specific environment and filter them.

Check the API documentation for more information.

Get All relationship tuples

First of all we need to get our API_SECRET_KEY from the dashboard and get the current project_id and env_id
Replace API_SECRET_KEY with the key from the Permit dashboard along with the project_id and env_id you got from the API in the following command.

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'

The return user object will look like this:

[
{
"subject": "Folder:documents",
"relation": "parent",
"object": "File:my_pdf",
"id": "c76f9a129dbe44f88664b7333fef0cce",
"tenant": "default",
"subject_id": "6e6855d2b2cf438c9bf79136ec72c188",
"relation_id": "9c6aee683f5c482cabd2d536734801c9",
"object_id": "3bdd97e40010426bbf0648d962779122",
"tenant_id": "f9bcad6ad2a54113ba4f45fc014d4bb0",
"organization_id": "78f198a252c04572b098cf3aa70f8520",
"project_id": "1bbb39e66e614bbc831346bb1c15babb",
"environment_id": "6175ea4cb70b4d08add43ebfa6a30004",
"created_at": "2023-11-16T08:30:46+00:00",
"updated_at": "2023-11-16T08:30:46+00:00",
"subject_details": {
"key": "documents",
"tenant": "default",
"resource": "Folder",
"attributes": {}
},
"relation_details": {
"key": "parent",
"name": "parent",
"description": "Relation expresses possible 'parent' relation between subject of type 'Folder' to object of type 'File'"
},
"object_details": {
"key": "my_pdf",
"tenant": "default",
"resource": "File",
"attributes": {}
},
"tenant_details": {
"key": "default",
"name": "Default Tenant",
"description": null,
"attributes": null
}
}
]

Filter

filter the relationship tuples data

Filter by subject

accepts either the resource instance id or resource_type:resource_instance in this example Folder:documents

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?subject=Folder:documents&page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'

Filter by object

accepts either the resource instance id or resource_type:resource_instance in this example File:my_pdf

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?object=File:my_pdf&page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'

Filter by relation

accepts either the relation id or key in this example parent or 9c6aee683f5c482cabd2d536734801c9

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?relation=parent&page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'

Filter by object_type

accepts either the resource id or key in this example File or 3bdd97e40010426bbf0648d962779122

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?object_type=File&page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'

Filter by subject_type

accepts either the resource id or key in this example Folder or 6e6855d2b2cf438c9bf79136ec72c188

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?subject_type=Folder&page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'

Filter by tenant

The tenant key or id to filter by in this example default

curl 'https://api.permit.io/v2/facts/{project_id}/{env_id}/relationship_tuples?tenant=default&page=1&per_page=10' \
-H 'authorization: Bearer API_SECRET_KEY'
Note you can mix and match the filters

this is equivalent to logical AND between them