---
title: "List acls"
method: GET
path: "/v1/acl"
tags: ["Acls"]
---

# List acls

`GET /v1/acl`

List out all acls. The acls are sorted by creation date, with the most recently-created acls coming first

## Query parameters

- `limit` integer, nullable — Limit the number of objects to return
- `starting_after` string, uuid — Pagination cursor id. For example, if the final item in the last page you fetched had an id of `foo`, pass `starting_after=foo` to fetch the next page. Note: you may only pass one of `starting_after` and `ending_before`
- `ending_before` string, uuid — Pagination cursor id. For example, if the initial item in the last page you fetched had an id of `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only pass one of `starting_after` and `ending_before`
- `ids` union — Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times
  - string, uuid
  - string[]
- `object_type` 'organization' | 'project' | 'experiment' | 'dataset' | 'prompt' | 'prompt_session' | 'group' | 'role' | 'org_member' | 'project_log' | 'org_project', required — The object type that the ACL applies to
- `object_id` string, uuid, required — The id of the object the ACL applies to

## Response `200`

Returns a list of acl objects

- object
  - `objects` Acl[], required — A list of acl objects
    - `id` string, uuid, required — Unique identifier for the acl
    - `object_type` 'organization' | 'project' | 'experiment' | 'dataset' | 'prompt' | 'prompt_session' | 'group' | 'role' | 'org_member' | 'project_log' | 'org_project', required — The object type that the ACL applies to
    - `object_id` string, uuid, required — The id of the object the ACL applies to
    - `user_id` string, uuid, nullable — Id of the user the ACL applies to. Exactly one of `user_id` and `group_id` will be provided
    - `group_id` string, uuid, nullable — Id of the group the ACL applies to. Exactly one of `user_id` and `group_id` will be provided
    - `permission` 'create' | 'read' | 'update' | 'delete' | 'create_acls' | 'read_acls' | 'update_acls' | 'delete_acls', nullable — Permission the ACL grants. Exactly one of `permission` and `role_id` will be provided
    - `restrict_object_type` 'organization' | 'project' | 'experiment' | 'dataset' | 'prompt' | 'prompt_session' | 'group' | 'role' | 'org_member' | 'project_log' | 'org_project', nullable — When setting a permission directly, optionally restricts the permission grant to just the specified object type. Cannot be set alongside a `role_id`.
    - `role_id` string, uuid, nullable — Id of the role the ACL grants. Exactly one of `permission` and `role_id` will be provided
    - `_object_org_id` string, uuid, required — The organization the ACL's referred object belongs to
    - `created` string, date-time, nullable — Date of acl creation

## Other responses

- `400` — The request was unacceptable, often due to missing a required parameter
- `401` — No valid API key provided
- `403` — The API key doesn’t have permissions to perform the request
- `429` — Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
- `500` — Something went wrong on Braintrust's end. (These are rare.)

---

[API](https://skmtc.net/braintrustdata/apis/braintrust-api.md) · [All operations](https://skmtc.net/braintrustdata/apis/braintrust-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/braintrustdata/braintrust-api/revisions/9d216c8243fe/schema)
