Create and Import Feedback with the API

Create, import, retrieve, filter, update, and delete ChangeCrab feedback using the authenticated Suggestions API.

All Articles

Create and Import Feedback with the API

Use the authenticated Suggestions API to bring feedback from support, forms, or another feedback tool into ChangeCrab. The same endpoints can retrieve, filter, moderate, update, and delete feedback without exposing ChangeCrab's internal database fields.

Before you start

  1. Create an API key from API & Documentation in your ChangeCrab account.
  2. Copy the changelog access ID returned by GET /api/changelogs.
  3. Send the API key in the X-API-Key request header.
X-API-Key: your_api_key_here
Content-Type: application/json

Create or import feedback

Create a feature request, bug, idea, or improvement with POST /api/changelogs/{id}/suggestions. The title, description, and type are required. If status_id is omitted, ChangeCrab uses the changelog's initial feedback status.

curl https://changecrab.com/api/changelogs/abc123def4/suggestions \
  --request POST \
  --header "X-API-Key: your_api_key_here" \
  --header "Content-Type: application/json" \
  --data '{
    "title": "Export roadmap votes",
    "description": "Let admins export visible vote totals for planning.",
    "type": "feature_request",
    "visibility": "public",
    "context": {
      "customer_segment": "Workspace admins",
      "business_impact": "Needed for quarterly planning",
      "workaround": "Copy totals into a spreadsheet"
    }
  }'

API-created feedback is approved by default because API keys are an admin integration surface. Send "is_approved": false when imported feedback should enter moderation first.

Import a bug report

Bug reports can include severity and structured context. Bug reports require the Premium feedback workflow and must be enabled for the changelog.

{
  "title": "CSV export stalls in Chrome",
  "description": "The export never finishes for workspaces with large roadmaps.",
  "type": "bug",
  "severity": "high",
  "visibility": "private",
  "context": {
    "expected_behavior": "The CSV downloads within a few seconds.",
    "actual_behavior": "The progress indicator runs indefinitely.",
    "steps_to_reproduce": "Open Roadmap, choose Export, then select CSV.",
    "environment": "Chrome 126 on macOS",
    "page_url": "https://app.example.com/roadmap"
  }
}

Retrieve and filter feedback

GET /api/changelogs/{id}/suggestions returns newest items first with a maximum of 100 items per page. It is an authenticated admin view, so it can return public, private, internal, unapproved, and approved feedback.

GET /api/changelogs/abc123def4/suggestions
  ?type=bug
  &visibility=private
  &is_approved=true
  &updated_after=2026-08-01T00:00:00Z
  &per_page=50

Available filters are:

  • type
  • status_id
  • visibility
  • is_approved
  • search, which searches the title and description
  • updated_after, which is useful for incremental synchronization
  • page and per_page

Update or moderate feedback

Send one or more supported fields to PATCH /api/changelogs/{id}/suggestions/{suggestionId}. Sending a context object replaces the existing public context object.

curl https://changecrab.com/api/changelogs/abc123def4/suggestions/482 \
  --request PATCH \
  --header "X-API-Key: your_api_key_here" \
  --header "Content-Type: application/json" \
  --data '{
    "is_approved": true,
    "visibility": "public",
    "title": "Export feedback and roadmap votes"
  }'

Fields the API intentionally does not expose

The API does not return creator identifiers, email addresses, IP-derived identities, individual voters, arbitrary metadata, internal notes, revenue signals, assignee database IDs, subscriptions, lifecycle records, or internal scoring inputs. Unknown request fields are rejected with a validation error rather than silently stored.

Delete feedback

DELETE /api/changelogs/{id}/suggestions/{suggestionId} permanently removes the item and its votes, comments, official responses, followers, view records, and lifecycle history. Existing suggestions marked as duplicates of it are detached. Use deletion only when the feedback should no longer exist; use approval or visibility for moderation.

Next steps