← Back to Feedstick API Reference

Submit feedback

Send user feedback to Feedstick from anywhere — a browser widget, your backend, or a one-off script. A single authenticated POST carrying the feedback text is all it takes. Rather not write it yourself? Copy the Prompt tab below into Claude Code, Cursor, or any coding agent and have it wire the integration for you.

POST https://a.feedstick.app/feedback OpenAPI spec
curl -X POST https://a.feedstick.app/feedback \
  -H "X-Feedstick-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"content":"Love the new dashboard, but export is slow."}'
import requests

requests.post(
    "https://a.feedstick.app/feedback",
    headers={"X-Feedstick-Key": "pk_live_xxxxxxxxxxxxxxxxxxxxxxxx"},
    json={"content":"Love the new dashboard, but export is slow."},
)
await fetch("https://a.feedstick.app/feedback", {
  method: "POST",
  headers: {
    "X-Feedstick-Key": "pk_live_xxxxxxxxxxxxxxxxxxxxxxxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"content":"Love the new dashboard, but export is slow."}),
});
package main

import (
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://a.feedstick.app/feedback",
		strings.NewReader(`{"content":"Love the new dashboard, but export is slow."}`))
	req.Header.Set("X-Feedstick-Key", "pk_live_xxxxxxxxxxxxxxxxxxxxxxxx")
	req.Header.Set("Content-Type", "application/json")
	http.DefaultClient.Do(req)
}
using System.Net.Http;
using System.Text;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-Feedstick-Key", "pk_live_xxxxxxxxxxxxxxxxxxxxxxxx");
await client.PostAsync("https://a.feedstick.app/feedback",
    new StringContent(@"{""content"":""Love the new dashboard, but export is slow.""}", Encoding.UTF8, "application/json"));
Integrate Feedstick (a feedback ingest API) into my app.

Read the API reference at https://feedstick.app/docs first. Then add a way for users to submit feedback that sends a single HTTP POST to https://a.feedstick.app/feedback with:
  - header  X-Feedstick-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx   (my public ingest key from https://f.feedstick.app — keep it in an env var)
  - JSON body  { "content": "<the user's message>" }

Optional body fields: type (feature · bug · feedback · support — omit to auto-classify), context (arbitrary JSON: page, app version, etc.), source_label, submitter_email.

Pass submitter_email whenever my app knows who the user is — it's what lets them be notified when their feedback is marked done.

Handle responses: 201 { id } success · 400 invalid · 401 bad key (don't retry) · 429 rate limited (back off using Retry-After).

Wire it into <where feedback should be collected in my app>.

Request body

content req

Feedback text (1–10,000 characters).

context

Arbitrary JSON — page, app version, user agent, anything useful. Up to 16 KB serialized, nested at most 10 levels deep.

type

feature · bug · feedback · support — omit to auto-classify.

source_label

Free-text label for where the feedback came from (app name, marketing site, CLI, …). Truncated to 200 characters.

submitter_email

Reporter's email, if you collect it. Required to notify them when the feedback is marked done; without it the submission is anonymous. Values that don't look like an email address (or exceed 254 characters) are ignored.

Responses

Need a key? Every app has a public pk_live_… ingest key. Owners and admins copy it from the dashboard; rotate or revoke it anytime. It only grants write access to this one endpoint, so it's safe to ship in client code.

Best practices