List feedback

GET/api/v1/feedback

Product feedback items, most voted first, with their status, area and vote count. Filter by status, area, contact or a title search.

Query parameters

ParameterTypeDescription
statusstringA feedback status by value; get_workspace lists them.
productAreastring
contactIdstringItems this contact asked for or voted on.
qstringCase-insensitive match on the title.
limitnumberPage size, 1 to 100. Default 50.
cursorstringThe nextCursor from the previous page.

Example request

curl "https://crowdstack.org/api/v1/feedback?status=under_review" \
  -H "Authorization: Bearer $CROWDSTACK_API_KEY"

Example response

{
  "feedback": [
    {
      "id": "cmf3k2x9a0160abcd",
      "number": 42,
      "key": "F-42",
      "title": "Export invoices as CSV",
      "body": "Finance wants a monthly CSV of all invoices.",
      "status": "under_review",
      "productArea": "billing",
      "voteCount": 3,
      "publishedAt": null,
      "summary": null,
      "problem": null,
      "contact": {
        "id": "cmf3k2x9a0001abcd",
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane@acme.com"
      },
      "ticketId": null,
      "createdAt": "2026-09-15T10:12:00.000Z",
      "updatedAt": "2026-09-15T10:12:00.000Z"
    }
  ],
  "nextCursor": null
}

Get a feedback item

GET/api/v1/feedback/:id

One feedback item with the contacts who voted for it and the tasks linked to it.

Responses

StatusMeaning
404No feedback item with that id.

Example request

curl "https://crowdstack.org/api/v1/feedback/cmf3k2x9a0001abcd" \
  -H "Authorization: Bearer $CROWDSTACK_API_KEY"

Example response

{
  "feedback": {
    "id": "cmf3k2x9a0160abcd",
    "number": 42,
    "key": "F-42",
    "title": "Export invoices as CSV",
    "body": "Finance wants a monthly CSV of all invoices.",
    "status": "under_review",
    "productArea": "billing",
    "voteCount": 3,
    "publishedAt": null,
    "summary": null,
    "problem": null,
    "contact": {
      "id": "cmf3k2x9a0001abcd",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@acme.com"
    },
    "ticketId": null,
    "createdAt": "2026-09-15T10:12:00.000Z",
    "updatedAt": "2026-09-15T10:12:00.000Z",
    "voters": [
      {
        "id": "cmf3k2x9a0001abcd",
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane@acme.com"
      }
    ],
    "tasks": []
  }
}

Log feedback

POST/api/v1/feedback

Logs a feedback item in the workspace's default status. Naming a contact records them as the first voter.

Request body

FieldTypeDescription
titlerequiredstring
bodystring | null
contactIdstringThe contact who asked for this.
productAreastring | nullOne of the workspace's feedback areas, by value or label.

Responses

StatusMeaning
201Body: { feedback }.

Example request

curl -X POST https://crowdstack.org/api/v1/feedback \
  -H "Authorization: Bearer $CROWDSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Export invoices as CSV",
    "body": "Finance wants a monthly CSV of all invoices.",
    "contactId": "cmf3k2x9a0001abcd",
    "productArea": "billing"
  }'

Example response

{
  "feedback": {
    "id": "cmf3k2x9a0160abcd",
    "number": 42,
    "key": "F-42",
    "title": "Export invoices as CSV",
    "body": "Finance wants a monthly CSV of all invoices.",
    "status": "under_review",
    "productArea": "billing",
    "voteCount": 1,
    "publishedAt": null,
    "summary": null,
    "problem": null,
    "contact": {
      "id": "cmf3k2x9a0001abcd",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@acme.com"
    },
    "ticketId": null,
    "createdAt": "2026-09-15T10:12:00.000Z",
    "updatedAt": "2026-09-15T10:12:00.000Z"
  }
}

Update feedback

PATCH/api/v1/feedback/:id

Change a feedback item's title, body, status, area or requesting contact. Only keys you send are changed. Moving to the shipped status notifies voters the way the app does.

Request body

FieldTypeDescription
titlestring
bodystring | null
statusstringA feedback status by value or label.
productAreastring | null
contactIdstring | null

Responses

StatusMeaning
200Body: { feedback }.
404No feedback item with that id.

Example request

curl -X PATCH https://crowdstack.org/api/v1/feedback/cmf3k2x9a0001abcd \
  -H "Authorization: Bearer $CROWDSTACK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "planned"
  }'

Example response

{
  "feedback": {
    "id": "cmf3k2x9a0160abcd",
    "number": 42,
    "key": "F-42",
    "title": "Export invoices as CSV",
    "body": "Finance wants a monthly CSV of all invoices.",
    "status": "planned",
    "productArea": "billing",
    "voteCount": 3,
    "publishedAt": null,
    "summary": null,
    "problem": null,
    "contact": {
      "id": "cmf3k2x9a0001abcd",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@acme.com"
    },
    "ticketId": null,
    "createdAt": "2026-09-15T10:12:00.000Z",
    "updatedAt": "2026-09-15T10:12:00.000Z"
  }
}