---
title: "List a site's client feedback (open and in progress by default)"
method: GET
path: "/v1/sites/{siteId}/feedback"
tags: ["Feedback"]
---

# List a site's client feedback (open and in progress by default)

`GET /v1/sites/{siteId}/feedback`

## Request

- Base URL: `https://api.dropl.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dropl.io/v1/sites/{siteId}/feedback`
- Auth: HTTP bearer

Requires the `feedback:read` scope (see website change requests from clients, with their context and replies).

## Path parameters

- `siteId` string, uuid, required

## Query parameters

- `status` string: Comma-separated: open, in_progress, done, wont_do.
- `type` 'comment' | 'text_change' | 'general'
- `page` string: Page path contains.
- `sort` 'newest' | 'oldest'
- `limit` integer
- `offset` integer

## Response `200`

Success

- FeedbackList
  - `requests` FeedbackRequestSummary[], required
    - `id` string, uuid, required
    - `number` integer, required: Per-site number, shown as #12.
    - `site` object, required
      - `id` string, uuid, required
      - `name` string, required
    - `type` 'comment' | 'text_change' | 'general', required
    - `imageAction` 'replace' | 'remove', nullable, required
    - `status` 'open' | 'in_progress' | 'done' | 'wont_do', required
    - `message` string, nullable, required
    - `pageUrl` string, uri, nullable, required
    - `pagePath` string, nullable, required
    - `pageTitle` string, nullable, required
    - `currentText` string, nullable, required: Text changes: the wording on the page now.
    - `requestedText` string, nullable, required: Text changes: the exact new wording.
    - `requester` FeedbackPerson, required
      - `userId` string, uuid, nullable, required
      - `name` string, required
      - `isTeam` boolean, required
    - `deviceType` 'mobile' | 'tablet' | 'desktop', nullable, required
    - `screenshot` FeedbackAttachment, required
      - `id` string, uuid, required
      - `purpose` 'screenshot' | 'attachment' | 'replacement', required
      - `status` 'processing' | 'ready' | 'failed', required
      - `previewUrl` string, uri, nullable, required
      - `largeUrl` string, uri, nullable, required: Temporary signed URL; fetch it to look at the photo.
      - `width` integer, nullable, required
      - `height` integer, nullable, required
      - `fileName` string, nullable, required
      - `createdAt` string, date-time, required
    - `replyCount` integer, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `lastActivityAt` string, date-time, required
  - `total` integer, required

## Other responses

- `400`: Validation failed
- `401`: `INVALID_API_KEY`: missing, invalid, expired, or revoked key
- `403`: `INSUFFICIENT_SCOPE` (names the missing scope), `SITE_RESTRICTED_KEY`, or a plan limit
- `404`: Not found, or outside the key's sites
- `429`: Rate limited

---

[API](https://skmtc.dev/dropl/apis/dropl-public-api.md) · [All operations](https://skmtc.dev/dropl/apis/dropl-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dropl/apis/dropl-public-api/revisions/8a42e1f968d4?raw)
