---
title: "List Grants"
method: GET
path: "/v1/oauth/grants"
tags: ["OAuth Grants"]
---

# List Grants

`GET /v1/oauth/grants`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/v1/oauth/grants`
- Auth: OAuth 2 (password, token URL `/v1/auth/login`)

Return the set of (user, client) grants with at least one active token.

Active = at least one access token not revoked-and-not-expired, OR at
least one refresh token not used and not expired. This catches both the
"fresh authorization" case and the "user is mid-rotation" case.

## Response `200`

Successful Response

- GrantSummary[]
  - `client_id` string, required
  - `client_name` string, required
  - `scope` string, required
  - `granted_at` string, required
  - `last_used_at` string, nullable

---

[API](https://skmtc.dev/rubenayla/apis/partle-api.md) · [All operations](https://skmtc.dev/rubenayla/apis/partle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rubenayla/apis/partle-api/revisions/628cce2acee5?raw)
