---
title: "Submit feedback or a map correction (learning)"
method: POST
path: "/geo/feedback"
tags: ["Learning"]
---

# Submit feedback or a map correction (learning)

`POST /geo/feedback`

## Request

- Base URL: `https://geo.thinair.co`
- URL: `https://geo.thinair.co/geo/feedback`
- Auth: HTTP bearer

Learning surface — submit a verdict or a correction on a prior result. This is NOT a normal geocoding query: it feeds ThinAir Geo's validation-gated promotion/learning pipeline. Authenticated (401 for anonymous — unattributed feedback is unusable), and never metered (no quota debit). `correction.note` is retained for human review and is never emitted to analytics.

## Request body

- FeedbackRequest
  - `verdict` 'accepted' | 'rejected' | 'corrected', required: Your judgement of the subject result.
  - `subject_event_id` string: Event id of the result you're commenting on (or provide tool + query_text).
  - `tool` string
  - `query_text` string
  - `subject_entity_id` string: Stable id the feedback is about.
  - `correction` object: Required when verdict is 'corrected' (entity_id, label, or lat+lon).
    - `entity_id` string
    - `label` string
    - `lat` number
    - `lon` number
    - `note` string: Free-text note for human review — never sent to analytics.
  - `feedback_source` 'user' | 'agent' | 'automated_validator' | 'support'

## Response `202`

Feedback recorded (200 with deduped:true on a repeat).

- FeedbackResponse
  - `feedback_id` string, required
  - `status` string
  - `deduped` boolean

## Other responses

- `400`: Invalid feedback.
- `401`: Authentication required — anonymous feedback is not accepted.

---

[API](https://skmtc.dev/thinair/apis/thinair-geo-api.md) · [All operations](https://skmtc.dev/thinair/apis/thinair-geo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinair/apis/thinair-geo-api/revisions/8fac2d5e4b34?raw)
