---
title: "TrustMyChoice — record a structured observation"
method: POST
path: "/v1/quality/observations/record"
---

# TrustMyChoice — record a structured observation

`POST /v1/quality/observations/record`

## Request

- Base URL: `https://api.scrubmytext.com`
- URL: `https://api.scrubmytext.com/v1/quality/observations/record`
- Auth: HTTP bearer

Stores opt-in structured metrics for one exact target/version/task. Receipt-linked observations are E1; other observations are E0. No prompt, response, credential, email, or free-form review is accepted. A Founding Access, legacy verified-contributor, or subscription key may be used.

## Request body

- QualityObservation
  - `target_type` 'mcp_server' | 'rest_api', required
  - `provider_domain` string, required
  - `canonical_endpoint` string, uri, required
  - `version` string, required
  - `interface_digest` string: A lowercase SHA-256 digest, with an optional sha256: prefix.
  - `task_category` string, required
  - `region` string
  - `max_latency_ms` integer
  - `max_price_micros` integer
  - `minimum_evidence_class` 'E0' | 'E1'
  - `observation_key` string, required
  - `receipt_id` string
  - `outcome_success` boolean, required
  - `reliability` boolean, required
  - `latency_ms` integer
  - `quoted_price_micros` integer
  - `final_price_micros` integer
  - `observed_at` string, date-time

## Response `200`

Observation result and evidence class

## Other responses

- `401`: Founding Access, verified-contributor, or subscription key required
- `422`: Invalid structured observation

---

[API](https://skmtc.dev/scrubmytext/apis/scrubmytext-agent-infrastructure-api.md) · [All operations](https://skmtc.dev/scrubmytext/apis/scrubmytext-agent-infrastructure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrubmytext/apis/scrubmytext-agent-infrastructure-api/revisions/54ace36baccf?raw)
