---
title: "Get detailed report"
method: GET
path: "/report/{id}"
tags: ["reports"]
---

# Get detailed report

`GET /report/{id}`

Retrieve comprehensive deliverability analysis report

## Path parameters

- `id` string, uuid, required

## Response `200`

Report retrieved successfully

- Report
  - `id` string, uuid, required — Report identifier
  - `test_id` string, uuid, required — Associated test ID
  - `score` number, float, required — Overall deliverability score (0-10)
  - `summary` ScoreSummary
    - `authentication_score` number, float, required — SPF/DKIM/DMARC score (max 3 pts)
    - `spam_score` number, float, required — SpamAssassin score (max 2 pts)
    - `blacklist_score` number, float, required — Blacklist check score (max 2 pts)
    - `content_score` number, float, required — Content quality score (max 2 pts)
    - `header_score` number, float, required — Header quality score (max 1 pt)
  - `checks` Check[], required
    - `category` 'authentication' | 'dns' | 'content' | 'blacklist' | 'headers' | 'spam', required — Check category
    - `name` string, required — Check name
    - `status` 'pass' | 'fail' | 'warn' | 'info' | 'error', required — Check result status
    - `score` number, float, required — Points contributed to total score
    - `message` string, required — Human-readable result message
    - `details` string — Additional details (may be JSON)
    - `severity` 'critical' | 'high' | 'medium' | 'low' | 'info' — Issue severity
    - `advice` string — Remediation advice
  - `authentication` AuthenticationResults
    - `spf` AuthResult
      - `result` 'pass' | 'fail' | 'none' | 'neutral' | 'softfail' | 'temperror' | 'permerror', required — Authentication result
      - `domain` string — Domain being authenticated
      - `selector` string — DKIM selector (for DKIM only)
      - `details` string — Additional details about the result
    - `dkim` AuthResult[]
      - `result` 'pass' | 'fail' | 'none' | 'neutral' | 'softfail' | 'temperror' | 'permerror', required — Authentication result
      - `domain` string — Domain being authenticated
      - `selector` string — DKIM selector (for DKIM only)
      - `details` string — Additional details about the result
    - `dmarc` AuthResult
      - `result` 'pass' | 'fail' | 'none' | 'neutral' | 'softfail' | 'temperror' | 'permerror', required — Authentication result
      - `domain` string — Domain being authenticated
      - `selector` string — DKIM selector (for DKIM only)
      - `details` string — Additional details about the result
    - `bimi` AuthResult
      - `result` 'pass' | 'fail' | 'none' | 'neutral' | 'softfail' | 'temperror' | 'permerror', required — Authentication result
      - `domain` string — Domain being authenticated
      - `selector` string — DKIM selector (for DKIM only)
      - `details` string — Additional details about the result
  - `spamassassin` SpamAssassinResult
    - `score` number, float, required — SpamAssassin spam score
    - `required_score` number, float, required — Threshold for spam classification
    - `is_spam` boolean, required — Whether message is classified as spam
    - `tests` string[] — List of triggered SpamAssassin tests
    - `report` string — Full SpamAssassin report
  - `dns_records` DNSRecord[]
    - `domain` string, required — Domain name
    - `record_type` 'MX' | 'SPF' | 'DKIM' | 'DMARC' | 'BIMI', required — DNS record type
    - `status` 'found' | 'missing' | 'invalid', required — Record status
    - `value` string — Record value
  - `blacklists` BlacklistCheck[]
    - `ip` string, required — IP address checked
    - `rbl` string, required — RBL/DNSBL name
    - `listed` boolean, required — Whether IP is listed
    - `response` string — RBL response code or message
  - `raw_headers` string — Raw email headers
  - `created_at` string, date-time, required

## Other responses

- `404` — Report not found

## Changes

- **2025-10-19** `ba4e06ff79ef` — 1 warning, 1 info
  - added the new `BIMI` enum value to the `dns_records/items/record_type` response property for the response status `200`
  - added the optional property `authentication/bimi` to the response with the `200` status
- **2025-10-15** `0178a1195e1a` — 3 breaking, 15 info
  - for the `path` request parameter `id`, the format changed from no format to `uuid`
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `object` for status `404`
  - removed the pattern `^[a-z0-9-]+$` from the `path` request parameter `id`
  - …14 more

[Change history](https://skmtc.dev/happydomain/apis/happydeliver-api/changes/report/:id/get.md)

---

[API](https://skmtc.dev/happydomain/apis/happydeliver-api.md) · [All operations](https://skmtc.dev/happydomain/apis/happydeliver-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/happydomain/happydeliver-api/revisions/ba4e06ff79ef/schema)
