RESPONSE FORMAT

A contract you can actually read.

Explore the sample JSON envelope, required fields, finding categories, completion states, and downloadable validation schema.

A small envelope with explicit meaning.

The examples share the same top-level structure. That makes a consumer reusable without suggesting that a keyword cluster is the same kind of evidence as an inspected HTML element.

FieldTypeMeaning
schema_versionstringThe report contract version. The bundled examples use 1.0.
report_idstringAn identifier for this report. Sample identifiers begin with sample-.
samplebooleanTrue identifies an illustrative fixture rather than a live observation.
analysis_typestringOne of the eight documented workflow slugs.
statusstringcomplete, partial, or failed. Partial describes incomplete coverage.
targetobjectA readable label and a description of the supplied input kind.
summarystringA concise interpretation of the report’s scope and findings.
findingsarrayEvidence-linked items with id, outcome, title, evidence, and action.
not_measuredarrayReadable descriptions of unavailable or out-of-scope measurements.

A complete example

seo-analysis.json
{
  "schema_version": "1.0",
  "report_id": "sample-seo-analysis",
  "sample": true,
  "analysis_type": "seo-analysis",
  "status": "complete",
  "target": {
    "label": "Documentation page",
    "input_kind": "Supplied HTML"
  },
  "summary": "A small page review, with the evidence attached.",
  "findings": [
    {
      "id": "f01",
      "outcome": "pass",
      "title": "A descriptive title is present",
      "evidence": "<title>Getting started with the sample project</title>",
      "action": "Keep the title specific to this guide."
    },
    {
      "id": "f02",
      "outcome": "review",
      "title": "The description needs attention",
      "evidence": "The supplied document has no description meta element.",
      "action": "Write an accurate summary of the page."
    },
    {
      "id": "f03",
      "outcome": "pass",
      "title": "The main heading is clear",
      "evidence": "One H1 is present: Getting started.",
      "action": "Keep a logical heading hierarchy."
    }
  ],
  "not_measured": [
    "Live indexing status",
    "Search rankings",
    "Real-user performance"
  ]
}

Observations and actions are different fields.

A finding’s evidence describes the supplied input. Its action suggests what a reviewer could do next. The report never needs to hide both ideas inside a score. Preserve the distinction in your interface and in any downstream task created from a finding.

Validate the shape before using it.

The downloadable schema uses JSON Schema Draft 2020-12. It requires the documented envelope, defines the finding shape, and rejects unexpected properties. The sample fixtures are designed to validate against it. A production schema may need additional source identifiers, timestamps, and authorized provider metadata.

Download the JSON Schema

Missing does not mean zero.

Do not fill unavailable measurements with plausible defaults. A partial report should identify the uncollected scope. A failed report can contain an empty findings array and a clear summary of why no useful analysis was completed. The completion status describes processing, not whether a target is high quality.

Our structured JSON guide explains the design tradeoffs in more detail.

Make your next move
a clearer one.

Explore the workflows. Inspect the evidence. Build something useful.