Wahlu API

Community

Manage community feature requests, bug reports, and improvements. Admin-only.

Manage community feature requests, bug reports, and improvements. All community endpoints are admin-only — the API key must belong to a user with the Admin or Super Admin role.

Requires community:read for read operations and community:write for write operations.

List community posts

GET/v1/community/posts

Returns a paginated list of community posts.

Query parameters

ParameterTypeDescription
pageintegerPage number. Defaults to 1.
limitintegerItems per page. Defaults to 50, max 100.
sort_bystringField to sort by. Defaults to created_at.
sort_dirstringSort direction: asc or desc. Defaults to desc.
curl
curl https://api.wahlu.com/v1/community/posts \
  -H "Authorization: Bearer wahlu_live_your_api_key_here"
Response
{
  "success": true,
  "data": [
    {
      "id": "cp_abc123",
      "type": "feature_request",
      "title": "Bulk image upload",
      "description": "Allow uploading multiple images at once in the media library.",
      "status": "planned",
      "category": "integrations",
      "created_by": "user_abc",
      "vote_count": 42,
      "comment_count": 5,
      "admin_notes": null,
      "admin_thread": [],
      "rejected_reason": null,
      "admin_only": false,
      "created_at": "2026-02-01T10:00:00Z",
      "updated_at": "2026-02-10T14:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "has_more": false
  }
}

Response fields

ParameterTypeDescription
idstringUnique community post identifier.
typestringPost type (feature_request, bug_report, improvement).
titlestringPost title.
descriptionstringPost description.
statusstringStatus (pending, approved, planned, in_progress, completed, rejected).
categorystringCategory (automation, integrations, analytics, scheduling, design, ai, other).
created_bystring | nullUser ID of the creator.
vote_countnumberNumber of votes.
comment_countnumberNumber of comments.
admin_notesstring | nullInternal admin notes.
admin_threadobject[]Internal admin discussion thread.
rejected_reasonstring | nullReason for rejection.
admin_onlybooleanWhether this post is only visible to admins.
created_atstringISO 8601 creation timestamp.
updated_atstringISO 8601 last-updated timestamp.

Get a community post

GET/v1/community/posts/:post_id

Returns a single community post with full details including admin notes and the internal admin thread.

Create a community post

POST/v1/community/posts

Creates a new community post.

Request body

ParameterTypeDescription
title*stringPost title. Max 500 characters.
type*stringOne of: feature_request, bug_report, improvement.
descriptionstringPost description. Max 10,000 characters.
categorystringOne of: automation, integrations, analytics, scheduling, design, ai, other. Max 100 characters.
statusstringOne of: pending, approved, planned, in_progress, completed, rejected. Defaults to pending.
admin_onlybooleanWhether this post is only visible to admins. Defaults to false.
curl
curl -X POST https://api.wahlu.com/v1/community/posts \
  -H "Authorization: Bearer wahlu_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Bulk image upload",
    "type": "feature_request",
    "description": "Allow uploading multiple images at once in the media library.",
    "category": "design"
  }'

Update a community post

PATCH/v1/community/posts/:post_id

Updates a community post. Only provided fields are changed.

Request body

ParameterTypeDescription
statusstringUpdated status: pending, approved, planned, in_progress, completed, rejected.
titlestringUpdated title. Max 500 characters.
descriptionstringUpdated description. Max 10,000 characters.
typestringUpdated type.
categorystringUpdated category. Max 100 characters.
admin_notesstringInternal admin notes. Max 10,000 characters.
rejected_reasonstringReason for rejection. Max 2,000 characters.
admin_onlybooleanWhether this post is only visible to admins.
curl
curl -X PATCH https://api.wahlu.com/v1/community/posts/cp_abc123 \
  -H "Authorization: Bearer wahlu_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "in_progress",
    "admin_notes": "Started work on this in sprint 12."
  }'

Delete a community post

DELETE/v1/community/posts/:post_id

Permanently deletes a community post and all associated data. This action cannot be undone.

Add admin note

POST/v1/community/posts/:post_id/notes

Adds a note to the post's internal admin thread. These notes are only visible to admins.

Request body

ParameterTypeDescription
content*stringThe note content. Max 10,000 characters.

List comments

GET/v1/community/posts/:post_id/comments

Returns all comments on a community post.

Comment response fields

ParameterTypeDescription
idstringUnique comment identifier.
post_idstringParent community post ID.
user_namestring | nullDisplay name of the commenter.
contentstringComment text.
is_adminbooleanWhether this is an admin comment.
created_atstringISO 8601 creation timestamp.

Add a comment

POST/v1/community/posts/:post_id/comments

Adds an admin comment to a community post. Comments added via the API are automatically marked as admin comments.

Request body

ParameterTypeDescription
content*stringThe comment content. Max 10,000 characters.
user_namestringDisplay name for the comment. Max 200 characters. Defaults to 'Admin'.

Delete a comment

DELETE/v1/community/posts/:post_id/comments/:comment_id

Deletes a comment from a community post.