---
title: "Get discovered subdomains"
method: GET
path: "/jobs/{job_id}/subdomains"
tags: ["jobs"]
---

# Get discovered subdomains

`GET /jobs/{job_id}/subdomains`

## Request

- Base URL: `https://api.whoisgeni.us` (the document declares no server; this is the origin it was published from)
- URL: `https://api.whoisgeni.us/jobs/{job_id}/subdomains`
- Auth: none declared

Get subdomains discovered for the domain in this job.

Triggers subdomain enumeration on first call (CT SAN extraction + DNS brute-force).
Subsequent calls within the cache TTL return cached results.

Returns 404 if the job does not exist, 409 if the analysis is still in progress.

## Path parameters

- `job_id` string, required

## Headers

- `X-API-Key` string, nullable

## Response `200`

Successful Response

- ApiResponseSubdomainsResponse
  - `data` SubdomainsResponse: Response for the subdomain enumeration endpoint. Contains all discovered subdomains with per-entry source attribution, caching metadata, and wildcard detection status. Attributes: job_id: The job that triggered subdomain enumeration. domain: The target domain whose subdomains were discovered. subdomains: List of discovered subdomains with source attribution. total: Total number of unique subdomains found. sources_used: Which discovery methods were used (e.g., ["ct_san", "dns_brute"]). cached: Whether the result was served from Redis cache. wildcard_detected: Whether the domain has a wildcard DNS record.
    - `job_id` string, required
    - `domain` string, required
    - `subdomains` SubdomainEntry[], required
      - `subdomain` string, required
      - `source` 'ct_san' | 'dns_brute', required
    - `total` integer, required
    - `sources_used` string[], required
    - `cached` boolean, required
    - `wildcard_detected` boolean, required
  - `error` ErrorDetail: Structured error information for API error responses. Attributes: code: Machine-readable error code (e.g. "JOB_NOT_FOUND"). message: Human-readable error description. details: Optional additional context for debugging.
    - `code` string, required
    - `message` string, required
    - `details` object, nullable
  - `meta` object, nullable

## Other responses

- `401`: Unauthorized — missing or invalid API key/JWT.
- `404`: Job not found
- `409`: Analysis not yet complete
- `422`: Validation Error

---

[API](https://skmtc.dev/whoisgeni/apis/whoisgenius.md) · [All operations](https://skmtc.dev/whoisgeni/apis/whoisgenius/llms.txt) · [OpenAPI document](https://skmtc.dev/whoisgeni/apis/whoisgenius/revisions/707f1c34f6b3?raw)
