Feedback
Quality reports and feature requests use the same authenticated feedback service, but carry different information. Use a connected account for either kind of submission.
Every successful submission returns an opaque report ID. The CLI and MCP
confirmations print it as Receipt:, while Python exposes it as
FeedbackResponse.report_id. The ID names the submission for later triage; it
is not a URL or a report-reading endpoint.
On this page
Quality reports
Section titled “Quality reports”Report what you observed, not what you think caused it. Choose the
earliest visible symptom; repeat --reason when more than one label
independently describes the result.
A quality report requires the page’s full HTTP(S) URL and at least one reason label. The note is optional and accepts up to 2,000 characters; use it for a short “expected X, got Y” explanation. There is no saved-result handle field.
If you are unsure where the problem begins, use the Troubleshooting checks before choosing a label.
Replace the example URL, reasons, and note with what you observed. Running the command sends the report to Analog:
Report an affected page
analog feedback quality https://example.com/page \ --reason under_rendered \ --reason poor_field_naming \ --note "the final products are missing; prices landed under text_3"The confirmation names the URL and reasons, states that page content is
not included, and prints a Receipt: ID. Keep that ID if you want to
refer to the report later.
Reason labels
Section titled “Reason labels”Page access and rendering
Section titled “Page access and rendering”undetected_block- The page was a bot challenge or block that Analog treated as content. A block Analog already identifies is explicit and needs no report.
under_rendered- Content visible on the page is missing from the fetched markdown.
garbled_markdown- The markdown splits characters apart, runs words together, or puts content in the wrong order.
Missing, extra, or misplaced records
Section titled “Missing, extra, or misplaced records”no_records_found- The page plainly shows records, but none came back.
under_extraction- Some records visible on the page are missing.
over_extraction- The result contains more records than the page does.
wrong_content_extracted- The records came from the wrong part of the page.
page_chrome_in_records- Navigation, footer, menu, or other page controls appeared as data.
Fields and values
Section titled “Fields and values”poor_field_naming- Fields have generic names such as
text_2. misfielded_values- Values landed under the wrong fields.
Anything else
Section titled “Anything else”other- None of the labels above fit. Include a note explaining what you observed.
Feature requests
Section titled “Feature requests”Feature requests are free text, up to 2,000 characters. They carry no URL and no reason labels. Describe what you wanted to do and could not do.
Replace the placeholder with your request before running the command:
Send a request
analog feedback request "<your-request>"The CLI confirms Request received., prints the Receipt: ID, and
thanks you. See Privacy for what is submitted.
From MCP
Section titled “From MCP”The MCP server exposes the same two report shapes through
analog_feedback.
Use extraction_quality with the page URL and reason labels,
or feature_request with the request in note.
Replace the example values before asking the agent to submit. The tool
returns a confirmation with a Receipt: ID, just as the CLI does.
Tool: analog_feedback
Report page quality
{ "kind": "extraction_quality", "url": "https://example.com/page", "labels": ["under_rendered", "poor_field_naming"], "note": "the final products are missing; prices landed under text_3"}Tool: analog_feedback
Request a feature
{ "kind": "feature_request", "note": "<your-request>"}From Python
Section titled “From Python”Construct a FeedbackRequest, then pass it to
Client.submit_feedback().
Constructing the request validates its fields locally; submitting it
sends the report to Analog.
The response exposes the receipt as report_id. Both examples print
that ID after a successful submission. Replace the example values with
the report or request you intend to send.
Submit a quality report
from analog import Client, FeedbackRequest
report = FeedbackRequest( kind="extraction_quality", url="https://example.com/page", labels=["under_rendered", "poor_field_naming"], note="the final products are missing; prices landed under text_3",)with Client() as client: receipt = client.submit_feedback(report)
print(receipt.report_id)Submit a feature request
from analog import Client, FeedbackRequest
report = FeedbackRequest(kind="feature_request", note="<your-request>")with Client() as client: receipt = client.submit_feedback(report)
print(receipt.report_id)Privacy
Section titled “Privacy”Extraction URLs are never logged. A quality report includes the URL you explicitly submit; it never includes page content. A quality-report payload contains only the report kind, URL, labels, optional note, and label-set version. It has no fields for page HTML, markdown, records, or a saved-result handle.
Feature requests submit your request text, report kind, and label-set version, with no page URL or reason labels. Your note or request text is sent as written; describe the issue without pasting private page content into it.