---
title: "List Grants by Device"
method: GET
path: "/v2/grants"
tags: ["Grants V2"]
---

# List Grants by Device

`GET /v2/grants`

Returns a list of manual grants for the specified device/user. Requires entitlements:read scope.

## Query parameters

- `limit` string — a string to be decoded into a number
- `starting_after` string — a string to be decoded into a number
- `ending_before` string — a string to be decoded into a number
- `project_id` string, required — Project ID (required)
- `device_id` string
- `user_id` string
- `include_expired` 'true' | 'false' — a string to be decoded into a boolean
- `include_revoked` 'true' | 'false' — a string to be decoded into a boolean

## Response `200`

Success

- object
  - `object` 'list', required — Object type, always `list`
  - `url` '/v2/grants', required — API endpoint URL for this list
  - `has_more` boolean, required — Whether there are more results available beyond this page
  - `data` object[], required — List of results
    - `id` string, required — Unique identifier for the grant
    - `object` 'entitlement_grant', required — Object type, always `entitlement_grant`
    - `entitlement` string, required — ID of the entitlement being granted
    - `entitlement_identifier` string, required — Identifier string of the entitlement being granted
    - `user_id` string, nullable, required — User ID the grant applies to, or null
    - `device_id` string, required — Device ID the grant applies to
    - `expires_at` string, nullable, required — ISO 8601 timestamp of when the grant expires, or null for permanent grants
    - `reason` string, nullable, required — Reason for the grant, or null
    - `granted_by` string, required — Identifier of who granted this entitlement
    - `granted_at` string, required — ISO 8601 timestamp of when the grant was created
    - `status` union, required — Current status of the grant
      - 'active' — Grant is currently active
      - 'expired' — Grant has expired
      - 'revoked' — Grant has been revoked

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `403` — The API key does not have permission to perform this action
- `404` — The requested resource was not found
- `429` — Too many requests have been made in a short period
- `500` — An unexpected error occurred on the server

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) · [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/e04f76c478af/schema)
