---
title: "Subdomain Discovery"
method: GET
path: "/api/util/subdomains"
---

# Subdomain Discovery

`GET /api/util/subdomains`

## Request

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

Enumerate the subdomains of a domain from Certificate Transparency logs — fully passive (no packets are sent to the target; CT logs are public records of every TLS certificate ever issued).

## 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)
