---
title: "Submit machine-readable feedback or data corrections"
method: POST
path: "/v1/feedback"
tags: ["feedback"]
---

# Submit machine-readable feedback or data corrections

`POST /v1/feedback`

## Request

- Base URL: `https://satoshidata.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://satoshidata.ai/v1/feedback`
- Auth: none declared

Free machine-readable label corrections, missing-label suggestions, data-quality reports, or general feedback.

## Request body

- FeedbackSubmitRequest
  - `type` 'label_correction' | 'label_missing' | 'data_quality' | 'general' | 'general_feedback', required: Allowed values: label_correction, label_missing, data_quality, general, general_feedback.
  - `address` string, nullable
  - `current_label` string, nullable
  - `suggested_label` string, nullable
  - `suggested_category` string, nullable
  - `reason` string, nullable
  - `confidence` string, nullable
  - `source_url` string, nullable
  - `summary` string, nullable
  - `message` string, nullable: Alias for summary for general feedback.
  - `endpoint` string, nullable
  - `severity` 'info' | 'low' | 'medium' | 'high' | 'critical', nullable: Optional triage severity for general feedback.
  - `category` 'api_design' | 'docs' | 'data_quality' | 'label_correction' | 'bug' | 'other', nullable: Optional category for general feedback.
  - `asks` string[], nullable

## Response `200`

Submit feedback

- SubmitFeedbackResponse
  - `ok` boolean, required
  - `feedback_id` string, nullable
  - `stored` boolean, required
  - `rate_limit` RateLimitProjection
    - `limit` integer, nullable
    - `remaining` integer, nullable
    - `reset_at` string, nullable
    - `bucket` string, nullable
  - `_meta` ResponseMeta, required
    - `endpoint` string, required
    - `freshness` string, nullable
    - `freshness_semantics` 'internal_refresh' | 'source_poll' | 'claim_made', nullable
    - `source` string, required
    - `price_sats` integer, nullable
    - `price_usd` string, nullable
    - `docs` string, nullable
    - `warnings` ResponseWarning[]
      - `code` string, required
      - `message` string, required
    - `pagination` ResponsePagination
      - `offset` integer, required
      - `limit` integer, required
      - `total_alerts` integer, required
      - `next_offset` integer, nullable, required
      - `has_more` boolean, required
    - `view` 'compact', nullable
    - `bitcoin_backend` string, nullable
    - `beta` boolean, nullable
    - `cache_seconds` integer, nullable
    - `cache_ttl_seconds` integer, nullable
    - `cache_status` string, nullable
    - `cache_age_seconds` number, nullable
    - `cache_cached_at` string, nullable
    - `cached` boolean, nullable
    - `cache_policy` string, nullable
    - `compute_ms` integer, nullable
    - `warning` string, nullable
    - `refresh_warning` string, nullable
    - `last_refresh_started_at` string, nullable
    - `last_refresh_completed_at` string, nullable
    - `last_refresh_status` string, nullable
    - `last_refresh_error` string, nullable
    - `last_refresh_duration_ms` integer, nullable
    - `feature_flag` string, nullable
    - `rollout_state` string, nullable
    - `schema_version` string, nullable
    - `methodology_version` string, nullable
    - `materialized_source` string, nullable
    - `max_hops` integer, nullable
    - `retention` string, nullable
    - `not_compliance_advice` boolean, nullable
    - `future_native_price_mode` string, nullable
    - `future_native_price_note` string, nullable
    - `future_native_quote_endpoint` string, nullable
    - `overview_activity_cache` object, nullable
    - `attribution_confidence` string, nullable
    - `generated_at` string, nullable
    - `last_computed` string, nullable
    - `snapshot_generated_at` string, nullable
    - `snapshot_age_seconds` number, nullable
    - `snapshot_stale_after_seconds` integer, nullable
    - `snapshot_status` string, nullable
    - `history_window_basis` string, nullable
    - `total_blocks_last_24h` integer, nullable
    - `field_semantics` object, nullable
    - `semantic_completeness` object, nullable
  - `beta` boolean, required

## Other responses

- `400`: Bad request.
- `404`: Resource not found.
- `405`: Method not allowed.
- `422`: Request validation failed.

---

[API](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api.md) · [All operations](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api/revisions/9fc9edc41ac4?raw)
