Dashly Docs

Review remarks

`/review-remarks` - read-only

List review remarks

GET
/review-remarks

One page of records, newest first unless you say otherwise, with the total count in meta so you know how far to paginate.

Required scope: review-remarks:read.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.

Query Parameters

page?integer

1-based. meta.totalPages says how many there are.

Range1 <= value
Default1
per_page?integer

Rows per page. A value above 200 returns 400 - never a silent clamp.

Range1 <= value <= 200
Default50
sort?string

Prefix with - for descending. An undeclared sort returns 400.

Default"-createdAt"
Value in"createdAt""-createdAt""status""-status""kind""-kind"
q?string

Case-insensitive "contains", across: body, elementText, pagePath, pageTitle.

filter[status]?string

Exact match on status.

filter[kind]?string

Exact match on kind.

filter[clientId]?string

Exact match on clientId.

filter[projectId]?string

Exact match on projectId.

filter[pagePath]?string

Exact match on pagePath.

Response Body

The requested page.

application/json
  1. response
data*array<>
meta*
Example Request
curl -X GET 'https://api.usedashly.com/v1/review-remarks'
Example Response
{  "data": [    {      "id": "string",      "kind": "string",      "body": "string",      "status": "string",      "reporterName": "string",      "pageUrl": "string",      "pagePath": "string",      "pageTitle": "string",      "selector": "string",      "elementText": "string",      "elementRect": null,      "viewport": null,      "userAgent": "string",      "locale": "string",      "context": null,      "zones": null,      "pageErrors": null,      "release": "string",      "screenshot": "string",      "fixUrl": "string",      "fixOpenedAt": "2019-08-24T14:15:22Z",      "siteName": "string",      "repository": "string",      "clientId": "string",      "projectId": "string",      "ticketId": "string",      "createdAt": "2019-08-24T14:15:22Z"    }  ],  "meta": {    "page": 0,    "perPage": 0,    "total": 0,    "totalPages": 0  }}

Retrieve a review remark

GET
/review-remarks/{id}

The full record, custom fields included when the resource carries them. A record from another agency is a 404, not a 403 - its existence is not ours to confirm.

Required scope: review-remarks:read.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.

Path Parameters

id*string

The record's public id (hsbftmp3f5), as returned in the id field. An internal UUID returns 404.

Response Body

Found.

application/json
  1. response
data*
Example Request
curl -X GET 'https://api.usedashly.com/v1/review-remarks/string'
Example Response
{  "data": {    "id": "string",    "kind": "string",    "body": "string",    "status": "string",    "reporterName": "string",    "pageUrl": "string",    "pagePath": "string",    "pageTitle": "string",    "selector": "string",    "elementText": "string",    "elementRect": null,    "viewport": null,    "userAgent": "string",    "locale": "string",    "context": null,    "zones": null,    "pageErrors": null,    "release": "string",    "screenshot": "string",    "fixUrl": "string",    "fixOpenedAt": "2019-08-24T14:15:22Z",    "siteName": "string",    "repository": "string",    "clientId": "string",    "projectId": "string",    "ticketId": "string",    "createdAt": "2019-08-24T14:15:22Z"  }}

List available actions

GET
/review-remarks/actions

Every verb this resource answers to, with its target and the JSON Schema of its body - the same contracts this document describes, readable at runtime.

Required scope: review-remarks:read.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.

Response Body

The available verbs.

application/json
  1. response
data*array<>
Example Request
curl -X GET 'https://api.usedashly.com/v1/review-remarks/actions'
Example Response
{  "data": [    {      "name": "string",      "label": "string",      "description": "string",      "target": "item",      "readOnly": true,      "path": "string",      "input": {}    }  ]}
POST
/review-remarks/{id}/actions/propose-fix

Records the change proposed for this remark - a pull request, usually - and posts the link in the linked work item's feed when it has one. It changes no status: proposing a fix is not fixing it.

Does what the dashboard's proposeWidgetFixAction does - same implementation, so the two cannot diverge.

Required scope: review-remarks:write.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.

Path Parameters

id*string

The public id of the record to act on. It is resolved inside your agency before the action runs, so an id from another tenant is a 404 and never reaches it.

Header Parameters

Idempotency-Key?string

A value you choose (a UUID is the usual one), 8 to 255 characters of A-Z a-z 0-9 _ . : -. Retrying with the same key returns the first call's answer instead of creating a second record, for seven days. The same key with a different body returns 409.

Length8 <= length <= 255

Request Body

application/json
  1. body
url*string
Length1 <= length <= 2000

Response Body

Done.

application/json
  1. response
data*unknown

The action's result; its shape depends on the verb.

Example Request
curl -X POST 'https://api.usedashly.com/v1/review-remarks/string/actions/propose-fix' \  -H 'Content-Type: application/json' \  -d '{  "url": "string"}'
Example Response
{  "data": null}

Dismiss this remark

POST
/review-remarks/{id}/actions/dismiss

Sets the remark aside without making work of it - a test, a duplicate, a remark that answered itself. The row is kept: the page it came from is the only record of what the reviewer was looking at. A remark already filed as a ticket cannot be dismissed; archive the ticket instead.

Does what the dashboard's dismissWidgetFeedbackAction does - same implementation, so the two cannot diverge. Takes no body.

Required scope: review-remarks:write.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.

Path Parameters

id*string

The public id of the record to act on. It is resolved inside your agency before the action runs, so an id from another tenant is a 404 and never reaches it.

Header Parameters

Idempotency-Key?string

A value you choose (a UUID is the usual one), 8 to 255 characters of A-Z a-z 0-9 _ . : -. Retrying with the same key returns the first call's answer instead of creating a second record, for seven days. The same key with a different body returns 409.

Length8 <= length <= 255

Response Body

Done.

application/json
  1. response
data*unknown

The action's result; its shape depends on the verb.

Example Request
curl -X POST 'https://api.usedashly.com/v1/review-remarks/string/actions/dismiss'
Example Response
{  "data": null}
POST
/review-remarks/{id}/actions/resolve

Closes an in-progress review remark after the delivered change was verified.

Does what the dashboard's resolveWidgetFeedbackAction does - same implementation, so the two cannot diverge.

Required scope: review-remarks:write.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.

Path Parameters

id*string

The public id of the record to act on. It is resolved inside your agency before the action runs, so an id from another tenant is a 404 and never reaches it.

Header Parameters

Idempotency-Key?string

A value you choose (a UUID is the usual one), 8 to 255 characters of A-Z a-z 0-9 _ . : -. Retrying with the same key returns the first call's answer instead of creating a second record, for seven days. The same key with a different body returns 409.

Length8 <= length <= 255

Request Body

application/json
  1. body

Response Body

Done.

application/json
  1. response
data*unknown

The action's result; its shape depends on the verb.

Example Request
curl -X POST 'https://api.usedashly.com/v1/review-remarks/string/actions/resolve' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "data": null}