보안 연락처 파일 security.txt 검증 API API 레퍼런스
security.txt의 연락처, 만료일 및 RFC 9116 필드를 검증합니다. 이 레퍼런스를 사용해 작업을 선택하고 문서화된 응답 계약을 통합하세요.
작업
GET /v1/security-txt
GET
/v1/security-txt
크레딧: 1
쿼리 매개변수
| 매개변수 | 유형 | 필수 |
|---|---|---|
| domain | string | 선택 사항 |
| url | string | 선택 사항 |
응답 필드
| 필드 | 유형 |
|---|---|
classification |
object |
classification.status |
string |
classification.reason |
string |
classification.evidence |
object |
classification.evidence.source |
string |
classification.evidence.method |
string |
classification.evidence.observed_at |
string |
classification.evidence.detail |
string |
classification.checked_at |
string |
domain |
string |
status |
string |
location |
string | null |
checked_at |
string |
fetch[] |
object[] |
fetch[] |
object |
fetch[].location |
string |
fetch[].checked_url |
string |
fetch[].http_status |
integer | null |
fetch[].final_url |
string | null |
fetch[].via_proxy |
boolean | null |
fetch[].content_type |
string | null |
fetch[].bytes |
integer | null |
fetch[].truncated |
boolean |
fetch[].outcome |
string |
fetch[].error |
string | null |
fields |
object |
fields.contact[] |
string[] |
fields.expires |
string | null |
fields.expires_in_days |
integer | null |
fields.encryption[] |
string[] |
fields.acknowledgments[] |
string[] |
fields.preferred_languages[] |
string[] |
fields.canonical[] |
string[] |
fields.policy[] |
string[] |
fields.hiring[] |
string[] |
fields.csaf[] |
string[] |
fields.other_fields[] |
object[] |
fields.other_fields[] |
object |
fields.other_fields[].name |
string |
fields.other_fields[].value |
string |
signed |
boolean |
issues[] |
object[] |
issues[] |
object |
issues[].code |
string |
issues[].severity |
string |
issues[].field |
string | null |
caveats[] |
string[] |
예제 요청
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/security-txt?domain=example.com&url=https%3A%2F%2Fexample.com"const response = await fetch("https://domscan.net/v1/security-txt?domain=example.com&url=https%3A%2F%2Fexample.com", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/security-txt?domain=example.com&url=https%3A%2F%2Fexample.com",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/security-txt?domain=example.com&url=https%3A%2F%2Fexample.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/security-txt?domain=example.com&url=https%3A%2F%2Fexample.com")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))예제 응답
{
"domain": "example.com",
"status": "valid",
"location": "well_known",
"checked_at": "2026-10-09T10:00:00.000Z",
"fetch": [
{
"location": "well_known",
"checked_url": "https://example.com/.well-known/security.txt",
"http_status": 200,
"final_url": "https://example.com/.well-known/security.txt",
"via_proxy": true,
"content_type": "text/plain; charset=utf-8",
"bytes": 279,
"truncated": false,
"outcome": "found",
"error": null
}
],
"fields": {
"contact": [
"mailto:[email protected]",
"https://example.com/report"
],
"expires": "2027-01-01T00:00:00.000Z",
"expires_in_days": 83,
"encryption": [
"https://example.com/pgp-key.txt"
],
"acknowledgments": [],
"preferred_languages": [
"en",
"es"
],
"canonical": [
"https://example.com/.well-known/security.txt"
],
"policy": [
"https://example.com/security-policy"
],
"hiring": [],
"csaf": [],
"other_fields": []
},
"signed": false,
"issues": [],
"caveats": []
}
HTTP 상태 코드
200성공400잘못된 요청401인증되지 않음402결제 필요429요청 과다502잘못된 게이트웨이