openapi: 3.0.0 info: title: Web Check 🕵 description: > **API documentation for the [Web Check](https://github.com/lissy93/web-check) backend endpoints.**
_Web Check gives you x-ray vision, revealing the configration and inner workings of any website._

[![Website - Web-Check.xyz](https://img.shields.io/badge/Website-webcheck.zyz-9fef00?style=flat&logo=googlecloudstorage&logoColor=white&labelColor=1c1d28)](https://web-check.xyz/) [![DockerHub - Lissy93/Web-Check](https://img.shields.io/badge/DockerHub-Lissy93/Web_Check-1fb1f4?style=flat&logo=docker&logoColor=white&labelColor=1c1d28)](https://hub.docker.com/r/lissy93/web-check) [![GitHub - Lissy93/Web-Check](https://img.shields.io/badge/GitHub-Lissy93/Web_Check-a832fc?style=flat&logo=github&logoColor=white&labelColor=1c1d28)](https://github.com/lissy93/web-check) [![Sponsor - Alicia Sykes](https://img.shields.io/badge/Sponsor-Alicia_Sykes-f2159a?style=flat&logo=githubsponsors&logoColor=white&labelColor=1c1d28)](https://github.com/sponsors/Lissy93) version: 1.0.0 license: name: 'License: MIT' url: https://github.com/Lissy93/web-check/blob/master/LICENSE termsOfService: https://web-check.xyz/about#terms-info externalDocs: description: 'Source: GitHub' url: https://github.com/Lissy93/web-check servers: - url: http://localhost:4321/api description: Local (Development) - url: http://localhost:3000/api description: Local (Production) - url: https://web-check.xyz/api description: Public Demo (Vercel) - url: https://web-check.as93.net/api description: Public Demo (Netlify) tags: - name: Quality & Info description: Endpoints providing quality metrics, and general website information. - name: Security description: Endpoints related to website and server security configurations. - name: Server Info description: Endpoints providing information about the server hosting the website. - name: Client-Side Information description: Endpoints providing metrics about the website's client-side content. components: responses: Error: description: Internal Server Error - An error occurred while processing the request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Skipped: description: No Content - The request was successful, but no content is returned. content: application/json: schema: $ref: '#/components/schemas/SkippedResponse' MissingParam: description: Bad Request - Missing or incorrect input parameters. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Unauthorized - Authentication credentials were missing or incorrect. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: Forbidden - The credentials provided do not grant the necessary permissions. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' TooManyRequests: description: Too Many Requests - Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: ErrorResponse: type: object properties: error: type: string description: A description of the error SkippedResponse: type: object properties: skipped: type: string description: A description of why the check was skipped paths: /archives: get: summary: Retrieve archive data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: firstScan: type: string format: date-time description: The timestamp of the first scan example: "1996-12-21T17:11:14.000Z" lastScan: type: string format: date-time description: The timestamp of the last scan example: "2024-05-14T13:45:47.000Z" totalScans: type: integer description: The total number of scans example: 3393 changeCount: type: integer description: The total number of changes example: 1946 averagePageSize: type: integer description: The average page size in KB example: 527 scanFrequency: type: object properties: daysBetweenScans: type: number format: float description: Average days between scans example: 2.95 daysBetweenChanges: type: number format: float description: Average days between changes example: 5.14 scansPerDay: type: number format: float description: Number of scans per day example: 0.34 changesPerDay: type: number format: float description: Number of changes per day example: 0.19 scans: type: array items: type: array items: type: string description: List of scan details example: - ["19961221171114", "200", "RX44GNWXPO4HX6ERA2LHBORWD4BJ2HUJ", "971", null] - ["19970209085620", "200", "6PUZMQAGXXV3RCEQ65WWUCMIJVSG4OQI", "1025", null] - ["19970209085620", "200", "RX44GNWXPO4HX6ERA2LHBORWD4BJ2HUJ", "975", null] - ["19970412142046", "200", "RX44GNWXPO4HX6ERA2LHBORWD4BJ2HUJ", "1022", null] - ["19980206180754", "200", "B6ACYSFKSPWKXRPASZYOK3IBIBY7HB3I", "1102", null] scanUrl: type: string format: uri description: The URL to the scan example: "https://duck.com" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /block-lists: get: summary: Retrieve block lists data tags: - Security parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: blocklists: type: array items: type: object properties: server: type: string description: The name of the blocklist server example: "AdGuard" serverIp: type: string description: The IP address of the blocklist server example: "176.103.130.130" isBlocked: type: boolean description: Whether the URL is blocked by the server example: false '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /carbon: get: summary: Retrieve carbon data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: statistics: type: object properties: adjustedBytes: type: number format: float description: Adjusted bytes transferred example: 104.19 energy: type: number format: float description: Energy consumption in kWh example: 7.859794422984123e-8 co2: type: object properties: grid: type: object properties: grams: type: number format: float description: CO2 emissions in grams from grid energy example: 0.00003474029134958983 litres: type: number format: float description: CO2 emissions in litres from grid energy example: 0.00001932255004864186 renewable: type: object properties: grams: type: number format: float description: CO2 emissions in grams from renewable energy example: 0.000030118732228875164 litres: type: number format: float description: CO2 emissions in litres from renewable energy example: 0.000016752038865700363 cleanerThan: type: integer description: Percentage of websites that are less clean than the queried site example: 1 rating: type: string description: Environmental rating example: "A+" green: type: boolean description: Whether the site is green example: false scanUrl: type: string format: uri description: The URL to the scan example: "https://duck.com" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /cookies: get: summary: Retrieve cookies data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: headerCookies: type: array items: type: string description: List of cookies from the HTTP headers example: - "SOCS=CAAaBgiAmZWyBg; expires=Sun, 15-Jun-2025 12:33:07 GMT; path=/; domain=.google.com; Secure; SameSite=lax" - "AEC=AQTF6HyLiMgX13QRJxvRyBXFos8vw-et4igVlyhgeZaeLlfDgvkgkhQmSg; expires=Tue, 12-Nov-2024 12:33:07 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax" - "__Secure-ENID=19.SE=YMEDMLYol9GgV7AzLehnn5lFsrHNqD3emYqfTaVxHQPMmAHiIqeKLyqdjfwED8gPGFN5Gb7OqkGiGTki34F94cir_SXxYvVJXTFuUU9hPAMaxoluY4JeeWKP3ma4RlsBZDKDUrBBVIA-PoPwMMBRyy8Fu0m_nOPTGjlz8WMhm_jMuHdWEF8; expires=Mon, 16-Jun-2025 04:51:25 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax" clientCookies: type: array items: type: object properties: name: type: string description: The name of the cookie example: "__Secure-ENID" value: type: string description: The value of the cookie example: "19.SE=LZ6Zj5jPrWer7Kk1PqTOWpwREJDJlMaxrCes3es4eXfLZ3-9e-HQ0tnRU-RNA_ezSw_CSyFbUWAd4A3FnTJGGYRsjK2FcqJfIum0UEcSy-oFXM49VreKYjxFyUNEshqsY_VQnZw1lFuRqRyH2JA2V90uHmaL_AVOlL_Myv1_PXwcPYgOCqsBQTkxYPeDVpS6QyHO9g" domain: type: string description: The domain of the cookie example: ".google.com" path: type: string description: The path of the cookie example: "/" expires: type: number format: float description: The expiration time of the cookie in Unix time example: 1750049486.285637 size: type: integer description: The size of the cookie example: 217 httpOnly: type: boolean description: Whether the cookie is HttpOnly example: true secure: type: boolean description: Whether the cookie is Secure example: true session: type: boolean description: Whether the cookie is a session cookie example: false sameSite: type: string description: The SameSite attribute of the cookie example: "Lax" priority: type: string description: The priority of the cookie example: "Medium" sameParty: type: boolean description: Whether the cookie is SameParty example: false sourceScheme: type: string description: The source scheme of the cookie example: "Secure" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /dns-server: get: summary: Retrieve DNS server data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: domain: type: string description: The domain name queried example: "duck.com" dns: type: array items: type: object properties: address: type: string description: The IP address of the DNS server example: "52.142.124.215" hostname: type: array items: type: string description: Hostnames associated with the DNS server nullable: true example: - "lhr48s30-in-f14.1e100.net" dohDirectSupports: type: boolean description: Whether the server supports DoH (DNS over HTTPS) directly example: false '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /dns: get: summary: Retrieve DNS data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: A: type: object properties: address: type: string description: IPv4 address example: "52.142.124.215" family: type: integer description: IP family example: 4 AAAA: type: array items: type: string description: List of IPv6 addresses example: ["52.142.124.215"] MX: type: array items: type: string description: List of mail exchange servers example: [] TXT: type: array items: type: object properties: exchange: type: string description: Exchange server example: "smtp-inbound1.duck.com" priority: type: integer description: Priority of the exchange server example: 5 description: List of TXT records NS: type: array items: type: array items: type: string description: List of name servers example: - ["v=spf1 ip4:20.13.235.192/26 ip4:20.67.221.0/24 ip4:20.67.222.0/24 ip4:20.67.223.0/24 -all"] - ["google-site-verification=xWLxaaNt2iGObwJ_jeX1E3Wn-xro--W75DBKWs5uufc"] CNAME: type: array items: type: string description: List of canonical names example: - "dns1.p03.nsone.net" - "dns2.p03.nsone.net" - "dns3.p03.nsone.net" - "dns4.p03.nsone.net" - "ns01.quack-dns.com" - "ns02.quack-dns.com" - "ns03.quack-dns.com" - "ns04.quack-dns.com" SOA: type: array items: type: string description: Start of Authority records example: [] SRV: type: object properties: nsname: type: string description: Name server example: "dns1.p03.nsone.net" hostmaster: type: string description: Hostmaster email example: "hostmaster.nsone.net" serial: type: integer description: Serial number example: 1654974460 refresh: type: integer description: Refresh interval example: 7200 retry: type: integer description: Retry interval example: 7200 expire: type: integer description: Expiration time example: 1209600 minttl: type: integer description: Minimum TTL example: 14400 description: Service records PTR: type: array items: type: string description: Pointer records example: [] '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /dnssec: get: summary: Retrieve DNSSEC data tags: - Security parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: DNSKEY: type: object properties: isFound: type: boolean description: Whether the DNSKEY record is found example: false answer: type: string nullable: true description: The DNSKEY answer (if any) example: null response: type: object properties: Status: type: integer description: The status code of the response example: 3 TC: type: boolean description: Truncated response flag example: false RD: type: boolean description: Recursion desired flag example: true RA: type: boolean description: Recursion available flag example: true AD: type: boolean description: Authentic data flag example: false CD: type: boolean description: Checking disabled flag example: false Question: type: array items: type: object properties: name: type: string description: Question name example: "https://duck.com." type: type: integer description: Question type example: 48 Authority: type: array items: type: object properties: name: type: string description: Authority name example: "com." type: type: integer description: Authority type example: 6 TTL: type: integer description: Time to live example: 900 data: type: string description: Authority data example: "a.gtld-servers.net. nstld.verisign-grs.com. 1715938809 1800 900 604800 86400" Comment: type: string description: Additional comments example: "Response from 192.41.162.30." DS: type: object properties: isFound: type: boolean description: Whether the DS record is found example: false answer: type: string nullable: true description: The DS answer (if any) example: null response: type: object properties: Status: type: integer description: The status code of the response example: 3 TC: type: boolean description: Truncated response flag example: false RD: type: boolean description: Recursion desired flag example: true RA: type: boolean description: Recursion available flag example: true AD: type: boolean description: Authentic data flag example: false CD: type: boolean description: Checking disabled flag example: false Question: type: array items: type: object properties: name: type: string description: Question name example: "https://duck.com." type: type: integer description: Question type example: 43 Authority: type: array items: type: object properties: name: type: string description: Authority name example: "com." type: type: integer description: Authority type example: 6 TTL: type: integer description: Time to live example: 900 data: type: string description: Authority data example: "a.gtld-servers.net. nstld.verisign-grs.com. 1715938824 1800 900 604800 86400" Comment: type: string description: Additional comments example: "Response from 192.52.178.30." RRSIG: type: object properties: isFound: type: boolean description: Whether the RRSIG record is found example: false answer: type: string nullable: true description: The RRSIG answer (if any) example: null response: type: object properties: Status: type: integer description: The status code of the response example: 3 TC: type: boolean description: Truncated response flag example: false RD: type: boolean description: Recursion desired flag example: true RA: type: boolean description: Recursion available flag example: true AD: type: boolean description: Authentic data flag example: false CD: type: boolean description: Checking disabled flag example: false Question: type: array items: type: object properties: name: type: string description: Question name example: "https://duck.com." type: type: integer description: Question type example: 46 Authority: type: array items: type: object properties: name: type: string description: Authority name example: "com." type: type: integer description: Authority type example: 6 TTL: type: integer description: Time to live example: 900 data: type: string description: Authority data example: "a.gtld-servers.net. nstld.verisign-grs.com. 1715938809 1800 900 604800 86400" Comment: type: string description: Additional comments example: "Response from 2001:502:7094::30." '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /firewall: get: summary: Retrieve firewall data tags: - Security parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: hasWaf: type: boolean description: Whether a Web Application Firewall (WAF) is present example: false waf: type: string nullable: true description: The name of the WAF, if present example: "Cloudflare" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /get-ip: get: summary: Retrieve IP data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: ip: type: string description: The IP address example: "52.142.124.215" family: type: integer description: The IP family (4 for IPv4, 6 for IPv6) example: 4 '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /headers: get: summary: Retrieve headers data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: oneOf: - type: string - type: array items: type: string example: date: "Fri, 17 May 2024 11:51:38 GMT" content-type: "text/html; charset=utf-8" transfer-encoding: "chunked" connection: "keep-alive" cache-control: "public, max-age=0, must-revalidate" strict-transport-security: "max-age=31536000; includeSubDomains" permissions-policy: "geolocation=(), camera=(), microphone=()" referrer-policy: "strict-origin-when-cross-origin" x-content-type-options: "nosniff" x-frame-options: "SAMEORIGIN" x-gww-loc: "EN-US" x-pgs-loc: "EN-US" x-rm: "GW" x-xss-protection: "1; mode=block" vary: "Accept-Encoding" server: "cloudflare" cf-ray: "8853658f9da5940b-LHR" alt-svc: "h3=\":443\"; ma=86400" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /hsts: get: summary: Retrieve HSTS data tags: - Server Info - Security parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: message: type: string description: A message regarding the HSTS status example: "HSTS header does not include all subdomains." compatible: type: boolean description: Whether the site is compatible with HSTS example: false hstsHeader: type: string nullable: true description: The HSTS header if present example: null '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /http-security: get: summary: Retrieve HTTP security data tags: - Server Info - Security parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: strictTransportPolicy: type: boolean description: Whether Strict Transport Security is enabled example: false xFrameOptions: type: boolean description: Whether X-Frame-Options header is set example: true xContentTypeOptions: type: boolean description: Whether X-Content-Type-Options header is set example: false xXSSProtection: type: boolean description: Whether X-XSS-Protection header is set example: true contentSecurityPolicy: type: boolean description: Whether Content Security Policy is enabled example: false '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /linked-pages: get: summary: Retrieve linked pages data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: internal: type: array items: type: string description: List of internal links example: - "https://bbc.com/news/business" - "https://bbc.com/news/entertainment_and_arts" - "https://bbc.com/news/uk" - "https://bbc.com/news/world" - "https://bbc.com/#chameleon-global-navigation-more-menu" - "https://bbc.com/sport/golf" - "https://bbc.com/sport" external: type: array items: type: string description: List of external links example: - "https://www.bbc.co.uk/" - "https://www.bbc.co.uk/news" - "https://www.bbc.co.uk/sport" - "https://www.bbc.co.uk/weather" - "https://www.bbc.co.uk/iplayer" - "https://www.bbc.co.uk/sounds" - "https://www.bbc.co.uk/bitesize" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /mail-config: get: summary: Retrieve mail configuration data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: mxRecords: type: array items: type: object properties: exchange: type: string description: The mail exchange server example: "smtp.google.com" priority: type: integer description: The priority of the mail exchange server example: 10 description: List of MX (Mail Exchange) records txtRecords: type: array items: type: array items: type: string description: List of TXT records example: - ["v=spf1 include:_spf.google.com ~all"] - ["google-site-verification=wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o"] mailServices: type: array items: type: object properties: provider: type: string description: The mail service provider example: "Google Workspace" value: type: string description: The verification value for the mail service example: "wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o" description: List of mail services and their verification values '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /ports: get: summary: Retrieve open and failed ports data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: openPorts: type: array items: type: integer description: List of open ports example: - 80 - 443 - 8080 '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /quality: get: summary: Retrieve website quality metrics tags: - Quality & Info parameters: - name: url in: query required: true description: The URL of the website to analyze schema: type: string - name: apiKey in: query required: true description: The API key for accessing Google PageSpeed Insights schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: performance: type: object description: Performance category data properties: score: type: number format: float description: Performance score example: 0.85 accessibility: type: object description: Accessibility category data properties: score: type: number format: float description: Accessibility score example: 0.92 best_practices: type: object description: Best Practices category data properties: score: type: number format: float description: Best Practices score example: 0.88 seo: type: object description: SEO category data properties: score: type: number format: float description: SEO score example: 0.95 pwa: type: object description: Progressive Web App category data properties: score: type: number format: float description: PWA score example: 0.75 '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /rank: get: summary: Retrieve rank data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch rank data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: ranks: type: array items: type: object properties: date: type: string format: date description: The date of the rank example: "2024-05-16" rank: type: integer description: The rank value example: 145896 description: List of rank entries domain: type: string description: The domain name for which rank data is provided example: "duck.com" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /redirects: get: summary: Retrieve redirects data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch redirect data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: redirects: type: array items: type: string description: List of URLs the given URL redirects to example: - "https://duck.com" - "https://duckduckgo.com/" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /robots-txt: get: summary: Retrieve robots.txt data tags: - Server Info parameters: - name: url in: query required: true description: The URL to fetch robots.txt data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: robots: type: array items: type: object properties: lbl: type: string description: The label of the robots.txt entry (e.g., User-agent, Disallow, Allow) example: "User-agent" val: type: string description: The value of the robots.txt entry example: "*" description: List of robots.txt entries example: - lbl: "User-agent" val: "*" - lbl: "Disallow" val: "/lite" - lbl: "Disallow" val: "/html" - lbl: "Disallow" val: "/*?" - lbl: "Disallow" val: "/chrome_newtab" - lbl: "Disallow" val: "/email/" - lbl: "Allow" val: "/email/$" - lbl: "Allow" val: "/email/privacy-guarantees" - lbl: "Allow" val: "/email/privacy-terms" - lbl: "Disallow" val: "/2012-privacy-policy" - lbl: "User-agent" val: "ia_archiver" - lbl: "Disallow" val: "/" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /screenshot: get: summary: Retrieve screenshot data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: {} '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /security-txt: get: summary: Retrieve security.txt data tags: - Security parameters: - name: url in: query required: true description: The URL to fetch security.txt data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: isPresent: type: boolean description: Whether the security.txt file is present example: true foundIn: type: string nullable: true description: The location where the security.txt file was found example: "/.well-known/security.txt" content: type: string nullable: true description: The content of the security.txt file example: "Contact: mailto:security@proton.me\nExpires: 2024-12-31T23:59:59.999Z\nEncryption: https://api.protonmail.ch/pks/lookup?op=get&search=security@proton.me\nPreferred-Languages: en\nCanonical: https://proton.me/.well-known/security.txt\nPolicy: https://proton.me/blog/protonmail-bug-bounty-program\nHiring: https://proton.me/careers\n" isPgpSigned: type: boolean description: Whether the security.txt file is PGP signed example: false fields: type: object nullable: true description: Key-value pairs of the security.txt fields properties: Contact: type: string description: Contact information example: "mailto:security@proton.me" Expires: type: string format: date-time description: Expiry date of the security.txt information example: "2024-12-31T23:59:59.999Z" Encryption: type: string description: Encryption key location example: "https://api.protonmail.ch/pks/lookup?op=get&search=security@proton.me" Preferred-Languages: type: string description: Preferred languages for contact example: "en" Canonical: type: string description: Canonical URL for the security.txt file example: "https://proton.me/.well-known/security.txt" Policy: type: string description: Policy URL example: "https://proton.me/blog/protonmail-bug-bounty-program" Hiring: type: string description: Hiring information URL example: "https://proton.me/careers" Acknowledgments: type: string nullable: true description: Acknowledgments information example: "https://hackerone.com/github/hacktivity" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /sitemap: get: summary: Retrieve sitemap data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch sitemap data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: urlset: type: object properties: $: type: object properties: xmlns: type: string description: XML namespace example: "http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi: type: string description: XML Schema instance namespace example: "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation: type: string description: Schema location example: "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" url: type: array items: type: object properties: loc: type: array items: type: string description: The URL of the page example: "https://duckduckgo.com/" lastmod: type: array items: type: string format: date description: The last modification date of the page example: "2023-08-22" changefreq: type: array items: type: string description: The frequency of changes to the page example: "monthly" priority: type: array items: type: number format: float description: The priority of the page example: 1.00 description: | Note: The structure might need changing to show pages below each user-agent. '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /social-tags: get: summary: Retrieve social media tags data tags: - Quality & Info parameters: - name: url in: query required: true description: The URL to fetch social tags data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: title: type: string description: The title of the page example: "DuckDuckGo — Privacy, simplified." description: type: string description: The description of the page example: "The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs." canonicalUrl: type: string description: The canonical URL of the page example: "https://duckduckgo.com" ogTitle: type: string description: The Open Graph title of the page example: "DuckDuckGo — Privacy, simplified." ogType: type: string description: The Open Graph type of the page example: "website" ogImage: type: string description: The Open Graph image URL of the page example: "https://duckduckgo.com/assets/logo_social-media.png" ogUrl: type: string description: The Open Graph URL of the page example: "https://duckduckgo.com" ogDescription: type: string description: The Open Graph description of the page example: "The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs." ogSiteName: type: string description: The Open Graph site name of the page example: "DuckDuckGo" twitterCard: type: string description: The Twitter card type of the page example: "summary_large_image" twitterSite: type: string description: The Twitter handle of the site example: "@duckduckgo" twitterTitle: type: string description: The Twitter title of the page example: "DuckDuckGo — Privacy, simplified." twitterDescription: type: string description: The Twitter description of the page example: "The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs." twitterImage: type: string description: The Twitter image URL of the page example: "https://duckduckgo.com/assets/logo_social-media.png" viewport: type: string description: The viewport settings of the page example: "width=device-width, initial-scale=1, user-scalable=1 , viewport-fit=auto" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /ssl: get: summary: Retrieve SSL certificate data tags: - Security - Server Info parameters: - name: url in: query required: true description: The URL to fetch SSL certificate data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: subject: type: object description: The subject of the SSL certificate properties: C: type: string description: Country example: "US" ST: type: string description: State or province example: "Pennsylvania" L: type: string description: Locality or city example: "Paoli" O: type: string description: Organization example: "Duck Duck Go, Inc." CN: type: string description: Common Name example: "*.duck.com" issuer: type: object description: The issuer of the SSL certificate properties: C: type: string description: Country example: "US" O: type: string description: Organization example: "DigiCert Inc" CN: type: string description: Common Name example: "DigiCert Global G2 TLS RSA SHA256 2020 CA1" subjectaltname: type: string description: Subject alternative name example: "DNS:*.duck.com, DNS:duck.com" infoAccess: type: object description: Information Access details properties: "OCSP - URI": type: array items: type: string description: OCSP URI example: - "http://ocsp.digicert.com" "CA Issuers - URI": type: array items: type: string description: CA Issuers URI example: - "http://cacerts.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt" ca: type: boolean description: Whether it is a CA certificate example: false modulus: type: string description: The modulus of the public key example: "A4B4F5B418A538F2570010FEDA319C3F73400EF8C20BB36668B34AE776233C5F06BE0572E36180FD8064D8AC41BD54AD2C6BAAEDEB31308F37B11EED1CD5D2F046C8B6B16381C4E80E817352C16B6F2A8687589BB564BF4B3C87A45284DB9A8240805002846A067C8CCEB50290D2A799907DFBF6EB0432528F413C5CC913F0230374250062C027664240E5A3A8574B8914F26216CEF076CECE04427A489137EA5AACFCD446827432C18CFF5E31AF0F3999B60A303925082FDDB1535513D6B131497F003397FD1EA4D58C24640261E1C205F33A83FDEE9D8C48A638F98927CEFE42C7DD3852C62AD62ECA74A417DE79290755689B3A6D19E44152695A5872491F" bits: type: integer description: The number of bits in the key example: 2048 exponent: type: string description: The public exponent example: "0x10001" pubkey: type: object description: The public key properties: type: type: string description: Type of the public key data example: "Buffer" data: type: array items: type: integer description: The public key data example: [48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 164, 180, 245, 180, 24, 165, 56, 242, 87, 0, 16, 254, 218, 49, 156, 63, 115, 64, 14, 248, 194, 11, 179, 102, 104, 179, 74, 231, 118, 35, 60, 95, 6, 190, 5, 114, 227, 97, 128, 253, 128, 100, 216, 172, 65, 189, 84, 173, 44, 107, 170, 237, 235, 49, 48, 143, 55, 177, 30, 237, 28, 213, 210, 240, 70, 200, 182, 177, 99, 129, 196, 232, 14, 129, 115, 82, 193, 107, 111, 42, 134, 135, 88, 155, 181, 100, 191, 75, 60, 135, 164, 82, 132, 219, 154, 130, 64, 128, 80, 2, 132, 106, 6, 124, 140, 206, 181, 2, 144, 210, 167, 153, 144, 125, 251, 246, 235, 4, 50, 82, 143, 65, 60, 92, 201, 19, 240, 35, 3, 116, 37, 0, 98, 192, 39, 102, 66, 64, 229, 163, 168, 87, 75, 137, 20, 242, 98, 22, 206, 240, 118, 206, 206, 4, 66, 122, 72, 145, 55, 234, 90, 172, 252, 212, 70, 130, 116, 50, 193, 140, 255, 94, 49, 175, 15, 57, 153, 182, 10, 48, 57, 37, 8, 47, 221, 177, 83, 85, 19, 214, 177, 49, 73, 127, 0, 51, 151, 253, 30, 164, 213, 140, 36, 100, 2, 97, 225, 194, 5, 243, 58, 131, 253, 238, 157, 140, 72, 166, 56, 249, 137, 39, 206, 254, 66, 199, 221, 56, 82, 198, 42, 214, 46, 202, 116, 164, 23, 222, 121, 41, 7, 85, 104, 155, 58, 109, 25, 228, 65, 82, 105, 90, 88, 114, 73, 31, 2, 3, 1, 0, 1] valid_from: type: string description: The start date of the certificate's validity period example: "Oct 3 00:00:00 2023 GMT" valid_to: type: string description: The end date of the certificate's validity period example: "Nov 2 23:59:59 2024 GMT" fingerprint: type: string description: The SHA-1 fingerprint of the certificate example: "54:3C:CB:82:A2:33:D0:CB:81:4D:7D:2C:AA:E6:84:CE:37:9A:0B:7A" fingerprint256: type: string description: The SHA-256 fingerprint of the certificate example: "F3:64:C5:26:C1:BD:31:DE:67:BB:98:57:96:7B:B6:9B:C7:1A:CD:44:21:29:62:4C:CE:E2:C9:DF:49:73:DE:05" fingerprint512: type: string description: The SHA-512 fingerprint of the certificate example: "FC:5A:8F:4D:27:DC:A1:4B:2B:31:8A:DD:37:DF:7E:7B:64:18:49:C9:B8:AB:29:9E:B2:5E:F6:43:36:D0:8B:9D:D0:3E:10:83:4D:B2:78:DF:E2:44:B3:7F:70:22:C7:1F:29:81:72:9E:D5:F2:7C:25:2A:02:FE:90:75:D6:35:CB" ext_key_usage: type: array items: type: string description: Extended key usage example: - "1.3.6.1.5.5.7.3.1" - "1.3.6.1.5.5.7.3.2" serialNumber: type: string description: The serial number of the certificate example: "0ABA674EF6840EFD177509B0BF82C4A5" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /status: get: summary: Retrieve website status tags: - Server Info parameters: - name: url in: query required: true description: The URL to check the status of schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: isUp: type: boolean description: Whether the website is up example: true responseTime: type: number format: float description: The response time in milliseconds example: 105.34512500000005 responseCode: type: integer description: The HTTP response code example: 302 '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /tech-stack: get: summary: Retrieve technology stack data tags: - Quality & Info - Client-Side Information parameters: - name: url in: query required: true description: The URL to fetch technology stack data about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: urls: type: object description: Status of different URLs additionalProperties: type: object properties: status: type: integer description: HTTP status code example: 302 example: "https://duck.com/": status: 302 "https://duckduckgo.com/": status: 200 technologies: type: array description: List of detected technologies items: type: object properties: slug: type: string description: Slug identifier for the technology example: "node-js" name: type: string description: Name of the technology example: "Node.js" description: type: string nullable: true description: Description of the technology example: "Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser." confidence: type: integer description: Confidence level of the detection example: 100 version: type: string nullable: true description: Detected version of the technology example: "12.3.4" icon: type: string description: Icon file name for the technology example: "Node.js.svg" website: type: string description: Official website for the technology example: "https://nodejs.org" cpe: type: string nullable: true description: Common Platform Enumeration (CPE) identifier example: "cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*" categories: type: array description: List of categories the technology belongs to items: type: object properties: id: type: integer description: Category ID example: 27 slug: type: string description: Category slug example: "programming-languages" name: type: string description: Category name example: "Programming languages" rootPath: type: boolean description: Whether the technology is detected at the root path example: true '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /threats: get: summary: Retrieve threats data tags: - Security parameters: - name: url in: query required: true description: The URL to fetch results about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: {} '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /tls: get: summary: Retrieve TLS information for a target tags: - Security - Server Info parameters: - name: target in: query required: true description: The target domain to fetch TLS information about schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: id: type: integer description: The ID of the TLS scan example: 57369181 timestamp: type: string format: date-time description: Timestamp of the scan example: "2024-05-18T13:52:49.230114Z" target: type: string description: Target domain of the TLS scan example: "duck.com" replay: type: integer description: Replay value example: -1 has_tls: type: boolean description: Indicates if TLS is present example: true cert_id: type: integer description: Certificate ID example: 189148642 trust_id: type: integer description: Trust ID example: 343378161 is_valid: type: boolean description: Indicates if the TLS certificate is valid example: true completion_perc: type: integer description: Completion percentage of the scan example: 100 connection_info: type: object description: Connection information of the TLS scan properties: scanIP: type: string description: Scan IP address example: "52.250.42.157" serverside: type: boolean description: Indicates if the scan is server-side example: true ciphersuite: type: array description: List of cipher suites used items: type: object properties: cipher: type: string description: Name of the cipher suite example: "ECDHE-RSA-AES128-GCM-SHA256" code: type: integer description: Cipher code example: 49199 protocols: type: array description: Supported protocols items: type: string example: "TLSv1.2" pubkey: type: integer description: Public key length example: 2048 sigalg: type: string description: Signature algorithm example: "sha256WithRSAEncryption" ticket_hint: type: string description: Ticket hint example: "1200" ocsp_stapling: type: boolean description: Indicates if OCSP stapling is enabled example: false pfs: type: string description: Perfect forward secrecy information example: "ECDH,P-256,256bits" curves: type: array description: Supported curves items: type: string example: "prime256v1" curvesFallback: type: boolean description: Indicates if curve fallback is used example: false analysis: type: array description: Analysis results items: type: object properties: id: type: integer description: Analyzer ID example: 157573176 analyzer: type: string description: Analyzer name example: "awsCertlint" result: type: object description: Analyzer result properties: bugs: type: array nullable: true description: List of bugs found items: type: string errors: type: array nullable: true description: List of errors found items: type: string notices: type: array nullable: true description: List of notices found items: type: string warnings: type: array nullable: true description: List of warnings found items: type: string fatalErrors: type: array nullable: true description: List of fatal errors found items: type: string informational: type: array nullable: true description: List of informational messages items: type: string host: type: string description: Host information example: "" issue: type: array nullable: true description: List of issues found items: type: string has_caa: type: boolean description: Indicates if CAA is present example: false issuewild: type: array nullable: true description: List of wildcard issues found items: type: string revoked: type: boolean description: Indicates if the certificate is revoked example: false RevocationTime: type: string format: date-time description: Time of revocation example: "0001-01-01T00:00:00Z" level: type: string description: Mozilla evaluation level example: "intermediate" failures: type: object description: List of failures properties: bad: type: array nullable: true description: List of bad failures items: type: string old: type: array nullable: true description: List of old failures items: type: string example: [ "sha256WithRSAEncryption is not an old certificate signature, use sha1WithRSAEncryption", "consider adding ciphers ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, DHE-DSS-AES128-GCM-SHA256, DHE-DSS-AES256-GCM-SHA384, DHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES128-SHA, ECDHE-ECDSA-AES256-SHA384, ECDHE-ECDSA-AES256-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, DHE-DSS-AES128-SHA256, DHE-RSA-AES256-SHA256, DHE-DSS-AES256-SHA, DHE-RSA-AES256-SHA, ECDHE-RSA-DES-CBC3-SHA, ECDHE-ECDSA-DES-CBC3-SHA, EDH-RSA-DES-CBC3-SHA, DHE-DSS-AES256-SHA256, DHE-DSS-AES128-SHA, DES-CBC3-SHA, DHE-RSA-CHACHA20-POLY1305, ECDHE-RSA-CAMELLIA256-SHA384, ECDHE-ECDSA-CAMELLIA256-SHA384, DHE-RSA-CAMELLIA256-SHA256, DHE-DSS-CAMELLIA256-SHA256, DHE-RSA-CAMELLIA256-SHA, DHE-DSS-CAMELLIA256-SHA, CAMELLIA256-SHA256, CAMELLIA256-SHA, ECDHE-RSA-CAMELLIA128-SHA256, ECDHE-ECDSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA256, DHE-DSS-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA, DHE-DSS-CAMELLIA128-SHA, CAMELLIA128-SHA256, CAMELLIA128-SHA, DHE-RSA-SEED-SHA, DHE-DSS-SEED-SHA, SEED-SHA", "add protocols TLSv1.1, TLSv1, SSLv3", "consider enabling OCSP stapling", "add cipher DES-CBC3-SHA for backward compatibility" ] modern: type: array nullable: true description: List of modern failures items: type: string example: [ "remove ciphersuites ECDHE-RSA-AES128-SHA, AES128-GCM-SHA256, AES128-SHA256, AES128-SHA, ECDHE-RSA-AES256-SHA, AES256-GCM-SHA384, AES256-SHA256, AES256-SHA", "consider adding ciphers ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA256", "consider enabling OCSP stapling", "use a certificate of type ecdsa, not RSA" ] intermediate: type: array nullable: true description: List of intermediate failures items: type: string example: [ "consider adding ciphers ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, DHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES128-SHA, ECDHE-ECDSA-AES256-SHA384, ECDHE-ECDSA-AES256-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, DHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA, ECDHE-ECDSA-DES-CBC3-SHA, ECDHE-RSA-DES-CBC3-SHA, EDH-RSA-DES-CBC3-SHA, DES-CBC3-SHA", "add protocols TLSv1.1, TLSv1", "consider enabling OCSP stapling", "increase priority of ECDHE-RSA-AES256-GCM-SHA384 over AES128-SHA", "fix ciphersuite ordering, use recommended intermediate ciphersuite" ] grade: type: integer description: Mozilla grading worker grade example: 93 lettergrade: type: string description: Mozilla grading worker letter grade example: "A" rank: type: integer description: Rank of the target domain example: 2147483647 domain: type: string description: Domain name example: "duck.com" alexa_rank: type: integer description: Alexa rank of the domain example: 2147483647 cisco_rank: type: integer description: Cisco rank of the domain example: 2147483647 alexa_domain: type: string description: Alexa domain name example: "duck.com" cisco_domain: type: string description: Cisco domain name example: "duck.com" reasons: type: array description: List of reasons for distrust items: type: string example: [ "path uses a blacklisted cert: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5 (id=123)", "whitelisted intermediate C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2 (id=187368699) override blacklisting of 123", "path uses a blacklisted cert: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5 (id=188669208)", "whitelisted intermediate C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2 (id=187368699) override blacklisting of 188669208", "path uses a root not trusted by Mozilla: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root (id=16)", "whitelisted intermediate C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2 (id=189284449) override blacklisting of 34174538", "whitelisted intermediate C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2 (id=189094508) override blacklisting of 34174538", "path uses a blacklisted cert: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2008 VeriSign, Inc. - For authorized use only, CN=VeriSign Universal Root Certification Authority (id=124)", "whitelisted intermediate C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2 (id=188535492) override blacklisting of 124" ] isDistrusted: type: boolean description: Indicates if the certificate is distrusted example: false ack: type: boolean description: Acknowledgment flag example: true attempts: type: integer description: Number of attempts example: 1 analysis_params: type: object description: Parameters used for the analysis example: {} '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /trace-route: get: summary: Perform a traceroute to the specified URL tags: - Server Info parameters: - name: urlString in: query required: true description: The URL to trace the route to schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: message: type: string description: The status message of the traceroute example: "Traceroute completed!" result: type: array description: The result of the traceroute items: oneOf: - type: object additionalProperties: type: array items: type: number description: The response time in milliseconds example: 2.015 - type: boolean description: Indicates if a hop was not found example: false '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /txt-records: get: summary: Retrieve the TXT records for a specified domain tags: - Server Info parameters: - name: domain in: query required: true description: The domain to retrieve TXT records for schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: type: string description: The value of the TXT record example: brave-ledger-verification: "b9067df1ce0bb02c06924b88b62143d0c3c0b9c03a8f5c4aba3c0d0ec99f0a98" google-site-verification: "qFBMUPljNGHE2S-NwmQmYvxpa58UfmmIidAbJG9BiuM" pinterest-site-verification: "c71cdf6ff37b315830c4af9d98cf2add" protonmail-verification: "2493afe89892e5b986b59415cdb104152c24f29e" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /whois: get: summary: Retrieve WHOIS information for a specified domain tags: - Server Info parameters: - name: domain in: query required: true description: The domain to retrieve WHOIS information for schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: internicData: type: object properties: Domain_Name: type: string Registry_Domain_ID: type: string Registrar_WHOIS_Server: type: string Registrar_URL: type: string Updated_Date: type: string format: date-time Creation_Date: type: string format: date-time Registry_Expiry_Date: type: string format: date-time Registrar: type: string Registrar_IANA_ID: type: string Domain_Status: type: string Name_Server: type: string DNSSEC: type: string URL_of_the_ICANN_Whois_Inaccuracy_Complaint_Form: type: string _Last_update_of_whois_database: type: string format: date-time For_more_information_on_Whois_status_codes_please_visit_https: type: string NOTICE: type: string TERMS_OF_USE: type: string by_the_following_terms_of_use: type: string to: type: string whoisData: type: object properties: domain: type: object properties: id: type: string domain: type: string name: type: string extension: type: string whois_server: type: string status: type: array items: type: string name_servers: type: array items: type: string created_date: type: string format: date-time updated_date: type: string format: date-time expiration_date: type: string format: date-time registrar: type: object properties: id: type: string name: type: string phone: type: string email: type: string referral_url: type: string registrant: type: object properties: name: type: string organization: type: string street: type: string city: type: string province: type: string postal_code: type: string country: type: string phone: type: string phone_ext: type: string fax: type: string fax_ext: type: string email: type: string administrative: type: object properties: name: type: string organization: type: string street: type: string city: type: string province: type: string postal_code: type: string country: type: string phone: type: string phone_ext: type: string fax: type: string fax_ext: type: string email: type: string technical: type: object properties: name: type: string organization: type: string street: type: string city: type: string province: type: string postal_code: type: string country: type: string phone: type: string phone_ext: type: string fax: type: string fax_ext: type: string email: type: string billing: type: object properties: name: type: string organization: type: string street: type: string city: type: string province: type: string postal_code: type: string country: type: string phone: type: string phone_ext: type: string fax: type: string fax_ext: type: string email: type: string example: internicData: Domain_Name: "AS93.NET" Registry_Domain_ID: "1722029712_DOMAIN_NET-VRSN" Registrar_WHOIS_Server: "whois.cloudflare.com" Registrar_URL: "http://www.cloudflare.com" Updated_Date: "2019-05-07T04:20:11Z" Creation_Date: "2012-05-22T16:36:05Z" Registry_Expiry_Date: "2025-05-22T16:36:05Z" Registrar: "CloudFlare, Inc." Registrar_IANA_ID: "1910" Domain_Status: "clientTransferProhibited https://icann.org/epp#clientTransferProhibited" Name_Server: "ALEX.NS.CLOUDFLARE.COM" DNSSEC: "unsigned" URL_of_the_ICANN_Whois_Inaccuracy_Complaint_Form: "https://www.icann.org/wicf/" _Last_update_of_whois_database: "2024-05-18T13:59:10Z <<< " For_more_information_on_Whois_status_codes_please_visit_https: "//icann.org/epp " NOTICE: "The expiration date displayed in this record is the date the registrar's sponsorship of the domain name registration in the registry is currently set to expire. This date does not necessarily reflect the expiration date of the domain name registrant's agreement with the sponsoring registrar. Users may consult the sponsoring registrar's Whois database to view the registrar's reported date of expiration for this registration. " TERMS_OF_USE: "You are not authorized to access or query our Whois database through the use of electronic processes that are high-volume and automated except as reasonably necessary to register domain names or modify existing registrations; the Data in VeriSign Global Registry Services' (\"VeriSign\") Whois database is provided by VeriSign for information purposes only, and to assist persons in obtaining information about or related to a domain name registration record. VeriSign does not guarantee its accuracy. By submitting a Whois query, you agree to abide" by_the_following_terms_of_use: "You agree that you may use this Data only for lawful purposes and that under no circumstances will you use this Data" to: "(1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail, telephone, or facsimile; or (2) enable high volume, automated, electronic processes that apply to VeriSign (or its computer systems). The compilation, repackaging, dissemination or other use of this Data is expressly prohibited without the prior written consent of VeriSign. You agree not to use electronic processes that are automated and high-volume to access or query the Whois database except as reasonably necessary to register domain names or modify existing registrations. VeriSign reserves the right to restrict your access to the Whois database in its sole discretion to ensure operational stability. VeriSign may restrict or terminate your access to the Whois database for failure to abide by these terms of use. VeriSign reserves the right to modify these terms at any time. The Registry database contains ONLY .COM, .NET, .EDU domains and Registrars. " whoisData: domain: id: "1722029712_DOMAIN_NET-VRSN" domain: "as93.net" name: "as93" extension: "net" whois_server: "whois.cloudflare.com" status: - "clienttransferprohibited" name_servers: - "adrian.ns.cloudflare.com" - "alex.ns.cloudflare.com" created_date: "2012-05-22T16:36:05Z" updated_date: "2019-05-07T04:20:11Z" expiration_date: "2025-05-22T16:36:05Z" registrar: id: "1910" name: "Cloudflare, Inc." phone: "+1.4153197517" email: "registrar-abuse@cloudflare.com" referral_url: "https://www.cloudflare.com" registrant: name: "DATA REDACTED" organization: "DATA REDACTED" street: "DATA REDACTED" city: "DATA REDACTED" province: "London" postal_code: "DATA REDACTED" country: "GB" phone: "DATA REDACTED" phone_ext: "DATA REDACTED" fax: "DATA REDACTED" fax_ext: "DATA REDACTED" email: "https://domaincontact.cloudflareregistrar.com/as93.net" administrative: name: "DATA REDACTED" organization: "DATA REDACTED" street: "DATA REDACTED" city: "DATA REDACTED" province: "DATA REDACTED" postal_code: "DATA REDACTED" country: "DATA REDACTED" phone: "DATA REDACTED" phone_ext: "DATA REDACTED" fax: "DATA REDACTED" fax_ext: "DATA REDACTED" email: "https://domaincontact.cloudflareregistrar.com/as93.net" technical: name: "DATA REDACTED" organization: "DATA REDACTED" street: "DATA REDACTED" city: "DATA REDACTED" province: "DATA REDACTED" postal_code: "DATA REDACTED" country: "DATA REDACTED" phone: "DATA REDACTED" phone_ext: "DATA REDACTED" fax: "DATA REDACTED" fax_ext: "DATA REDACTED" email: "https://domaincontact.cloudflareregistrar.com/as93.net" billing: name: "DATA REDACTED" organization: "DATA REDACTED" street: "DATA REDACTED" city: "DATA REDACTED" province: "DATA REDACTED" postal_code: "DATA REDACTED" country: "DATA REDACTED" phone: "DATA REDACTED" phone_ext: "DATA REDACTED" fax: "DATA REDACTED" fax_ext: "DATA REDACTED" email: "https://domaincontact.cloudflareregistrar.com/as93.net" '204': $ref: '#/components/responses/Skipped' '500': $ref: '#/components/responses/Error' '400': $ref: '#/components/responses/MissingParam' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests'