Feedback

Send feedback

Sends feedback to the Run402 team via Telegram. Requires wallet auth, a control-plane session, or a grant key; free within tier. Idempotent. Write-only: there is no inbox to read — set return_address if a human may contact you back, or for a response from a human use POST /orgs/v1/{org_id}/escalations. When project_id is present the caller must be authorized to read that project (403, no existence leak), and the Telegram delivery is enriched server-side with the project's public site URL, org/project ids, and the sender principal's display_name. This is also how promotion consent for the builder-promotion offer (hand_to_member next_actions entries on commit/promote responses) travels back to Run402: a message beginning with promote: records a feedback_sent fact with payload.promotion_consent: true on the named project, which then suppresses further offers for that project. A promote: message without project_id is refused 400 VALIDATION_FAILED with field: "project_id" and a resend_with_project next action, and nothing is delivered. The 200 response carries a register_contact next action when Run402 holds no verified email for the sender's organization.

post/feedback/v1

Request

  • Base URL: https://api.run402.com
  • URL: https://api.run402.com/feedback/v1
  • Auth: one of:
    • API key in header SIGN-IN-WITH-X
    • HTTP bearer

Headers

SIGN-IN-WITH-Xstring required

SIWX auth header — base64-encoded JSON payload containing a signed CAIP-122 (EIP-4361) message. See https://docs.x402.org/extensions/sign-in-with-x.

Request body

messagestring required

Message text. A promotion consent (the hand_to_member yes/no ask) is sent verbatim as promote: yes, and a message starting promote: requires project_id.

project_idstring

Optional. Scopes the feedback to a project: the caller must be authorized to read it (403 otherwise), the Telegram delivery is enriched with the project's site URL and the sender's display name, and the resulting feedback_sent fact is recorded at project scope instead of organization scope.

handlestring

Optional. The human's X/social handle, so a promotion post can tag them. Delivered in the Telegram message only, never stored. The hand_to_member template placeholder @… is treated as absent.

return_addressstring

Optional. How a human can contact the sender back: an email, a handle, a URL, free-form. Trimmed; blank is treated as absent. Delivered in the Telegram message as a Reply to: line, on plain and project-scoped feedback alike; never stored and never in the feedback_sent event. The hand_to_member template placeholder … is treated as absent.

Response

Message sent

statusstring

Example response

{
  "status": "sent",
  "next_actions": [
    {
      "method": "POST",
      "path": "/tiers/v1/hobby",
      "auth": "x402"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.