---
title: "Domain Change History"
method: GET
path: "/api/util/changes"
---

# Domain Change History

`GET /api/util/changes`

## Request

- Base URL: `https://dechonet.com`
- URL: `https://dechonet.com/api/util/changes`
- Auth: one of:
  - none
  - HTTP bearer

Report what has changed for a domain over time — the security regressions and drift that DechoNet's daily monitoring has recorded across every watch on the domain (SSL grade, headers, DNS, OWASP posture, impersonation exposure, etc.).

## Query parameters

- `query` string, required
- `lang` 'en' | 'ko'

## Response `200`

Result

- Envelope
  - `ok` boolean, required
  - `requestId` string, required
  - `cached` boolean, required: True when a recent stored result was returned.
  - `updatedAt` string, date-time, nullable: When the result was produced.
  - `data` unknown, required
  - `error` object, nullable, required
    - `code` 'INVALID_INPUT' | 'NOT_FOUND' | 'RATE_LIMITED' | 'UPSTREAM_ERROR' | 'UPSTREAM_TIMEOUT' | 'INVALID_API_KEY' | 'API_KEY_REQUIRED'
    - `message` string
    - `retryAfter` integer, nullable
    - `reason` string
  - `previousSnapshot` object: The previous stored result for the same target, when there is one.

## Other responses

- `400`: Invalid input
- `401`: Wrong or revoked API key, or a key is required
- `429`: Rate limited — see the Retry-After header
- `503`: An upstream source failed or timed out

---

[API](https://skmtc.dev/dechonet/apis/dechonet-api.md) · [All operations](https://skmtc.dev/dechonet/apis/dechonet-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dechonet/apis/dechonet-api/revisions/87d89f1c4d1b?raw)
