# DNS Lookup and Troubleshooting API
Retrieve complete DNS records for a domain or webpage URL.
## API Overview
- **HTTP Protocol:** HTTPS
- **HTTP Method:** GET
- **HTTP Endpoint:** https://api.gugudata.io/v1/websitetools/dns-lookup
- **Response Type:** application/json; charset=utf-8
- **DEMO Endpoint:** https://api.gugudata.io/v1/websitetools/dns-lookup/demo
- **Live Demo:** https://gugudata.io/demo/dnslookup
- **Postman:** https://www.postman.com/gugudata/gugudata-io
- **LLM Page:** https://gugudata.io/details/dnslookup/llm
- **Raw Markdown:** https://gugudata.io/details/dnslookup/llm.md
## Remote MCP
- **MCP Endpoint:** https://mcp.gugudata.io/mcp
- **MCP Guide:** https://gugudata.io/mcp/
- **Authorization:** OAuth authorization opens in the browser; do not paste appkeys into MCP clients.
- **Tool Scope:** MCP clients receive GuGuData API tools available to the authorized account.
## Data & API Features
- Eight essential DNS record types: Query A, AAAA, MX, TXT, NS, CNAME, SRV, and SOA records without combining multiple lookup tools.
- Domains and webpage URLs: Submit a domain or HTTP(S) URL and receive records for its normalized hostname.
- Email and ownership checks: Review MX and TXT records during mail setup, sender verification, and domain ownership validation.
- Launch and migration validation: Confirm address, nameserver, alias, and authority records before or after a domain change.
- Monitoring and incident diagnosis: Store structured DNS snapshots for scheduled checks, change detection, and operational investigations.
- Service and security reviews: Inspect discovery records and domain configuration for missing, stale, or unexpected values.
## API Request Parameters
| Name | Type | Is Required | Default Value | Remark |
| --- | --- | --- | --- | --- |
| appkey | string | true | YOUR_APPKEY | API key used to authenticate the request. |
| domain | string | true | https://gugudata.io/docs | Domain name or HTTP(S) URL to inspect. Paths, case, trailing dots, and internationalized domain names are normalized. IP addresses and other URL schemes are rejected. |
## API Response Parameters
| Name | Type | Remark |
| --- | --- | --- |
| dataStatus.requestParameter | string | Privacy-safe summary of the normalized request. |
| dataStatus.statusCode | integer | Application-level status code. |
| dataStatus.status | string | Application-level result status. |
| dataStatus.statusDescription | string | Human-readable application status message. |
| dataStatus.responseDateTime | string | Time at which the response was generated. |
| dataStatus.dataTotalCount | integer | Number of matching or returned records for this request. |
| data.* | array<object> | Dynamic record groups for A, AAAA, MX, TXT, NS, CNAME, SRV, and SOA. Groups with no records are omitted; NXDOMAIN returns an empty data object. |
| data.*.domain | string | Normalized owner name for the DNS record. |
| data.*.ttl | string | Time to live reported for the DNS record. |
| data.*.class | string | DNS class for the record, such as IN. |
| data.*.type | string | Record type matching its containing group. |
| data.*.value | string | Complete record value. MX, SRV, and SOA include all fields, and multipart TXT values are joined into one string. |
## API Response Status Codes
| Status Code | Explanation of Status Code | Remarks |
| --- | --- | --- |
| 200 | Request processed successfully. | Some endpoints expose a separate application-level status field in the response body, such as `dataStatus.statusCode`. |
| 400 | Invalid request parameters or request format. | Check required fields, data types, and request body format. |
| 401 | Missing or unknown application key. | Provide a valid `appkey` with the request. |
| 403 | The application key is recognized but access is not allowed. | The key may be expired, inactive, or not permitted for the requested API. |
| 429 | Request rate or trial usage limit exceeded. | Reduce request frequency and retry with backoff. If a trial allowance is exhausted, check Trial Keys for remaining requests and subscribe to continue. |
| 500 | Internal service error. | Retry later or contact support if the error persists. |
## cURL Example
```bash
curl --location 'https://api.gugudata.io/v1/websitetools/dns-lookup?appkey=YOUR_APPKEY&domain=https%3A%2F%2Fgugudata.io%2Fdocs'
```